GnssClock-Strukturreferenz
#include < gps.h >
Datenfelder | |
size_t | Größe |
GnssClockFlags | Flaggen |
int16_t | Schaltsekunde |
int64_t | time_ns |
doppelt | time_uncertainty_ns |
int64_t | full_bias_ns |
doppelt | Bias_ns |
doppelt | bias_uncertainty_ns |
doppelt | drift_nsps |
doppelt | drift_uncertainty_nsps |
uint32_t | hw_clock_discontinuity_count |
detaillierte Beschreibung
Felddokumentation
doppelter Bias_ns |
Sub-Nanosekunden-Bias. Die Fehlerschätzung für die Summe dieser und der full_bias_ns ist „bias_uncertainty_ns“.
Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_CLOCK_HAS_BIAS enthalten. Wenn GPS eine Positionsbestimmung berechnet hat. Dieser Wert ist obligatorisch, wenn der Empfänger über eine geschätzte GPS-Zeit verfügt.
doppelte Bias_uncertainty_ns |
1-Sigma-Unsicherheit im Zusammenhang mit der lokalen Schätzung der GPS-Zeit (Uhrenabweichung) in Nanosekunden. Die Unsicherheit wird als absoluter (einseitiger) Wert dargestellt.
Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_CLOCK_HAS_BIAS_UNCERTAINTY enthalten. Dieser Wert ist obligatorisch, wenn der Empfänger über eine geschätzte GPS-Zeit verfügt.
doppelte drift_nsps |
Die Drift der Uhr in Nanosekunden (pro Sekunde).
Ein positiver Wert bedeutet, dass die Frequenz höher als die Nennfrequenz ist und dass (full_bias_ns + Bias_ns) mit der Zeit positiver wird.
Der Wert enthält die „Driftunsicherheit“. Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_CLOCK_HAS_DRIFT enthalten.
Dieser Wert ist obligatorisch, wenn der Empfänger über eine geschätzte GNSS-Zeit verfügt
doppelte drift_uncertainty_nsps |
1-Sigma-Unsicherheit im Zusammenhang mit der Drift der Uhr in Nanosekunden (pro Sekunde). Die Unsicherheit wird als absoluter (einseitiger) Wert dargestellt.
Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY enthalten. Wenn GPS eine Positionsbestimmung berechnet hat, ist dieses Feld obligatorisch und muss ausgefüllt werden.
GnssClockFlags -Flags |
int64_t full_bias_ns |
Die Differenz zwischen der Hardware-Uhr (Feld „Zeit“) im GPS-Empfänger und der tatsächlichen GPS-Zeit seit 00:00 Uhr, dem 6. Januar 1980, in Nanosekunden.
Das Vorzeichen des Werts wird durch die folgende Gleichung definiert: lokale Schätzung der GPS-Zeit = time_ns – (full_bias_ns + Bias_ns)
Dieser Wert ist obligatorisch, wenn der Empfänger über eine geschätzte GPS-Zeit verfügt. Wenn die berechnete Zeit für eine Nicht-GPS-Konstellation gilt, muss der Zeitversatz dieser Konstellation zum GPS angewendet werden, um diesen Wert zu füllen. Die Fehlerschätzung für die Summe aus diesem und dem „bias_ns“ ist „bias_uncertainty_ns“, und der Aufrufer ist für die Verwendung dieser Unsicherheit verantwortlich (sie kann sehr groß sein, bevor die GPS-Zeit gelöst wurde). Wenn die Daten verfügbar sind, müssen „Flags“ enthalten sein GNSS_CLOCK_HAS_FULL_BIAS.
uint32_t hw_clock_discontinuity_count |
Wenn es Diskontinuitäten in der HW-Uhr gibt, ist dieses Feld ein Pflichtfeld.
Eine „Diskontinuität“ soll den Fall eines Wechsels von einer Taktquelle zu einer anderen abdecken. Ein einzelner freilaufender Quarzoszillator (XO) sollte im Allgemeinen keine Diskontinuitäten aufweisen und kann auf 0 eingestellt und belassen werden.
Wenn der time_ns-Wert (HW-Takt) jedoch aus einer Kombination von Quellen abgeleitet wird, die nicht so glatt ist wie ein typischer XO, oder auf andere Weise gestoppt und neu gestartet wird, muss dieser Wert jedes Mal erhöht werden, wenn eine Diskontinuität auftritt. (Zum Beispiel kann dieser Wert beim Hochfahren des Geräts bei Null beginnen und bei jeder Änderung der Taktkontinuität erhöht werden. Für den unwahrscheinlichen Fall, dass dieser Wert den vollen Skalenwert erreicht, ist ein Rollover (kein Klemmen) erforderlich, damit dieser Wert weiterhin anhält Änderung während nachfolgender Diskontinuitätsereignisse.)
Während diese Zahl zwischen GnssClock- Berichten gleich bleibt, kann man mit Sicherheit davon ausgehen, dass der time_ns-Wert kontinuierlich lief, z. B. abgeleitet von einer einzelnen, hochwertigen Uhr (XO-ähnlich oder besser, die typischerweise während der kontinuierlichen GNSS-Signalabtastung verwendet wird). )
Es wird erwartet, insb. In Zeiten, in denen nur wenige GNSS-Signale verfügbar sind, muss die HW-Uhr so lange wie möglich diskontinuierlich sein, da dadurch die Notwendigkeit vermieden wird, eine GNSS-Messung zu verwenden (zu verschwenden), um die Abweichung und Drift der GPS-Uhr vollständig neu zu ermitteln unter Verwendung der begleitenden Messungen aus aufeinanderfolgenden GnssData- Berichten.
int16_t leap_second |
int64_t time_ns |
Der interne Taktwert des GNSS-Empfängers. Dies ist der lokale Hardware-Uhrwert.
Für die lokale Hardware-Uhr wird erwartet, dass dieser Wert monoton ansteigt, während die Hardware-Uhr eingeschaltet bleibt. (Für den Fall einer HW-Uhr, die nicht kontinuierlich eingeschaltet ist, siehe das Feld hw_clock_discontinuity_count). Die vom Empfänger geschätzte GPS-Zeit kann durch Subtrahieren der Summe von full_bias_ns und Bias_ns (sofern verfügbar) von diesem Wert abgeleitet werden.
Es wird erwartet, dass diese GPS-Zeit die beste Schätzung der aktuellen GPS-Zeit ist, die ein GNSS-Empfänger erreichen kann.
Mithilfe des Felds „bias_ns“ kann eine Genauigkeit im Sub-Nanosekundenbereich bereitgestellt werden. Der Wert enthält die „Zeitunsicherheit“.
Das Feld ist obligatorisch.
doppelte time_uncertainty_ns |
1-Sigma-Unsicherheit im Zusammenhang mit der Uhrzeit in Nanosekunden. Die Unsicherheit wird als absoluter (einseitiger) Wert dargestellt.
Wenn die Daten verfügbar sind, müssen „Flags“ GNSS_CLOCK_HAS_TIME_UNCERTAINTY enthalten. Dieser Wert ist praktisch Null (es ist die lokale Referenzuhr, anhand derer alle anderen Zeiten und Zeitunsicherheiten gemessen werden.) (Und daher kann dieses Feld nicht gemäß GNSS_CLOCK_HAS_TIME_UNCERTAINTY-Flag bereitgestellt oder bereitgestellt und auf 0 gesetzt werden.)
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ gps.h