Riferimento alla struttura GnssMeasurement
#include <
gps.h
>
Campi dati |
|
size_t | size |
GnssMeasurementFlags | flags |
int16_t | svid |
GnssConstellationType | costellazione |
doppio | time_offset_ns |
GnssMeasurementState | state |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
doppio | c_n0_dbhz |
doppio | pseudorange_rate_mps |
doppio | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
doppio | accumulated_delta_range_m |
doppio | accumulated_delta_range_uncertainty_m |
float | carrier_frequency_hz |
int64_t | carrier_cycles |
doppio | carrier_phase |
doppio | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
doppio | snr_db |
Descrizione dettagliata
Rappresenta una misurazione GNSS e contiene informazioni non elaborate 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 puoi sintetizzare le misurazioni calcolando o registrando le misurazioni previste in base a posizione, velocità o tempo noti o stimati.
Documentazione dei campi
double accumulated_delta_range_m |
Intervallo delta accumulato dall'ultimo ripristino del canale in metri. Un valore positivo indica che il segnale video 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 inserito se "accumulated delta range state" != 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 |
double accumulated_delta_range_uncertainty_m |
doppio c_n0_dbhz |
int64_t carrier_cycles |
Il numero di cicli completi del vettore tra il satellite e il ricevitore. La frequenza di riferimento è indicata dal campo "carrier_frequency_hz". Indicazioni di possibili slittamenti e reimpostazioni del ciclo nell'accumulo di questo valore possono essere dedotte dagli indicatori accumulated_delta_range_state.
Se i dati sono disponibili, "flags" deve contenere GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
Frequenza del vettore a cui vengono modulati i codici e i messaggi, può essere L1 o L2. Se il campo non è impostato, si presume che la frequenza del vettore sia L1.
Se i dati sono disponibili, "flags" deve contenere GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY.
doppio carrier_phase |
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 è indicata dal campo "carrier_frequency_hz". Il valore contiene l''incertezza della fase portante'.
Se i dati sono disponibili, "flags" deve contenere GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
raddoppiare l'incertezza_fase_operatore |
GnssConstellationType constellation |
GnssMeasurementFlags flag |
GnssMultipathIndicator multipath_indicator |
Un'enumerazione che indica lo stato "multipath" dell'evento.
L'indicatore di multipath è progettato per segnalare la presenza di segnali sovrapposti che si manifestano come picchi di correlazione distorti.
- Se la forma del picco di correlazione è distorta, indica che il multipath è GNSS_MULTIPATH_INDICATOR_PRESENT.
- Se non è presente una forma del picco di correlazione distorta, segnala GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- Se i segnali sono troppo deboli per distinguere queste informazioni, segnala GNSS_MULTIPATH_INDICATOR_UNKNOWN
Esempio: quando esegui il test di prestazione del multipath sovrapposto standardizzato (3GPP TS 34.171), l'indicatore di multipath deve segnalare GNSS_MULTIPATH_INDICATOR_PRESENT per gli indicatori monitorati e contenenti multipath e GNSS_MULTIPATH_INDICATOR_NOT_PRESENT per gli indicatori monitorati e non contenenti multipath.
doppio pseudorange_rate_mps |
Velocità pseudo-intervallo al timestamp in m/s. La correzione di un determinato valore di frequenza pseudorange include le correzioni per gli errori di frequenza dell'orologio del ricevitore e del satellite. Assicurati che questo campo sia indipendente (vedi il commento nella parte superiore della struttura GnssMeasurement .)
È obbligatorio fornire il valore "velocità pseudorange" "non corretta" e anche il campo "deviazione" di GpsClock (quando fornisci la velocità pseudorange non corretta, non applicare le correzioni descritte sopra).
Il valore include l'"incertezza della frequenza della pseudodistanza". Un valore "non corretto" positivo indica che il SV si sta allontanando dal ricevitore.
Il segno della "velocità di pseudoraggiungere" "non corretta" e la sua relazione con il segno dello "spostamento Doppler" è data dall'equazione: velocità di pseudoraggiungere = -k * spostamento Doppler (dove k è una costante)
Dovrebbe essere la frequenza pseudo-intervallo più precisa disponibile, in base alle misurazioni dei segnali aggiornate di questo canale.
È obbligatorio che questo valore venga fornito con la qualità PRR tipica della fase dell'operatore (pochi cm/sec di incertezza al secondo o meglio) quando i segnali sono sufficientemente forti e stabili, ad esempio i segnali di un simulatore GPS a >= 35 dB-Hz.
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
L'ora della settimana GNSS ricevuta al momento della misurazione, in nanosecondi. Assicurati che questo campo sia indipendente (vedi il commento nella parte superiore della struttura GnssMeasurement .)
Per GPS e QZSS, si tratta di: Ora della settimana del segnale GPS ricevuta al momento della misurazione, in nanosecondi. Il valore è relativo all'inizio della settimana GPS corrente.
Dato lo stato di sincronizzazione più elevato che può essere raggiunto, per ogni satellite, l'intervallo valido per questo campo può essere: Ricerca : [0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blocco codice C/A : [0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK è impostato Sincronizzazione bit : [0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC è impostato Sincronizzazione del sottoframe : [0 6 s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC è impostato TOW decodificato : [0 1 settimana ] : GNSS_MEASUREMENT_STATE_TOW_DECODED è impostato
Nota bene: se esiste un'ambiguità nel millisecondo intero, GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS deve essere impostato di conseguenza nel campo "state".
Questo valore deve essere inserito se "state" != GNSS_MEASUREMENT_STATE_UNKNOWN.
Per Glonass, si tratta di: Ora del giorno Glonass ricevuta, al momento della misurazione in nanosecondi.
Dato lo stato di sincronizzazione più elevato che può essere raggiunto, per ogni satellite, l'intervallo valido per questo campo può essere: Ricerca : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blocco codice C/A : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK è impostato Sincronizzazione dei simboli : [ 0 10 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC è impostato Sincronizzazione dei bit : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC è impostato Sincronizzazione delle 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, si tratta di: ora della settimana di Beidou ricevuta al momento della misurazione in nanosecondi.
Dato lo stato di sincronizzazione più elevato che può essere raggiunto, per ogni satellite l'intervallo valido per questo campo può essere: Ricerca : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blocco codice C/A: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK è impostato Sincronizzazione bit (D2): [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC è impostato Sincronizzazione bit (D1): [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC è impostato Sottoframe (D2): [ 0 0, 6 s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC è impostato Sottoframe (D1): [ 0 6 s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC è impostato Giorno della settimana : [ 0 1 settimana ] : GNSS_MEASUREMENT_STATE_TOW_DECODED è impostato
Per Galileo, si tratta di: ora della settimana di Galileo ricevuta al momento della misurazione in nanosecondi.
Blocco codice E1BC : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK è impostato Blocco codice 2 E1C: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK è impostato
Pagina E1B : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC è impostato Tempo della settimana: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED è impostato
Per SBAS, si tratta di: Ora SBAS ricevuta, al momento della misurazione in nanosecondi.
Dato lo stato di sincronizzazione più elevato che può essere raggiunto, per ogni satellite, l'intervallo valido per questo campo può essere: Ricerca : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Blocco codice C/A: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK è impostato Sincronizzazione dei simboli : [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC è impostato Messaggio : [ 0 1 s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC è impostato
int64_t received_sv_time_uncertainty_in_ns |
doppio snr_db |
Rapporto segnale/rumore all'uscita del correlatore in dB. Se i dati sono disponibili, "flags" deve contenere GNSS_MEASUREMENT_HAS_SNR. Si tratta del rapporto di potenza tra l'"altezza del picco di correlazione sopra il livello di rumore osservato" e l'"RMS del rumore".
GnssMeasurementState stato |
Per stato di sincronizzazione del satellite. Rappresenta lo stato di sincronizzazione corrente del 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 Si tratta di un valore obbligatorio.
double 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: tempo_misurazione = GpsClock::time_ns + time_offset_ns
Fornisce un timestamp individuale per la misurazione e consente un'accuratezza inferiore al nanosecondo. Questo è un valore obbligatorio.
La documentazione di questa struttura è stata generata dal seguente file:
- hardware/libhardware/include/hardware/ gps.h