GnssMeasurement-Strukturreferenz
#include <
gps.h
>
Datenfelder |
|
size_t | size |
GnssMeasurementFlags | Flags |
int16_t | svid |
GnssConstellationType | Konstellation |
doppelt | time_offset_ns |
GnssMeasurementState | state |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
doppelt | c_n0_dbhz |
doppelt | pseudorange_rate_mps |
doppelt | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
doppelt | accumulated_delta_range_m |
doppelt | accumulated_delta_range_uncertainty_m |
float | carrier_frequency_hz |
int64_t | carrier_cycles |
doppelt | carrier_phase |
doppelt | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
doppelt | snr_db |
Detaillierte Beschreibung
Stellt eine GNSS-Messung dar und enthält Roh- und berechnete Informationen.
Unabhängigkeit: Alle in dieser Struktur gemeldeten Informationen zur Signalmessung (z.B. sv_time, pseudorange_rate, multipath_indicator) sollten nur auf GNSS-Signalmessungen beruhen. Sie dürfen keine Messwerte zusammenführen, indem Sie anhand bekannter oder geschätzter Position, Geschwindigkeit oder Zeit erwartete Messwerte berechnen oder erfassen.
Felddokumentation
double accumulated_delta_range_m |
Der Deltabereich seit dem letzten Kanalrücksetzen in Metern. Ein positiver Wert gibt an, dass sich der SV vom Empfänger weg bewegt.
Das Vorzeichen des „akkumulierten Deltabereichs“ und sein Verhältnis zum Vorzeichen der „Trägerphase“ ergibt sich aus der Gleichung: Akkumulierter Deltabereich = −k * Trägerphase (k ist eine Konstante).
Dieser Wert muss angegeben werden, wenn „accumulated delta range state“ != GPS_ADR_STATE_UNKNOWN ist. Die Daten sind jedoch nur dann genau, wenn „accumulated delta range state“ == GPS_ADR_STATE_VALID ist.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t carrier_cycles |
Die Anzahl der vollständigen Trägerzyklen zwischen dem Satelliten und dem Empfänger. Die Referenzfrequenz wird im Feld „carrier_frequency_hz“ angegeben. Hinweise auf mögliche Zyklusaussetzer und ‑rücksetzungen bei der Akkumulation dieses Werts können aus den Flags „accumulated_delta_range_state“ abgeleitet werden.
Wenn die Daten verfügbar sind, muss „flags“ GNSS_MEASUREMENT_HAS_CARRIER_CYCLES enthalten.
float carrier_frequency_hz |
Trägerfrequenz, mit der Codes und Nachrichten moduliert werden. Kann L1 oder L2 sein. Wenn das Feld nicht festgelegt ist, wird davon ausgegangen, dass die Trägerfrequenz L1 ist.
Wenn die Daten verfügbar sind, muss „flags“ GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY enthalten.
double carrier_phase |
Die vom Empfänger erkannte RF-Phase im Bereich [0.0, 1.0]. Dies ist in der Regel der Bruchteil der vollständigen Trägerphasenmessung.
Die Referenzfrequenz wird im Feld „carrier_frequency_hz“ angegeben. Der Wert enthält die Unsicherheit der Trägerphase.
Wenn die Daten verfügbar sind, muss „flags“ GNSS_MEASUREMENT_HAS_CARRIER_PHASE enthalten.
double carrier_phase_uncertainty |
GnssConstellationType Konstellation |
GnssMeasurementFlags flags |
GnssMultipathIndicator multipath_indicator |
Eine Aufzählung, die den Status „Multipath“ des Ereignisses angibt.
Der Multipath-Indikator soll das Vorhandensein überlappender Signale melden, die sich in verzerrten Korrelationsspitzen äußern.
- Wenn die Form des Korrelationsgipfels verzerrt ist, melden Sie, dass Multipath GNSS_MULTIPATH_INDICATOR_PRESENT ist.
- Wenn die Form des Korrelationsgipfels nicht verzerrt ist, melden Sie GNSS_MULTIPATH_INDICATOR_NOT_PRESENT.
- Wenn die Signale zu schwach sind, um diese Informationen zu ermitteln, melden Sie GNSS_MULTIPATH_INDICATOR_UNKNOWN.
Beispiel: Beim standardisierten überlappenden Multipath-Leistungstest (3GPP TS 34.171) sollte der Multipath-Indikator GNSS_MULTIPATH_INDICATOR_PRESENT für Signale melden, die gefolgt werden und Multipath enthalten, und GNSS_MULTIPATH_INDICATOR_NOT_PRESENT für Signale, die gefolgt werden und kein Multipath enthalten.
double pseudorange_rate_mps |
Pseudostreckenrate zum Zeitstempel in m/s. Die Korrektur eines bestimmten Pseudostreckenratenwerts umfasst Korrekturen für Fehler bei der Empfänger- und Satellitenuhrfrequenz. Dieses Feld muss unabhängig sein (siehe Kommentar oben in der Struktur GnssMeasurement ).
Sie müssen die „unkorrigierte Pseudostreckenrate“ und das Feld „Abweichung“ von GpsClock angeben. Wenden Sie beim Angeben der unkorrigierten Pseudostreckenrate die oben beschriebenen Korrekturen nicht an.
Der Wert enthält die „Pseudostreckenratenunsicherheit“. Ein positiver Wert für „unkorrigiert“ gibt an, dass sich der SV vom Empfänger weg bewegt.
Das Vorzeichen der „nicht korrigierten“ Pseudostreckenrate und ihr Verhältnis zum Vorzeichen der Dopplerverschiebung ergibt sich aus der Gleichung: Pseudostreckenrate = −k * Dopplerverschiebung (k ist eine Konstante).
Dies sollte die genaueste Pseudostreckenrate sein, die auf aktuellen Signalmessungen dieses Kanals basiert.
Dieser Wert muss bei typischer PRR-Qualität der Trägerphase (wenige cm/s pro Sekunde Unsicherheit oder besser) angegeben werden, wenn die Signale ausreichend stark und stabil sind, z.B. Signale von einem GPS-Simulator mit mindestens 35 dB-Hz.
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
Die empfangene GNSS-Wochenzeit zum Zeitpunkt der Messung, in Nanosekunden. Dieses Feld muss unabhängig sein (siehe Kommentar oben in der Struktur GnssMeasurement ).
Für GPS und QZSS: Empfangene GPS-Wochenzeit zum Zeitpunkt der Messung in Nanosekunden. Der Wert bezieht sich auf den Beginn der aktuellen GPS-Woche.
Der gültige Bereich für dieses Feld kann je nach Satellit der höchste erreichbare Synchronisierungsstatus sein:
Hinweis: Wenn es Unklarheiten bei Ganzzahl-Millisekunden gibt, sollte im Feld „state“ entsprechend GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS festgelegt werden.
Dieser Wert muss angegeben werden, wenn „state“ != GNSS_MEASUREMENT_STATE_UNKNOWN ist.
Für Glonass ist das: Empfangene Glonass-Uhrzeit zum Zeitpunkt der Messung in Nanosekunden.
Der gültige Bereich für dieses Feld kann je nach Satellit und dem höchsten erreichbaren Synchronisierungsstatus so aussehen:
Bei Beidou ist das: Empfangene Beidou-Wochenzeit zur Messzeit in Nanosekunden.
Unter Berücksichtigung des höchsten Synchronisierungsstatus, der für jeden Satelliten erreicht werden kann, ist der gültige Bereich für dieses Feld:
Für Galileo ist das Folgende zu beachten: Die empfangene Galileo-Wochenzeit zum Zeitpunkt der Messung in Nanosekunden.
E1BC-Codesperre : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK ist festgelegt. E1C-2. Codesperre: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK ist festgelegt.
E1B-Seite : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC ist festgelegt. Wochenzeit: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ist festgelegt.
Für SBAS ist das: Empfangene SBAS-Zeit zum Zeitpunkt der Messung in Nanosekunden.
Der gültige Bereich für dieses Feld kann für jeden Satelliten unter Berücksichtigung des höchsten erreichbaren Synchronisierungsstatus so aussehen:
int64_t received_sv_time_uncertainty_in_ns |
double snr_db |
Signal-Rausch-Verhältnis an der Korrelatorausgabe in dB. Wenn die Daten verfügbar sind, muss „flags“ GNSS_MEASUREMENT_HAS_SNR enthalten. Das ist das Leistungsverhältnis zwischen der „Höhe des Korrelationsgipfels über dem beobachteten Rauschboden“ und dem „RMS-Rauschwert“.
GnssMeasurementState state |
int16_t svid |
Die Satelliten-Fahrzeug-ID, wie in GnssSvInfo::svid definiert. Dies ist ein Pflichtwert.
double time_offset_ns |
Zeitoffset, zu dem die Messung durchgeführt wurde, in Nanosekunden. Die Zeit des Referenzempfängers wird durch GpsData::clock::time_ns angegeben und sollte auf die gleiche Weise interpretiert werden wie in GpsClock::type angegeben.
Das Vorzeichen von „time_offset_ns“ ergibt sich aus der folgenden Gleichung: Messzeit = GpsClock::time_ns + time_offset_ns
Er liefert einen individuellen Zeitstempel für die Messung und ermöglicht eine Genauigkeit im Nanosekundenbereich. Dies ist ein Pflichtfeld.
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ gps.h