GnssMeasurement Struct Reference
#include < gps.h >
Datenfelder | |
Größe_t | Größe |
GnssMeasurementFlags | Flaggen |
int16_t | svid |
GnssConstellationType | Konstellation |
doppelt | time_offset_ns |
GnssMeasurementState | Zustand |
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 | akkumulierter_delta_range_state |
doppelt | akkumulierter_delta_bereich_m |
doppelt | akkumulierte_delta_range_uncertainty_m |
schweben | Trägerfrequenz_hz |
int64_t | Trägerzyklen |
doppelt | Trägerphase |
doppelt | Trägerphasenunsicherheit |
GnssMultipathIndicator | multipath_indicator |
doppelt | snr_db |
detaillierte Beschreibung
Stellt eine GNSS-Messung dar und enthält Roh- und berechnete Informationen.
Unabhängigkeit – Alle Signalmessungsinformationen (z. B. sv_time, pseudorange_rate, multipath_indicator), die in dieser Struktur gemeldet werden, sollten nur auf GNSS-Signalmessungen basieren. Sie dürfen Messungen nicht synthetisieren, indem Sie erwartete Messungen basierend auf bekannter oder geschätzter Position, Geschwindigkeit oder Zeit berechnen oder melden.
Felddokumentation
doppelt kumulierter_delta_bereich_m |
Kumulierter Delta-Bereich seit dem letzten Zurücksetzen des Kanals in Metern. Ein positiver Wert zeigt an, dass sich das SV vom Empfänger entfernt.
Das Vorzeichen des 'akkumulierten Delta-Bereichs' und seine Beziehung zum Vorzeichen der 'Trägerphase' wird durch die folgende Gleichung angegeben: akkumulierter Delta-Bereich = -k * Trägerphase (wobei k eine Konstante ist)
Dieser Wert muss ausgefüllt werden, wenn „kumulierter Delta-Bereichsstatus“ != GPS_ADR_STATE_UNKNOWN. Es wird jedoch erwartet, dass die Daten nur dann genau sind, wenn: 'kumulierter Deltabereichszustand' == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState akkumulierter_delta_range_state |
doppelt kumulierte_delta_range_uncertainty_m |
doppelt c_n0_dbhz |
int64_t Trägerzyklen |
Die Anzahl der vollen Trägerzyklen zwischen dem Satelliten und dem Empfänger. Die Referenzfrequenz wird durch das Feld 'carrier_frequency_hz' angegeben. Hinweise auf mögliche Zyklusschlüpfe und -rücksetzungen bei der Akkumulation dieses Werts können aus den Accumulated_delta_range_state-Flags abgeleitet werden.
Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_MEASUREMENT_HAS_CARRIER_CYCLES enthalten.
float Trägerfrequenz_hz |
doppelte Trägerphase |
Die vom Empfänger erkannte HF-Phase im Bereich [0,0, 1,0]. Dies ist normalerweise der Bruchteil der gesamten Trägerphasenmessung.
Die Referenzfrequenz wird durch das Feld 'carrier_frequency_hz' angegeben. Der Wert enthält die „Trägerphasen-Unsicherheit“.
Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_MEASUREMENT_HAS_CARRIER_PHASE enthalten.
doppelte Trägerphasenunsicherheit |
GnssConstellationType- Konstellation |
GnssMeasurementFlags- Flags |
GnssMultipathIndicator multipath_indicator |
Eine Aufzählung, die den „Multipath“-Status des Ereignisses angibt.
Der Multipath-Indikator soll das Vorhandensein überlappender Signale melden, die sich als verzerrte Korrelationsspitzen manifestieren.
- Wenn es eine verzerrte Korrelationsspitzenform gibt, melden Sie, dass Multipath GNSS_MULTIPATH_INDICATOR_PRESENT ist.
- wenn es keine verzerrte Form des Korrelationspeaks gibt, melden Sie GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- Wenn die Signale zu schwach sind, um diese Informationen zu erkennen, melden Sie GNSS_MULTIPATH_INDICATOR_UNKNOWN
Beispiel: Bei der Durchführung des standardisierten überlappenden Multipath-Leistungstests (3GPP TS 34.171) sollte der Multipath-Indikator GNSS_MULTIPATH_INDICATOR_PRESENT für die Signale melden, die verfolgt werden und Multipath enthalten, und GNSS_MULTIPATH_INDICATOR_NOT_PRESENT für die Signale, die verfolgt werden und keine Multipath enthalten.
doppelt pseudorange_rate_mps |
Pseudoorange-Rate zum Zeitstempel in m/s. Die Korrektur eines gegebenen Pseudoorange-Rate-Werts umfasst Korrekturen für Empfänger- und Satellitentaktfrequenzfehler. Stellen Sie sicher, dass dieses Feld unabhängig ist (siehe Kommentar oben in der GnssMeasurement- Struktur).
Es ist zwingend erforderlich, die „unkorrigierte“ „Pseudorange-Rate“ und auch das „Drift“-Feld von GpsClock bereitzustellen (Wenden Sie die oben beschriebenen Korrekturen nicht an, wenn Sie die unkorrigierte Pseudorange-Rate bereitstellen.)
Der Wert enthält die „Pseudoorange-Ratenunsicherheit“. Ein positiver „unkorrigierter“ Wert zeigt an, dass sich das SV vom Empfänger wegbewegt.
Das Vorzeichen der „unkorrigierten“ „Pseudoorange-Rate“ und ihr Verhältnis zum Vorzeichen der „Doppler-Verschiebung“ ergibt sich aus der folgenden Gleichung: Pseudorange-Rate = -k * Doppler-Verschiebung (wobei k eine Konstante ist)
Dies sollte die genaueste verfügbare Pseudoentfernungsrate sein, basierend auf frischen Signalmessungen von diesem Kanal.
Es ist zwingend erforderlich, dass dieser Wert in typischer Trägerphasen-PRR-Qualität (wenige cm/s pro Sekunde Unsicherheit oder besser) bereitgestellt wird – wenn Signale ausreichend stark und stabil sind, z. B. Signale von einem GPS-Simulator bei >= 35 dB-Hz.
doppelt pseudorange_rate_uncertainty_mps |
int64_t Received_sv_time_in_ns |
Die empfangene GNSS-Wochenzeit zur Messzeit in Nanosekunden. Stellen Sie sicher, dass dieses Feld unabhängig ist (siehe Kommentar oben in der GnssMeasurement- Struktur).
Für GPS & QZSS ist dies: Empfangene GPS-Wochenzeit zur Messzeit in Nanosekunden. Der Wert ist relativ zum Beginn der aktuellen GPS-Woche.
Angesichts des höchsten erreichbaren Synchronisationszustands pro Satellit kann der gültige Bereich für dieses Feld sein: Suche: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A-Code-Sperre : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ist gesetzt Bit-Sync : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ist gesetzt Subframe-Sync: [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ist gesetzt TOW decodiert : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ist gesetzt
Beachten Sie gut: Wenn es eine Mehrdeutigkeit in ganzzahligen Millisekunden gibt, sollte GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS im Feld „Status“ entsprechend eingestellt werden.
Dieser Wert muss ausgefüllt werden, wenn 'state' != GNSS_MEASUREMENT_STATE_UNKNOWN.
Für Glonass ist dies: Empfangene Glonass-Tageszeit zum Zeitpunkt der Messung in Nanosekunden.
Angesichts des höchsten erreichbaren Synchronisationszustands pro Satellit kann der gültige Bereich für dieses Feld sein: Suche: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A-Codesperre : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ist eingestellt Symbolsynchronisation : [ 0 10 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ist gesetzt Bit Sync : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ist gesetzt String Sync : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC ist gesetzt Tageszeit : [ 0 1day ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED ist gesetzt
Für Beidou ist dies: Empfangene Beidou-Wochenzeit zur Messzeit in Nanosekunden.
Angesichts des höchsten erreichbaren Synchronisationszustands pro Satellit kann der gültige Bereich für dieses Feld sein: Suche: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A-Codesperre: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ist gesetzt Bit-Sync (D2): [ 0 2ms]: GNSS_Measurement_State_BDS_D2_Bit_Sync ist eingestelltes Bitsynchronisation (D1): [0 20ms]: GNSS_Measurement_State_bit_Sync ist SET subframe (D2): [0 0.6s]: gnss.measurement_state_bDS_BDS_BDS_BDS_BDS_BDS_BDS_BDS_BDS_BDS_D2_SUBRAME: [0SUBNE_BDS_BDS_BDS_BDS_BDS_D2_SUBRAME: [D1): [0: [0). Woche : [ 0 1Woche ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ist eingestellt
Für Galileo ist dies: Empfangene Galileo-Wochenzeit zum Zeitpunkt der Messung in Nanosekunden.
E1BC-Codesperre: [ 0 4 ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK ist gesetzt E1C 2. Codesperre: [ 0 100 ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK ist gesetzt
E1B-Seite: [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC ist eingestellt Wochenzeit: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ist eingestellt
Für SBAS ist dies: Empfangene SBAS-Zeit zum Zeitpunkt der Messung in Nanosekunden.
Angesichts des höchsten erreichbaren Synchronisationszustands pro Satellit kann der gültige Bereich für dieses Feld sein: Suchen: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A-Code-Sperre: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ist eingestellt Symbolsynchronisation : [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ist gesetzt Meldung : [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC ist gesetzt
int64_t Received_sv_time_uncertainty_in_ns |
doppelt snr_db |
Signal-Rauschabstand am Korrelatorausgang in dB. Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_MEASUREMENT_HAS_SNR enthalten. Dies ist das Leistungsverhältnis der "Korrelationsspitzenhöhe über dem beobachteten Grundrauschen" zu "dem Effektivwert des Rauschens".
GnssMeasurementState -Zustand |
Pro Satelliten-Synchronisierungsstatus. Es stellt den aktuellen Synchronisationsstatus für den zugeordneten Satelliten dar. Basierend auf dem Synchronisationszustand sollte das Feld „Empfangenes GPS-Tow“ entsprechend interpretiert werden.
Dies ist ein obligatorischer Wert.
int16_t svid |
ID-Nummer des Satellitenfahrzeugs, wie in GnssSvInfo::svid definiert Dies ist ein obligatorischer Wert.
double time_offset_ns |
Zeitversatz, zu dem die Messung durchgeführt wurde, in Nanosekunden. Die Zeit des Referenzempfängers wird von GpsData::clock::time_ns angegeben und sollte genauso interpretiert werden wie von GpsClock::type angegeben.
Das Vorzeichen von time_offset_ns ergibt sich aus der folgenden Gleichung: Messzeit = GpsClock::time_ns + time_offset_ns
Es bietet einen individuellen Zeitstempel für die Messung und ermöglicht eine Genauigkeit im Subnanosekundenbereich. Dies ist ein obligatorischer Wert.
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ gps.h