Riferimento alla struttura GnssMeasurement
#include < gps.h >
Campi dati | |
taglia_t | taglia |
GnssMeasurementFlags | bandiere |
int16_t | svid |
GnssConstellationType | costellazione |
Doppio | time_offset_ns |
GnssMeasurementState | stato |
int64_t | ricevuto_sv_time_in_ns |
int64_t | ricevuto_sv_time_incertezza_in_ns |
Doppio | c_n0_dbhz |
Doppio | pseudorange_rate_mps |
Doppio | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
Doppio | intervallo_delta_accumulato_m |
Doppio | intervallo_delta_accumulato_incertezza_m |
galleggiante | frequenza_portante_hz |
int64_t | carrier_cycles |
Doppio | fase_portante |
Doppio | vettore_fase_incertezza |
GnssMultipathIndicator | indicatore_percorso multiplo |
Doppio | snr_db |
Descrizione dettagliata
Rappresenta una misurazione GNSS, contiene informazioni grezze e calcolate.
Indipendenza - Tutte le informazioni sulla misurazione del segnale (ad es. sv_time, pseudorange_rate, multipath_indicator) riportate in questa struttura devono essere basate solo sulle misurazioni del segnale GNSS. Non è possibile sintetizzare le misurazioni calcolando o riportando le misurazioni previste in base a posizione, velocità o tempo noti o stimati.
Documentazione sul campo
doppio intervallo_delta_accumulato_m |
Intervallo delta accumulato dall'ultimo azzeramento del canale in metri. Un valore positivo indica che l'SV si sta allontanando dal ricevitore.
Il segno del 'intervallo delta accumulato' e la sua relazione con il segno della 'fase portante' è dato dall'equazione: intervallo delta accumulato = -k * fase portante (dove k è una costante)
Questo valore deve essere compilato se 'stato intervallo delta accumulato' != GPS_ADR_STATE_UNKNOWN. Tuttavia, si prevede che i dati siano accurati solo quando: 'accumulated delta range state' == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
doppio accumulated_delta_range_uncertainty_m |
doppio c_n0_dbhz |
int64_t carrier_cycles |
Il numero di cicli di portanti completi tra il satellite e il ricevitore. La frequenza di riferimento è data dal campo 'carrier_frequency_hz'. Indicazioni di possibili slittamenti di ciclo e reset nell'accumulo di questo valore possono essere dedotte dai flag accumulated_delta_range_state.
Se i dati sono disponibili, i "flags" devono contenere GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
doppia fase_portante |
La fase RF rilevata dal ricevitore, nell'intervallo [0,0, 1,0]. Questa è solitamente la parte frazionaria della misurazione completa della fase portante.
La frequenza di riferimento è data dal campo 'carrier_frequency_hz'. Il valore contiene "l'incertezza della fase portante".
Se i dati sono disponibili, i "flags" devono contenere GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
doppia portante_fase_incertezza |
GnssConstellationType costellazione |
GnssMultipathIndicator multipath_indicatore |
Un'enumerazione che indica lo stato 'multipath' dell'evento.
L'indicatore multipath ha lo scopo di segnalare la presenza di segnali sovrapposti che si manifestano come picchi di correlazione distorti.
- se è presente una forma del picco di correlazione distorta, segnalare che il multipath è GNSS_MULTIPATH_INDICATOR_PRESENT.
- se non è presente una forma del picco di correlazione distorta, riportare GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- se i segnali sono troppo deboli per discernere queste informazioni, riportare GNSS_MULTIPATH_INDICATOR_UNKNOWN
Esempio: quando si esegue il test delle prestazioni multipath sovrapposte standardizzato (3GPP TS 34.171) l'indicatore Multipath deve riportare GNSS_MULTIPATH_INDICATOR_PRESENT per quei segnali che sono tracciati e contengono multipath e GNSS_MULTIPATH_INDICATOR_NOT_PRESENT per quei segnali che sono tracciati e non contengono multipath.
doppio pseudorange_rate_mps |
Pseudorange rate al timestamp in m/s. La correzione di un dato valore di Pseudorange Rate include correzioni per gli errori di frequenza di clock del ricevitore e del satellite. Assicurati che questo campo sia indipendente (vedi commento nella parte superiore della struttura GnssMeasurement .)
È obbligatorio fornire lo "pseudorange rate" "non corretto" e fornire anche il campo "drift" di GpsClock (quando si fornisce lo pseudorange rate non corretto, non applicare le correzioni sopra descritte).
Il valore include "l'incertezza del tasso di pseudorange". Un valore positivo "non corretto" indica che l'SV si sta allontanando dal ricevitore.
Il segno dello 'pseudorange rate' non corretto e la sua relazione con il segno dello 'spostamento doppler' è dato dall'equazione: pseudorange rate = -k * spostamento doppler (dove k è una costante)
Questo dovrebbe essere il tasso di pseudorange più accurato disponibile, basato su nuove misurazioni del segnale da questo canale.
È obbligatorio che questo valore sia fornito con la qualità PRR tipica della fase portante (pochi cm/sec per secondo di incertezza, o migliore) - quando i segnali sono sufficientemente forti e stabili, ad esempio segnali da un simulatore GPS a >= 35 dB-Hz.
doppio pseudorange_rate_uncertainty_mps |
int64_t ha ricevuto_sv_time_in_ns |
L'ora della settimana GNSS ricevuta al momento della misurazione, in nanosecondi. Assicurati che questo campo sia indipendente (vedi commento nella parte superiore della struttura GnssMeasurement .)
Per GPS e QZSS, questo è: Ricevuto l'ora della settimana GPS al momento della misurazione, in nanosecondi. Il valore è relativo all'inizio della settimana GPS corrente.
Dato lo stato di sincronizzazione più alto che può essere raggiunto, per ciascun satellite, l'intervallo valido per questo campo può essere: Ricerca : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blocco codice C/A : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK è impostato Sincronizzazione bit : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC è impostato Sincronizzazione sottoframe: [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC è impostato TOW decodificato : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED è impostato
Nota bene: se c'è qualche ambiguità nel millisecondo intero, GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS dovrebbe essere impostato di conseguenza, nel campo 'state'.
Questo valore deve essere compilato se 'state' != GNSS_MEASUREMENT_STATE_UNKNOWN.
Per Glonass, questo è: ricevuto Glonass ora del giorno, al momento della misurazione in nanosecondi.
Dato lo stato di sincronizzazione più alto che può essere raggiunto, per ciascun satellite, l'intervallo valido per questo campo può essere: Ricerca : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blocco codice C/A : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK è impostato Sincronizzazione simboli : [ 0 10 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC è impostato Sincronizzazione bit: [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC è impostato Sincronizzazione stringhe : [ 0 2 s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC è impostato Ora del giorno: [ 0 1 giorno ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED è impostato
Per Beidou, questo è: Ricevuto l'ora della settimana di Beidou, al momento della misurazione in nanosecondi.
Dato lo stato di sincronizzazione più alto che può essere raggiunto, per ciascun satellite, l'intervallo valido per questo campo può essere: Ricerca : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blocco codice C/A: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK è impostato Sincronizzazione bit (D2): [ 0 2MS]: GNSS_MEASUREMENT_STATE_BDS_D2_bit_sync è set bit sync (d1): [0 20ms]: gnss_measurement_state_bit_bit_sync è set di sottoframe (d2) settimana : [ 0 1 settimana ] : GNSS_MEASUREMENT_STATE_TOW_DECODED è impostato
Per Galileo, questo è: Ricevuto l'ora della settimana Galileo, al momento della misurazione in nanosecondi.
E1BC blocco codice : [ 0 4 ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK è impostato E1C 2° blocco codice: [ 0 100 ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK è impostato
Pagina E1B : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC è impostato Ora della settimana: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED è impostato
Per SBAS, questo è: Tempo SBAS ricevuto, al momento della misurazione in nanosecondi.
Dato lo stato di sincronizzazione più alto che può essere raggiunto, per ciascun satellite, l'intervallo valido per questo campo può essere: Ricerca : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blocco codice C/A: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK è impostato Sincronizzazione simboli : [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC è impostato Messaggio : [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC è impostato
int64_t ha ricevuto_sv_time_uncertainty_in_ns |
doppio snr_db |
Rapporto segnale/rumore all'uscita del correlatore in dB. Se i dati sono disponibili, i 'flags' devono contenere GNSS_MEASUREMENT_HAS_SNR. Questo è il rapporto di potenza tra "l'altezza del picco di correlazione sopra il rumore di fondo osservato" e "il rumore RMS".
Stato GnssMeasurementState |
Per stato di sincronizzazione del satellite. Rappresenta lo stato di sincronizzazione corrente per il satellite associato. In base allo stato di sincronizzazione, il campo "Rimorchio GPS ricevuto" deve essere interpretato di conseguenza.
Questo è un valore obbligatorio.
int16_t svid |
Numero ID veicolo satellitare, come definito in GnssSvInfo::svid Questo è un valore obbligatorio.
doppio time_offset_ns |
Offset di tempo in cui è stata eseguita la misurazione in nanosecondi. L'ora del ricevitore di riferimento è specificata da GpsData::clock::time_ns e deve essere interpretata nello stesso modo indicato da GpsClock::type .
Il segno di time_offset_ns è dato dalla seguente equazione: misura tempo = GpsClock::time_ns + time_offset_ns
Fornisce un timestamp individuale per la misurazione e consente una precisione inferiore al nanosecondo. Questo è un valore obbligatorio.
La documentazione per questa struttura è stata generata dal seguente file:
- hardware/libhardware/include/hardware/ gps.h