Odniesienie do struktury GnssMeasurement
#include < gps.h >
Pola danych | |
rozmiar_t | rozmiar |
Flagi pomiarowe Gnss | flagi |
int16_t | svid |
Typ konstelacji Gnss | Konstelacja |
podwójnie | time_offset_ns |
Stan pomiaru Gnss | państwo |
int64_t | otrzymano_sv_time_in_ns |
int64_t | otrzymane_sv_time_uncertainty_in_ns |
podwójnie | c_n0_dbhz |
podwójnie | pseudozakres_rate_mps |
podwójnie | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | stan_skumulowanego_delta_zakresu |
podwójnie | zakumulowany_delta_zakres_m |
podwójnie | zgromadzony_delta_zakres_uncertainty_m |
platforma | częstotliwość_nośna_hz |
int64_t | cykle_przewoźnika |
podwójnie | faza_nośna |
podwójnie | faza_przewoźnika_niepewność |
Wskaźnik wielościeżkowy Gnss | wskaźnik_multipath |
podwójnie | snr_db |
szczegółowy opis
Reprezentuje pomiar GNSS, zawiera surowe i obliczone informacje.
Niezależność – wszystkie informacje o pomiarach sygnału (np. sv_time, pseudorange_rate, multipath_indicator) raportowane w tej strukturze powinny opierać się wyłącznie na pomiarach sygnału GNSS. Nie wolno syntezować pomiarów poprzez obliczanie lub raportowanie oczekiwanych pomiarów na podstawie znanej lub szacunkowej pozycji, prędkości lub czasu.
Dokumentacja terenowa
podwójnie skumulowany_delta_zakres_m |
Skumulowany zakres delta od ostatniego resetu kanału w metrach. Wartość dodatnia wskazuje, że SV oddala się od odbiornika.
Znak „skumulowanego zakresu delta” i jego związek ze znakiem „fazy nośnej” jest określony równaniem: skumulowany zakres delta = -k * faza nośna (gdzie k jest stałą)
Tę wartość należy wypełnić, jeśli „stan skumulowanego zakresu delta” != GPS_ADR_STATE_UNKNOWN. Oczekuje się jednak, że dane będą dokładne tylko wtedy, gdy: „stan skumulowanego zakresu delta” == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState skumulowany_delta_range_state |
podwójna skumulowana_delta_zakres_niepewność_m |
podwójne c_n0_dbhz |
int64_t cykl_przewoźnika |
Liczba pełnych cykli nośnych pomiędzy satelitą a odbiornikiem. Częstotliwość odniesienia jest podana w polu „carrier_frequency_hz”. Wskazania możliwych poślizgów cykli i resetów w kumulacji tej wartości można wywnioskować z flag stanu zakumulowanego_delta_range_state.
Jeżeli dane są dostępne, „flagi” muszą zawierać GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
pływakowa częstotliwość_nośna_hz |
podwójna faza_nośnej |
Faza RF wykryta przez odbiornik w zakresie [0,0, 1,0]. Zwykle jest to część ułamkowa pełnego pomiaru fazy nośnej.
Częstotliwość odniesienia jest podana w polu „carrier_frequency_hz”. Wartość zawiera „niepewność fazy nośnej”.
Jeśli dane są dostępne, „flagi” muszą zawierać GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
podwójna nośna_faza_niepewność |
Konstelacja typu GnssConstellation |
Flagi GnssMeasurementFlags |
GnssMultipathIndicator wskaźnik_multipath |
Wyliczenie wskazujące stan zdarzenia „wielościeżkowy”.
Celem wskaźnika wielościeżkowego jest zgłaszanie obecności nakładających się sygnałów, które objawiają się zniekształconymi szczytami korelacji.
- jeśli występuje zniekształcony kształt piku korelacji, zgłoś, że wielościeżka to GNSS_MULTIPATH_INDICATOR_PRESENT.
- jeśli nie ma zniekształconego kształtu piku korelacji, zgłoś GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- jeśli sygnały są zbyt słabe, aby rozpoznać tę informację, zgłoś GNSS_MULTIPATH_INDICATOR_UNKNOWN
Przykład: podczas wykonywania standardowego testu nakładającej się wydajności wielościeżkowej (3GPP TS 34.171) wskaźnik wielościeżkowy powinien zgłaszać GNSS_MULTIPATH_INDICATOR_PRESENT dla tych sygnałów, które są śledzone i zawierają wielościeżkę, oraz GNSS_MULTIPATH_INDICATOR_NOT_PRESENT dla tych sygnałów, które są śledzone i nie zawierają wielodrożności.
podwójny pseudozakres_rate_mps |
Szybkość pseudozakresu na znaczniku czasu w m/s. Korekta danej wartości pseudozakresu obejmuje poprawki dotyczące błędów częstotliwości zegara odbiornika i satelity. Upewnij się, że to pole jest niezależne (patrz komentarz na górze struktury GnssMeasurement .)
Obowiązkowe jest podanie „nieskorygowanej” „szybkości pseudoodległości”, a także podanie pola „dryftu” GpsClock (podając nieskorygowaną częstotliwość pseudoodległości, nie stosuj poprawek opisanych powyżej).
Wartość zawiera „niepewność prędkości pseudozakresowej”. Dodatnia „nieskorygowana” wartość wskazuje, że SV oddala się od odbiornika.
Znak „nieskorygowanej” „współczynnika pseudozakresu” i jego związek ze znakiem „przesunięcia Dopplera” jest określony równaniem: współczynnik pseudoodległości = -k * przesunięcie Dopplera (gdzie k jest stałą)
Powinien to być najdokładniejszy dostępny współczynnik pseudoodległości, oparty na pomiarach świeżego sygnału z tego kanału.
Obowiązkowe jest podanie tej wartości przy typowej jakości PRR w fazie nośnej (kilka cm/s na sekundę niepewności lub lepsza) – gdy sygnały są wystarczająco silne i stabilne, np. sygnały z symulatora GPS przy >= 35 dB-Hz.
podwójny pseudozakres_rate_uncertainty_mps |
int64_t otrzymał_sv_time_in_ns |
Odebrany czas tygodnia GNSS w momencie pomiaru, w nanosekundach. Upewnij się, że to pole jest niezależne (patrz komentarz na górze struktury GnssMeasurement .)
W przypadku GPS i QZSS jest to: Odebrana godzina GPS w momencie pomiaru, w nanosekundach. Wartość odnosi się do początku bieżącego tygodnia GPS.
Biorąc pod uwagę najwyższy stan synchronizacji, jaki można osiągnąć dla każdego satelity, prawidłowy zakres dla tego pola może być następujący: Wyszukiwanie : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blokada kodowa C/A : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK jest ustawiona Synchronizacja bitów : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC jest ustawione Synchronizacja podramek : [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC jest ustawione TOW dekodowane : [ 0 1 tydzień ] : GNSS_MEASUREMENT_STATE_TOW_DECODED jest ustawione
Uwaga: jeśli występuje jakakolwiek niejednoznaczność w milisekundach całkowitych, w polu „stan” należy odpowiednio ustawić GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS.
Tę wartość należy wypełnić, jeśli „stan” != GNSS_MEASUREMENT_STATE_UNKNOWN.
W przypadku Glonass jest to: Odebrana godzina Glonass, w momencie pomiaru w nanosekundach.
Biorąc pod uwagę najwyższy stan synchronizacji, jaki można osiągnąć dla każdego satelity, prawidłowy zakres dla tego pola może być następujący: Wyszukiwanie : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blokada kodowa C/A : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK jest ustawiona Synchronizacja symboli : [ 0 10 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC jest ustawione Synchronizacja bitów : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC jest ustawione Synchronizacja ciągów znaków : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC jest ustawione Pora dnia : [ 0 1 dzień ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECOD ED jest ustawione
W przypadku Beidou jest to: Odebrana godzina tygodnia w Beidou, w czasie pomiaru w nanosekundach.
Biorąc pod uwagę najwyższy stan synchronizacji, jaki można osiągnąć dla każdego satelity, prawidłowy zakres dla tego pola może być następujący: Wyszukiwanie : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blokada kodowa C/A: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK jest ustawiona Synchronizacja bitów (D2): [ 0 2 ms] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC jest ustawione Bit sync (D1): [ 0 20 ms] : GNSS_MEASUREMENT_STATE_BIT_SYNC jest ustawione Podramka (D2): [ 0 0.6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC jest ustawiona Podramka (D1): [ 0 6s]: Ustawiono GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC. Czas tydzień: [0 1 tydzień]: ustawiono GNSS_MEASUREMENT_STATE_TOW_DECODED
W przypadku Galileo jest to: Odebrana pora tygodnia Galileo, w czasie pomiaru w nanosekundach.
Zamek szyfrowy E1BC: [0 4ms]: GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK ustawiony E1C Drugi zamek szyfrowy: [0 100ms]: GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK ustawiony
Strona E1B: [ 0 2s ] : ustawiono GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC Czas tygodnia: [ 0 1 tydzień ] : ustawiono GNSS_MEASUREMENT_STATE_TOW_DECODED
W przypadku SBAS jest to: odebrany czas SBAS w momencie pomiaru w nanosekundach.
Biorąc pod uwagę najwyższy stan synchronizacji, jaki można osiągnąć dla każdego satelity, prawidłowy zakres dla tego pola może być następujący: Wyszukiwanie: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blokada kodowa C/A: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK jest ustawiona Synchronizacja symboli : [ 0 2 ms ] : Ustawiono GNSS_MEASUREMENT_STATE_SYMBOL_SYNC Wiadomość : [ 0 1s ] : Ustawiono GNSS_MEASUREMENT_STATE_SBAS_SYNC
int64_t otrzymane_sv_time_uncertainty_in_ns |
podwójne snr_db |
Stan GnssMeasurementState |
int16_t vid |
Numer identyfikacyjny pojazdu satelitarnego zgodnie z definicją w GnssSvInfo::svid Jest to wartość obowiązkowa.
podwójne przesunięcie czasu_ns |
Przesunięcie czasowe, w którym dokonano pomiaru, w nanosekundach. Czas odbiornika referencyjnego jest określony przez GpsData::clock::time_ns i należy go interpretować w taki sam sposób, jak wskazuje GpsClock::type .
Znak time_offset_ns podaje się za pomocą następującego równania: czas pomiaru = GpsClock::time_ns + time_offset_ns
Zapewnia indywidualny znacznik czasu pomiaru i umożliwia dokładność poniżej nanosekundy. Jest to wartość obowiązkowa.
Dokumentacja tej struktury została wygenerowana z następującego pliku:
- hardware/libhardware/include/hardware/ gps.h