Odwołania do typu danych GnssMeasurement
#include <
gps.h
>
Pola danych |
|
size_t | size |
GnssMeasurementFlags | flags |
int16_t | svid |
GnssConstellationType | constellation |
podwójny | time_offset_ns |
GnssMeasurementState | state |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
podwójny | c_n0_dbhz |
podwójny | pseudorange_rate_mps |
podwójny | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
podwójny | accumulated_delta_range_m |
podwójny | accumulated_delta_range_uncertainty_m |
liczba zmiennoprzecinkowa | carrier_frequency_hz |
int64_t | carrier_cycles |
podwójny | carrier_phase |
podwójny | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
podwójny | snr_db |
Szczegółowy opis
Reprezentuje pomiar GNSS. Zawiera informacje nieprzetworzone i przetworzone.
Niezależność – wszystkie informacje o pomiarach sygnału (np. sv_time, pseudorange_rate, multipath_indicator) zgłaszane w tym typie danych powinny być oparte wyłącznie na pomiarach sygnału GNSS. Nie wolno syntetyzować pomiarów przez obliczanie lub raportowanie oczekiwanych pomiarów na podstawie znanej lub oszacowanej pozycji, prędkości lub czasu.
Dokumentacja pola
double accumulated_delta_range_m |
Zbiorzony zakres delty od ostatniego resetowania kanału w metrach. Wartość dodatnia wskazuje, że SV oddala się od odbiornika.
Znak „skumulowanego zakresu delty” i jego związek ze znakiem „fazy nośnika” są podane w równaniu: skumulowany zakres delty = -k * faza nośnika (gdzie k jest stałą)
Ta wartość musi być wypełniona, jeśli „accumulated delta range state” != GPS_ADR_STATE_UNKNOWN. Należy jednak pamiętać, że dane są prawidłowe tylko wtedy, gdy „accumulated delta range state” = GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
podwójna dokładność accumulated_delta_range_uncertainty_m |
podwójny c_n0_dbhz |
int64_t carrier_cycles |
Liczba pełnych cykli nośnych między satelitą a odbiornikiem. Częstotliwość odniesienia jest podana w polu „carrier_frequency_hz”. Możliwe przesunięcia i resety cyklu w zbiorze tej wartości można wywnioskować z flag accumulated_delta_range_state.
Jeśli dane są dostępne, flaga „flags” musi zawierać GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
podwójny carrier_phase |
Faza RF wykrywana przez odbiornik, w zakresie [0,0, 1,0]. Jest to zwykle część ułamkowa pełnego pomiaru fazy nośnej.
Częstotliwość odniesienia jest podana w polu „carrier_frequency_hz”. Wartość zawiera „niepewność fazy nośnika”.
Jeśli dane są dostępne, w elementach „flags” musi być obecny element GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
podwójna carrier_phase_uncertainty |
GnssConstellationType constellation |
GnssMeasurementFlags flagi |
GnssMultipathIndicator multipath_indicator |
Wyliczenie wskazujące stan „wielokrotnej ścieżki” zdarzenia.
Wskaźnik wielościeżkowy ma na celu zgłaszanie obecności nakładających się sygnałów, które manifestują się jako zniekształcone szczyty korelacji.
- jeśli kształt szczytu korelacji jest zniekształcony, zgłoś, że wielościeżka to GNSS_MULTIPATH_INDICATOR_PRESENT.
- jeśli nie ma zniekształconego kształtu szczytu korelacji, zgłoś GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- Jeśli sygnały są zbyt słabe, aby rozróżnić te informacje, użyj parametru GNSS_MULTIPATH_INDICATOR_UNKNOWN.
Przykład: podczas przeprowadzania standaryzowanego testu wydajności wielościeżkowej z nakładaniem (3GPP TS 34.171) wskaźnik wielościeżkowy powinien zwracać GNSS_MULTIPATH_INDICATOR_PRESENT w przypadku sygnałów, które są śledzone i zawierają informacje o wielościeżkowej ścieżce, oraz GNSS_MULTIPATH_INDICATOR_NOT_PRESENT w przypadku sygnałów, które są śledzone, ale nie zawierają informacji o wielościeżkowej ścieżce.
podwójna pseudorange_rate_mps |
Szybkość pseudozakresu w sygnaturze czasowej w m/s. Korekta danej wartości współczynnika pseudozakresu obejmuje korekty błędów częstotliwości zegara odbiornika i satelity. Upewnij się, że to pole jest niezależne (patrz komentarz na szczycie typu GnssMeasurement struct).
Należy podać „nieskorygowaną” „pseudoszybkość” oraz pole „drift” ( GpsClock)) (gdy podajesz nieskorygowaną pseudoszybkość, nie stosuj korekt opisanych powyżej).
Wartość zawiera „niepewność szybkości pseudozakresu”. Dodatnia wartość „uncorrected” wskazuje, że SV oddala się od odbiornika.
Znak „nieskorygowanej” „pseudoszybkości” i jej związek ze znakiem „zmiany Dopplera” jest określony przez równanie: pseudoszybkość = -k * zmiana Dopplera (gdzie k to stała)
Powinien to być najbardziej dokładny dostępny współczynnik pseudozakresu, oparty na aktualnych pomiarach sygnału z tego kanału.
Wartość ta musi być podawana w ramach typowej jakości PRR fazy nośnej (kilka cm/s na sekundę niepewności lub lepiej) – gdy sygnały są wystarczająco silne i stabilne, np. sygnały z symulacji GPS o wartości >= 35 dB-Hz.
podwójna pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
Odebrany sygnał GNSS Time-of-Week w momencie pomiaru (w nanosekundach). Upewnij się, że to pole jest niezależne (patrz komentarz na szczycie typu GnssMeasurement struct).
W przypadku GPS i QZSS: Odebrany czas GPS w godzinie pomiaru w nanosekundach. Wartość jest podana względem początku bieżącego tygodnia GPS.
Biorąc pod uwagę najwyższy stan synchronizacji, który można osiągnąć dla każdego satelity, prawidłowy zakres tego pola może być następujący: Szukanie : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blokada kodu C/A : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK jest ustawiona Bitowa synchronizacja : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC jest ustawiona Synchronizacja podramkowa : [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC jest ustawiona TOW dekodowane : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED jest ustawiona
Uwaga: jeśli w przypadku liczby całkowitej w milisekundach występuje niejednoznaczność, w polu „state” należy odpowiednio ustawić parametr GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS.
Ta wartość musi być wypełniona, jeśli „state” != GNSS_MEASUREMENT_STATE_UNKNOWN.
W przypadku Glonass: Odebrany czas Glonass w czasie pomiaru w nanosekundach.
Biorąc pod uwagę najwyższy stan synchronizacji, który można osiągnąć dla każdego satelity, prawidłowy zakres tego pola może być następujący: Szukanie : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blokada kodu C/A : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK jest ustawiona Synchronizacja symboli : [ 0 10ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC jest ustawiona Synchronizacja bitów : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC jest ustawiona Synchronizacja ciągu znaków : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC jest ustawiona Czas lokalny : [ 0 1day ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED jest ustawiona
W przypadku Beidou: Odbierany czas tygodnia Beidou w czasie pomiaru w nanosekundach.
Biorąc pod uwagę najwyższy stan synchronizacji, który można osiągnąć dla każdego satelity, prawidłowy zakres dla tego pola może być następujący: Szukanie : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blokowanie kodu C/A: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK jest ustawione Bitowa synchronizacja (D2): [ 0 2ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC jest ustawione Bitowa synchronizacja (D1): [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC jest ustawione Subframe (D2): [ 0 0.6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC jest ustawione Subframe (D1): [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC jest ustawione Czas tygodnia : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED jest ustawione
W przypadku Galileo: Odebrany czas tygodnia Galileo w czasie pomiaru w nanosekundach.
Blokada kodu E1BC : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK jest ustawiona Blokada 2. kodu E1C: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK jest ustawiona
Strona E1B : [0 2 s ] : ustawiono GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC. Dzień tygodnia: [0 1 tydzień ] : ustawiono GNSS_MEASUREMENT_STATE_TOW_DECODED.
W przypadku SBAS: Odebrany czas SBAS w czasie pomiaru w nanosekundach.
Biorąc pod uwagę najwyższy stan synchronizacji, który można osiągnąć dla każdego satelity, prawidłowy zakres tego pola może być następujący: Szukanie : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blokada kodu C/A: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK jest ustawiona Synchronizacja symboli : [ 0 2ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC jest ustawiona Wiadomość : [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC jest ustawiona
int64_t received_sv_time_uncertainty_in_ns |
podwójna snr_db |
GnssMeasurementState stan |
int16_t svid |
Numer identyfikacyjny satelity, zdefiniowany w GnssSvInfo::svid Jest to wartość obowiązkowa.
double time_offset_ns |
Odchylenie czasowe, w którym dokonano pomiaru, w nanosekundach. Czas odbiornika referencyjnego jest określony przez GpsData::clock::time_ns i powinien być interpretowany w taki sam sposób jak wskazany przez GpsClock::type .
Znak wartości time_offset_ns jest określony przez tę zależność: czas pomiaru = GpsClock::time_ns + time_offset_ns
Zapewnia on indywidualny znacznik czasu dla pomiaru i pozwala na dokładność do nanosekund. Ta wartość jest wymagana.
Dokumentacja tego typu danych została wygenerowana z tego pliku:
- hardware/libhardware/include/hardware/ gps.h