Informacje o strukturze GnssClock
#include <
gps.h
>
Pola danych |
|
size_t | size |
GnssClockFlags | flags |
int16_t | leap_second |
int64_t | time_ns |
podwójny | time_uncertainty_ns |
int64_t | full_bias_ns |
podwójny | bias_ns |
podwójny | bias_uncertainty_ns |
podwójny | drift_nsps |
podwójny | drift_uncertainty_nsps |
uint32_t | hw_clock_discontinuity_count |
Szczegółowy opis
Dokumentacja pola
podwójny bias_ns |
Błąd poniżej nanosekundy. Szacowany błąd sumy tego parametru i parametru full_bias_ns to parametr bias_uncertainty_ns.
Jeśli dane są dostępne, flaga „flags” musi zawierać GNSS_CLOCK_HAS_BIAS. czy GPS obliczył pozycję. Ta wartość jest wymagana, jeśli odbiornik ma szacowany czas GPS.
podwójny błąd bias_uncertainty_ns |
Niepewność 1-sigma związana z lokalnym szacunkiem czasu GPS (błąd zegara) w nanosekundach. Niepewność jest reprezentowana jako wartość bezwzględna (jednostronna).
Jeśli dane są dostępne, flaga „flags” musi zawierać GNSS_CLOCK_HAS_BIAS_UNCERTAINTY. Ta wartość jest wymagana, jeśli odbiornik ma szacowany czas GPS.
podwójny drift_nsps |
Odchylenie zegara w nanosekundach (na sekundę).
Dodatnia wartość oznacza, że częstotliwość jest wyższa niż częstotliwość nominalna, a wartość (full_bias_ns + bias_ns) rośnie z czasem.
Wartość zawiera „niepewność dryftu”. Jeśli dane są dostępne, flaga „flags” musi zawierać GNSS_CLOCK_HAS_DRIFT.
Ta wartość jest wymagana, jeśli odbiornik ma szacowany czas GNSS
podwójny drift_uncertainty_nsps |
Niepewność 1-sigma związana z odchyleniem zegara w nanosekundach (na sekundę). Niepewność jest reprezentowana jako wartość bezwzględna (jednostronna).
Jeśli dane są dostępne, flaga „flags” musi zawierać GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY. Jeśli GPS obliczył pozycję, to pole jest wymagane i musi być wypełnione.
GnssClockFlags flagi |
int64_t full_bias_ns |
Różnica między zegarem sprzętowym (pole „time”) w odbiorniku GPS a prawdziwym czasem GPS od 0000Z, 6 stycznia 1980 r., w nanosekundach.
Znak wartości jest zdefiniowany za pomocą tej zależności: lokalny szacowany czas GPS = time_ns - (full_bias_ns + bias_ns)
Ta wartość jest wymagana, jeśli odbiornik ma szacowany czas GPS. Jeśli obliczony czas dotyczy konstelacji innej niż GPS, należy zastosować przesunięcie czasowe tej konstelacji względem GPS, aby wypełnić tę wartość. Szacunkowa wartość błędu sumy tego parametru i parametru bias_ns to bias_uncertainty_ns, a wywołujący jest odpowiedzialny za używanie tej wartości niepewności (może ona być bardzo duża przed rozwiązaniem problemu dotyczącego czasu GPS). Jeśli dane są dostępne, flaga „flags” musi zawierać GNSS_CLOCK_HAS_FULL_BIAS.
uint32_t hw_clock_discontinuity_count |
Jeśli w zegarze sprzętowym występują jakiekolwiek przerwy, to pole jest wymagane.
„Przerwa” ma na celu uwzględnienie sytuacji, gdy następuje przejście z jednego źródła czasu na drugie. Pojedynczy oscylator kwarcowy (XO) nie powinien mieć żadnych przerw, dlatego można go ustawić i pozostawić na 0.
Jeśli jednak wartość time_ns (zegar HW) pochodzi z kombinacji źródeł, która nie jest tak płynna jak typowe XO, lub jest w inny sposób zatrzymana i ponowicie uruchomiona, ta wartość powinna być zwiększana za każdym razem, gdy wystąpi przerwa. (na przykład ta wartość może wynosić 0 podczas uruchamiania urządzenia i zwiększać się za każdym razem, gdy nastąpi zmiana ciągłości zegara. W nieprawdopodobnym przypadku, gdy ta wartość osiągnie pełną skalę, wymagane jest przeniesienie (a nie ograniczenie) wartości, tak aby nadal się zmieniała podczas kolejnych zdarzeń przerwania.
Ponieważ ta liczba jest taka sama w przypadku wszystkich raportów GnssClock , można bezpiecznie założyć, że wartość time_ns jest ciągła, np.pochodzi z jednego zegara o wysokiej jakości (np. XO lub lepszego, który jest zwykle używany podczas ciągłego próbkowania sygnału GNSS).
Oczekuje się, że w okresach, w których dostępnych jest niewiele sygnałów GNSS, zegar HW będzie jak najdłużej wolny od przerw, ponieważ zapobiegnie to konieczności używania (marnowania) pomiarów GNSS do pełnego rozwiązywania zadań związanych z błędem i odchyleniem zegara GPS, gdy używa się towarzyszących pomiarów z kolejnych raportów GnssData
int16_t leap_second |
int64_t time_ns |
Wartość zegara wewnętrznego odbiornika GNSS. Jest to wartość zegara sprzętowego.
W przypadku lokalnego zegara sprzętowego wartość ta powinna rosnąć monotonicznie, dopóki zegar jest włączony. (w przypadku zegara HW, który nie jest włączony stale, patrz pole hw_clock_discontinuity_count). Szacunkowy czas GPS odbiornika można uzyskać, odejmując od tej wartości sumę parametrów full_bias_ns i bias_ns (jeśli są dostępne).
Czas GPS jest najlepszym szacunkiem bieżącego czasu GPS, jaki może uzyskać odbiornik GNSS.
Dokładność poniżej nanosekund można uzyskać za pomocą pola „bias_ns”. Wartość zawiera „niepewność czasu”.
To pole jest wymagane.
podwójny time_uncertainty_ns |
Niepewność 1-sigma związana z czasem zegara w nanosekundach. Niepewność jest reprezentowana jako wartość bezwzględna (jednostronna).
Jeśli dane są dostępne, w elementach „flags” musi być podany parametr GNSS_CLOCK_HAS_TIME_UNCERTAINTY. Ta wartość jest w istocie równa zeru (jest to odniesienie do zegara lokalnego, według którego mierzone są wszystkie inne czasy i niepewności czasowe). (W związku z tym to pole może nie być określone zgodnie z flagą GNSS_CLOCK_HAS_TIME_UNCERTAINTY lub może być określone i ustawione na 0).
Dokumentacja tego typu danych została wygenerowana z tego pliku:
- hardware/libhardware/include/hardware/ gps.h