Riferimento alla struttura GnssMeasurement
#include < gps.h >
Campi dati | |
taglia_t | misurare |
Flag di misurazione Gnss | bandiere |
int16_t | svid |
GnssConstellationType | costellazione |
Doppio | time_offset_ns |
GnssMeasurementState | stato |
int64_t | ricevuto_sv_time_in_ns |
int64_t | ricevuto_sv_time_uncertainty_in_ns |
Doppio | c_n0_dbhz |
Doppio | pseudorange_rate_mps |
Doppio | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | stato_intervallo_delta_accumulato |
Doppio | intervallo_delta_accumulato_m |
Doppio | intervallo_delta_accumulato_incertezza_m |
galleggiante | portante_frequenza_hz |
int64_t | carrier_cycles |
Doppio | portante_fase |
Doppio | incertezza_fase_portante |
GnssMultipathIndicator | multipath_indicator |
Doppio | snr_db |
Descrizione dettagliata
Rappresenta una misurazione GNSS, contiene informazioni grezze e calcolate.
Indipendenza: tutte le informazioni sulla misurazione del segnale (ad esempio sv_time, pseudorange_rate, multipath_indicator) riportate in questa struttura dovrebbero essere basate solo sulle misurazioni del segnale GNSS. Non è possibile sintetizzare le misurazioni calcolando o riportando le misurazioni previste in base alla posizione, alla velocità o al tempo noti o stimati.
Documentazione sul campo
doppio intervallo_delta_accumulato_m |
Intervallo delta accumulato dall'ultimo ripristino del canale in metri. Un valore positivo indica che la SV si sta allontanando dal ricevitore.
Il segno dell'"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: 'stato dell'intervallo delta accumulato' == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
doppio_delta_intervallo_incertezza_accumulato_m |
doppio c_n0_dbhz |
int64_t carrier_cycles |
Il numero di cicli portanti completi tra il satellite e il ricevitore. La frequenza di riferimento è data dal campo 'carrier_frequency_hz'. Indicazioni di possibili slittamenti e reimpostazioni del ciclo nell'accumulo di questo valore possono essere dedotte dai flag accumulated_delta_range_state.
Se i dati sono disponibili, i "flag" devono contenere GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float portante_frequenza_hz |
La frequenza portante alla quale vengono modulati codici e messaggi, può essere L1 o L2. Se il campo non è impostato, si presuppone che la frequenza portante sia L1.
Se i dati sono disponibili, i 'flag' devono contenere GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY.
doppia portante_fase |
La fase RF rilevata dal ricevitore, nell'intervallo [0.0, 1.0]. Di solito si tratta della 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 "flag" devono contenere GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
doppia incertezza_fase_portante |
Costellazione GnssConstellationType |
Flag GnssMeasurementFlags |
GnssMultipathIndicator multipath_indicator |
Un'enumerazione che indica lo stato "multipath" dell'evento.
L'indicatore multipercorso ha lo scopo di segnalare la presenza di segnali sovrapposti che si manifestano come picchi di correlazione distorti.
- se è presente una forma distorta del picco di correlazione, segnala che multipath è GNSS_MULTIPATH_INDICATOR_PRESENT.
- se non è presente una forma distorta del picco di correlazione, segnalare GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- se i segnali sono troppo deboli per discernere queste informazioni, segnala GNSS_MULTIPATH_INDICATOR_UNKNOWN
Esempio: quando si esegue il test standardizzato delle prestazioni multipercorso sovrapposto (3GPP TS 34.171), l'indicatore Multipath deve riportare GNSS_MULTIPATH_INDICATOR_PRESENT per i segnali che vengono tracciati e contengono multipath e GNSS_MULTIPATH_INDICATOR_NOT_PRESENT per i segnali che vengono tracciati e non contengono multipath.
doppio pseudorange_rate_mps |
Tasso di pseudorange al timestamp in m/s. La correzione di un dato valore di Pseudorange Rate include correzioni per gli errori di frequenza dell'orologio del ricevitore e del satellite. Assicurati che questo campo sia indipendente (vedi commento all'inizio della struttura GnssMeasurement .)
È obbligatorio fornire il "tasso di pseudorange" "non corretto" e fornire anche il campo "deriva" di GpsClock (quando si fornisce il tasso di pseudorange non corretto, non applicare le correzioni descritte sopra).
Il valore include la "incertezza del tasso di pseudorange". Un valore positivo "non corretto" indica che la SV si sta allontanando dal ricevitore.
Il segno della "frequenza di pseudorange" "non corretta" e la sua relazione con il segno dello "spostamento doppler" è dato dall'equazione: frequenza di pseudorange = -k * spostamento doppler (dove k è una costante)
Questo dovrebbe essere il tasso di pseudorange più accurato disponibile, basato sulle nuove misurazioni del segnale da questo canale.
È obbligatorio che questo valore sia fornito con la tipica qualità PRR della fase portante (pochi cm/sec al secondo di incertezza o migliore) - quando i segnali sono sufficientemente forti e stabili, ad esempio segnali da un simulatore GPS a >= 35 dB-Hz.
double pseudorange_rate_uncertainty_mps |
int64_t 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 all'inizio della struttura GnssMeasurement .)
Per GPS e QZSS, questo è: Ora della settimana GPS ricevuta 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 20ms ] : 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à nell'intero millisecondo, 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 è: Ora del giorno Glonass ricevuta, 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 simbolo: [ 0 10ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC è impostato Sincronizzazione bit: [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC è impostato Sincronizzazione stringa : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC è impostato Ora del giorno : [ 0 1giorno ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED è impostato
Per Beidou, questo è: Orario della settimana ricevuto da 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 è impostato Bit sync (D1): [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC è impostato Sottoframe (D2): [ 0 0.6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC è impostato Sottoframe (D1): [ 0 6s ] : GNSS_ MEASUREMENT_STATE_SUBFRAME_SYNC è l'ora impostata di settimana: [ 0 1 settimana ]: GNSS_MEASUREMENT_STATE_TOW_DECODED è impostato
Per Galileo, questo è: Orario della settimana ricevuto da Galileo, al momento della misurazione in nanosecondi.
Blocco codice E1BC: [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK è impostato Blocco codice E1C 2°: [ 0 100ms ] : 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 simbolo : [ 0 2ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC è impostato Messaggio: [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC è impostato
int64_t ricevuto_sv_time_uncertainty_in_ns |
dimensione_t dimensione |
doppio snr_db |
Rapporto segnale-rumore all'uscita del correlatore in dB. Se i dati sono disponibili, i 'flag' 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 "l'RMS del rumore".
Stato GnssMeasurementState |
Per stato di sincronizzazione satellitare. Rappresenta lo stato di sincronizzazione corrente per il satellite associato. In base allo stato di sincronizzazione, il campo "Traw GPS ricevuto" deve essere interpretato di conseguenza.
Questo è un valore obbligatorio.
int16_tsvid |
Numero ID del veicolo satellitare, come definito in GnssSvInfo::svid Questo è un valore obbligatorio.
doppio time_offset_ns |
Differenza temporale in cui è stata effettuata 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: tempo di misurazione = 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