Documentation de référence sur la struct GnssMeasurement
#include <
gps.h
>
Champs de données |
|
size_t | size |
GnssMeasurementFlags | indicateurs |
int16_t | svid |
GnssConstellationType | constellation |
double | time_offset_ns |
GnssMeasurementState | état |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
double | c_n0_dbhz |
double | pseudorange_rate_mps |
double | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
double | accumulated_delta_range_m |
double | accumulated_delta_range_uncertainty_m |
float | carrier_frequency_hz |
int64_t | carrier_cycles |
double | carrier_phase |
double | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
double | snr_db |
Description détaillée
Représente une mesure GNSS. Il contient des informations brutes et calculées.
Indépendance : toutes les informations de mesure du signal (par exemple, sv_time, pseudorange_rate et multipath_indicator) indiquées dans cette struct doivent être basées uniquement sur les mesures du signal GNSS. Vous ne pouvez pas synthétiser des mesures en calculant ou en signalant des mesures attendues en fonction d'une position, d'une vitesse ou d'un temps connus ou estimés.
Documentation des champs
double accumulated_delta_range_m |
Plage delta cumulée depuis la dernière réinitialisation de la chaîne, en mètres. Une valeur positive indique que le SV s'éloigne du récepteur.
Le signe de la "plage delta cumulée" et sa relation avec le signe de la "phase porteuse" sont donnés par l'équation suivante: plage delta cumulée = -k * phase porteuse (où k est une constante)
Cette valeur doit être renseignée si "état de la plage delta cumulée" != GPS_ADR_STATE_UNKNOWN. Toutefois, les données ne sont précises que lorsque "état de la plage delta cumulée" == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t carrier_cycles |
Nombre de cycles de porteuse complets entre le satellite et le récepteur. La fréquence de référence est indiquée par le champ "carrier_frequency_hz". Les indicateurs de glissements et de réinitialisations de cycle possibles dans l'accumulation de cette valeur peuvent être déduits des indicateurs accumulated_delta_range_state.
Si les données sont disponibles, "flags" doit contenir GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
Fréquence porteuse à laquelle les codes et les messages sont modulés. Elle peut être L1 ou L2. Si ce champ n'est pas défini, la fréquence porteuse est supposée être L1.
Si les données sont disponibles, "flags" doit contenir GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY.
double carrier_phase |
Phase RF détectée par le récepteur, dans la plage [0,0, 1,0]. Il s'agit généralement de la partie fractionnaire de la mesure complète de la phase porteuse.
La fréquence de référence est indiquée par le champ "carrier_frequency_hz". La valeur contient l'incertitude de phase porteuse.
Si les données sont disponibles, "flags" doit contenir GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
double carrier_phase_uncertainty |
GnssConstellationType constellation |
GnssMultipathIndicator multipath_indicator |
Énumération indiquant l'état "multipath" de l'événement.
L'indicateur multichemin est destiné à signaler la présence de signaux qui se chevauchent et se manifestent sous la forme de pics de corrélation déformés.
- Si la forme du pic de corrélation est déformée, indiquez que le multipath est GNSS_MULTIPATH_INDICATOR_PRESENT.
- Si la forme du pic de corrélation n'est pas déformée, signalez GNSS_MULTIPATH_INDICATOR_NOT_PRESENT.
- Si les signaux sont trop faibles pour discerner ces informations, signalez GNSS_MULTIPATH_INDICATOR_UNKNOWN.
Exemple: lors du test standardisé des performances multichemins superposées (3GPP TS 34.171), l'indicateur multichemin doit indiquer GNSS_MULTIPATH_INDICATOR_PRESENT pour les signaux suivis et contenant un multichemin, et GNSS_MULTIPATH_INDICATOR_NOT_PRESENT pour les signaux suivis et ne contenant pas de multichemin.
double pseudorange_rate_mps |
Taux de pseudo-distance au code temporel, en m/s. La correction d'une valeur de taux de pseudo-distance donnée inclut des corrections pour les erreurs de fréquence de l'horloge du récepteur et du satellite. Assurez-vous que ce champ est indépendant (voir le commentaire en haut de la struct GnssMeasurement ).
Vous devez fournir la "vitesse de pseudo-distance" non corrigée, ainsi que le champ "déviation" de GpsClock . (Lorsque vous fournissez la vitesse de pseudo-distance non corrigée, n'appliquez pas les corrections décrites ci-dessus.)
La valeur inclut l'incertitude de la vitesse de pseudo-distance. Une valeur "non corrigée" positive indique que le SV s'éloigne du récepteur.
Le signe de la "vitesse de pseudo-distance" non corrigée et sa relation avec le signe de la "décalage Doppler" sont donnés par l'équation suivante: vitesse de pseudo-distance = -k * décalage Doppler (où k est une constante)
Il s'agit du taux de pseudo-distance le plus précis disponible, basé sur les mesures de signal récentes de ce canal.
Cette valeur doit être fournie avec une qualité PRR de phase porteuse typique (quelques cm/s par seconde d'incertitude, ou mieux) lorsque les signaux sont suffisamment forts et stables, par exemple les signaux d'un simulateur GPS à >= 35 dB-Hz.
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
Heure de la semaine GNSS reçue au moment de la mesure, en nanosecondes. Assurez-vous que ce champ est indépendant (voir le commentaire en haut de la struct GnssMeasurement ).
Pour le GPS et le QZSS, il s'agit de l'heure de la semaine GPS reçue au moment de la mesure, en nanosecondes. La valeur est relative au début de la semaine GPS en cours.
Étant donné l'état de synchronisation le plus élevé pouvant être atteint pour chaque satellite, la plage valide pour ce champ peut être la suivante: Recherche : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Verrouillage du code C/A : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK est défini Synchronisation des bits : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC est défini Synchronisation des sous-cadres : [ 0 6 s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC est défini Décodage de l'heure de référence : [ 0 1 semaine ] : GNSS_MEASUREMENT_STATE_TOW_DECODED est défini
Remarque: En cas d'ambiguïté dans les millisecondes entières, GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS doit être défini en conséquence dans le champ "state".
Cette valeur doit être renseignée si "state" != GNSS_MEASUREMENT_STATE_UNKNOWN.
Pour Glonass, il s'agit de l'heure de Glonass reçue au moment de la mesure, en nanosecondes.
Étant donné l'état de synchronisation le plus élevé pouvant être atteint pour chaque satellite, la plage valide pour ce champ peut être la suivante: Recherche : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Verrouillage du code C/A : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK est défini Synchronisation des symboles : [ 0 10 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC est défini Synchronisation des bits : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC est défini Synchronisation des chaînes : [ 0 2 s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC est défini Heure de la journée : [ 0 1 jour ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED est défini
Pour Beidou, il s'agit de l'heure de la semaine Beidou reçue au moment de la mesure, en nanosecondes.
Étant donné l'état de synchronisation le plus élevé pouvant être atteint pour chaque satellite, la plage valide pour ce champ peut être la suivante: Recherche : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Verrouillage du code C/A: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK est défini Synchronisation des bits (D2): [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC est défini Synchronisation des bits (D1): [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC est défini Sous-cadres (D2): [ 0 0, 6 s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC est défini Sous-cadres (D1): [ 0 6 s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC est défini Heure de la semaine : [ 0 1 semaine ] : GNSS_MEASUREMENT_STATE_TOW_DECODED est défini
Pour Galileo, il s'agit de l'heure de la semaine reçue par Galileo au moment de la mesure, en nanosecondes.
Verrouillage du code E1BC : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK est défini Verrouillage du 2e code E1C: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK est défini
Page E1B : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC est défini Heure de la semaine: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED est défini
Pour SBAS, il s'agit de l'heure SBAS reçue au moment de la mesure, en nanosecondes.
Étant donné l'état de synchronisation le plus élevé pouvant être atteint pour chaque satellite, la plage valide pour ce champ peut être la suivante: Recherche : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Verrouillage du code C/A: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK est défini Synchronisation des symboles : [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC est défini Message : [ 0 1 s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC est défini
int64_t received_sv_time_uncertainty_in_ns |
double snr_db |
Rapport signal sur bruit à la sortie du corrélateur en dB. Si les données sont disponibles, "flags" doit contenir GNSS_MEASUREMENT_HAS_SNR. Il s'agit du rapport de puissance de la "hauteur du pic de corrélation au-dessus du plancher de bruit observé" au "bruit RMS".
GnssMeasurementState état |
int16_t svid |
Numéro d'identification du véhicule satellite, comme défini dans GnssSvInfo::svid Il s'agit d'une valeur obligatoire.
double time_offset_ns |
Décalage temporel à l'heure de la mesure, en nanosecondes. L'heure du récepteur de référence est spécifiée par GpsData::clock::time_ns et doit être interprétée de la même manière que celle indiquée par GpsClock::type .
Le signe de time_offset_ns est donné par l'équation suivante: temps de mesure = GpsClock::time_ns + time_offset_ns
Il fournit un code temporel individuel pour la mesure et permet une précision inférieure à la nanoseconde. Il s'agit d'une valeur obligatoire.
La documentation de ce struct a été générée à partir du fichier suivant :
- hardware/libhardware/include/hardware/ gps.h