GnssMeasurement-Strukturreferenz
#include < gps.h >
Datenfelder | |
size_t | Größe |
GnssMeasurementFlags | Flaggen |
int16_t | svid |
GnssConstellationType | Konstellation |
doppelt | time_offset_ns |
GnssMeasurementState | Zustand |
int64_t | empfangene_sv_time_in_ns |
int64_t | empfangene_sv_time_uncertainty_in_ns |
doppelt | c_n0_dbhz |
doppelt | pseudorange_rate_mps |
doppelt | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | akkumulierter_delta_range_state |
doppelt | akkumuliert_delta_range_m |
doppelt | akkumulierte_delta_range_uncertainty_m |
schweben | Trägerfrequenz_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 rohe und berechnete Informationen.
Unabhängigkeit – Alle in dieser Struktur gemeldeten Signalmessinformationen (z. B. sv_time, pseudorange_rate, multipath_indicator) sollten nur auf GNSS-Signalmessungen basieren. Sie dürfen Messungen nicht synthetisieren, indem Sie erwartete Messungen auf der Grundlage bekannter oder geschätzter Position, Geschwindigkeit oder Zeit berechnen oder melden.
Felddokumentation
doppelte akkumulierte_delta_range_m |
Kumulierte Delta-Reichweite seit dem letzten Kanal-Reset in Metern. Ein positiver Wert zeigt an, dass sich der SV vom Empfänger entfernt.
Das Vorzeichen des „akkumulierten Deltabereichs“ und seine Beziehung zum Vorzeichen der „Trägerphase“ ergibt sich aus der Gleichung: akkumulierter Deltabereich = -k * Trägerphase (wobei k eine Konstante ist)
Dieser Wert muss ausgefüllt werden, wenn „Akkumulierter Deltabereichsstatus“ != GPS_ADR_STATE_UNKNOWN. Es wird jedoch erwartet, dass die Daten nur dann korrekt sind, wenn: „akkumulierter Deltabereichsstatus“ == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState academic_delta_range_state |
doppelte akkumulierte_delta_range_uncertainty_m |
doppeltes c_n0_dbhz |
int64_t Carrier_cycles |
Die Anzahl der vollständigen Trägerzyklen zwischen dem Satelliten und dem Empfänger. Die Referenzfrequenz wird durch das Feld „carrier_frequenz_hz“ angegeben. Hinweise auf mögliche Zyklusverschiebungen 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, müssen „Flags“ GNSS_MEASUREMENT_HAS_CARRIER_CYCLES enthalten.
Float Carrier_Frequenz_Hz |
Trägerfrequenz, mit der Codes und Nachrichten moduliert werden. Sie kann L1 oder L2 sein. Wenn das Feld nicht gesetzt ist, wird angenommen, dass die Trägerfrequenz L1 ist.
Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY enthalten.
doppelte Carrier_Phase |
Die vom Empfänger erkannte HF-Phase im Bereich [0,0, 1,0]. Dies ist normalerweise der Bruchteil der vollständigen Trägerphasenmessung.
Die Referenzfrequenz wird durch das Feld „carrier_frequenz_hz“ angegeben. Der Wert enthält die „Trägerphasenunsicherheit“.
Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_MEASUREMENT_HAS_CARRIER_PHASE enthalten.
doppelte Carrier_phase_uncertainty |
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 eine verzerrte Korrelationsspitzenform vorliegt, melden Sie, dass Multipath GNSS_MULTIPATH_INDICATOR_PRESENT ist.
- Wenn keine verzerrte Korrelationspeakform vorliegt, 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 keinen Multipath enthalten.
doppelte pseudorange_rate_mps |
Pseudorange-Rate zum Zeitstempel in m/s. Die Korrektur eines bestimmten Pseudorange-Rate-Werts umfasst Korrekturen für Empfänger- und Satellitenuhrfrequenzfehler. 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 anzugeben (Bei der Bereitstellung der unkorrigierten Pseudorange-Rate dürfen die oben beschriebenen Korrekturen nicht angewendet werden.)
Der Wert beinhaltet die „Pseudorange-Rate-Unsicherheit“. Ein positiver „unkorrigierter“ Wert zeigt an, dass sich der SV vom Empfänger entfernt.
Das Vorzeichen der „unkorrigierten“ „Pseudorange-Rate“ und ihre Beziehung zum Vorzeichen der „Doppler-Verschiebung“ ergibt sich aus der Gleichung: Pseudorange-Rate = -k * Doppler-Verschiebung (wobei k eine Konstante ist)
Dies sollte die genaueste verfügbare Pseudorange-Rate sein, basierend auf frischen Signalmessungen von diesem Kanal.
Es ist zwingend erforderlich, dass dieser Wert bei typischer Trägerphasen-PRR-Qualität (wenige cm/s pro Sekunde Unsicherheit oder besser) bereitgestellt wird – wenn die Signale ausreichend stark und stabil sind, z. B. Signale von einem GPS-Simulator bei >= 35 dB-Hz.
doppelte pseudorange_rate_uncertainty_mps |
int64_t empfangene_sv_time_in_ns |
Die zum Messzeitpunkt empfangene GNSS-Wochenzeit in Nanosekunden. Stellen Sie sicher, dass dieses Feld unabhängig ist (siehe Kommentar oben in der GnssMeasurement -Struktur).
Für GPS und QZSS ist dies: Empfangene GPS-Wochenzeit zum Messzeitpunkt in Nanosekunden. Der Wert ist relativ zum Beginn der aktuellen GPS-Woche.
Angesichts des höchsten Synchronisierungsstatus, der pro Satellit erreicht werden kann, 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 Bitsynchronisierung: [0 20 ms] : GNSS_MEASUREMENT_STATE_BIT_SYNC ist eingestellt Subframe-Synchronisierung: [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ist gesetzt TOW dekodiert : [ 0 1 Woche ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ist gesetzt
Beachten Sie Folgendes: Wenn Unklarheiten in ganzzahligen Millisekunden bestehen, sollte GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS im Feld „Status“ entsprechend festgelegt werden.
Dieser Wert muss ausgefüllt werden, wenn „state“ != GNSS_MEASUREMENT_STATE_UNKNOWN ist.
Für Glonass ist dies: Empfangene Glonass-Tageszeit zum Messzeitpunkt in Nanosekunden.
Angesichts des höchsten Synchronisierungsstatus, der pro Satellit erreicht werden kann, 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 festgelegt Symbolsynchronisierung: [0 10 ms] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ist gesetzt Bitsynchronisation: [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ist gesetzt Stringsynchronisation : [ 0 2 s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC ist gesetzt Tageszeit : [ 0 1 Tag ] : GNSS_MEASUREMENT_STATE_GLO_TOD _DECODED ist gesetzt
Für Beidou ist dies: Empfangene Beidou-Wochenzeit zum Messzeitpunkt in Nanosekunden.
Angesichts des höchsten Synchronisierungsstatus, der pro Satellit erreicht werden kann, 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 Bitsynchronisierung (D2): [ 0 2 ms ]: GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC ist gesetzt Bitsynchronisation (D1): [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ist gesetzt Subframe (D2): [ 0 0,6 s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC ist gesetzt Subframe (D1): [ 0 6s]: GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ist eingestellt. Uhrzeit von Woche: [0 1 Woche]: GNSS_MEASUREMENT_STATE_TOW_DECODED ist eingestellt
Für Galileo ist dies: Empfangene Galileo-Wochenzeit zum Messzeitpunkt 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 1 Woche]: GNSS_MEASUREMENT_STATE_TOW_DECODED ist gesetzt
Für SBAS ist dies: Empfangene SBAS-Zeit zum Messzeitpunkt in Nanosekunden.
Angesichts des höchsten Synchronisierungsstatus, der pro Satellit erreicht werden kann, 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 festgelegt Symbolsynchronisierung: [0 2 ms] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ist gesetzt. Nachricht: [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC ist gesetzt
int64_t empfangen_sv_time_uncertainty_in_ns |
doppelte snr_db |
GnssMeasurementState -Status |
Pro Satellitensynchronisierungsstatus. Es stellt den aktuellen Synchronisierungsstatus für den zugehörigen Satelliten dar. Basierend auf dem Synchronisierungsstatus sollte das Feld „Received GPS Tow“ entsprechend interpretiert werden.
Dies ist ein obligatorischer Wert.
int16_t svid |
Satellitenfahrzeug-ID-Nummer, wie in GnssSvInfo::svid definiert. Dies ist ein obligatorischer Wert.
doppelter time_offset_ns |
Zeitversatz, bei 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 durch GpsClock::type angegeben.
Das Vorzeichen von time_offset_ns ergibt sich aus der folgenden Gleichung: Messzeit = GpsClock::time_ns + time_offset_ns
Es liefert einen individuellen Zeitstempel für die Messung und ermöglicht eine Genauigkeit im Sub-Nanosekunden-Bereich. Dies ist ein obligatorischer Wert.
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ gps.h