Référence de structure de mesure Gnss
#include < gps.h >
Champs de données | |
taille_t | taille |
GnssMesureDrapeaux | drapeaux |
int16_t | svid |
GnssConstellationType | constellation |
double | time_offset_ns |
État de mesure Gnss | État |
int64_t | reçu_sv_time_in_ns |
int64_t | reçu_sv_time_uncertainty_in_ns |
double | c_n0_dbhz |
double | pseudorange_rate_mps |
double | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulé_delta_range_state |
double | accumulé_delta_range_m |
double | accumulé_delta_range_uncertainty_m |
flotter | transporteur_fréquence_hz |
int64_t | transporteur_cycles |
double | phase_porteuse |
double | carrier_phase_uncertainty |
GnssMultipathIndicator | indicateur_multipath |
double | snr_db |
Description détaillée
Représente une mesure GNSS, elle contient des informations brutes et calculées.
Indépendance – Toutes les informations de mesure du signal (par exemple, sv_time, pseudorange_rate, multipath_indicator) rapportées dans cette structure doivent être basées uniquement sur les mesures du signal GNSS. Vous ne pouvez pas synthétiser les mesures en calculant ou en rapportant les mesures attendues en fonction de la position, de la vitesse ou du temps connu ou estimé.
Documentation de terrain
double accumulé_delta_range_m |
Plage delta accumulée depuis la dernière réinitialisation du canal en mètres. Une valeur positive indique que le SV s'éloigne du récepteur.
Le signe de la « plage delta accumulée » et sa relation avec le signe de la « phase porteuse » est donné par l'équation : plage delta accumulée = -k * phase porteuse (où k est une constante)
Cette valeur doit être renseignée si « état de plage delta accumulé » != GPS_ADR_STATE_UNKNOWN. Cependant, on s'attend à ce que les données ne soient exactes que lorsque : « état de plage delta accumulé » == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulé_delta_range_state |
double accumulé_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t transporteur_cycles |
Le nombre de cycles de porteuse complets entre le satellite et le récepteur. La fréquence de référence est donnée par le champ 'carrier_ Frequency_hz'. Des indications d'éventuels sauts de cycle et réinitialisations dans l'accumulation de cette valeur peuvent être déduites des indicateurs cumulative_delta_range_state.
Si les données sont disponibles, les « drapeaux » doivent contenir GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
flotteur Carrier_Frequence_hz |
Fréquence porteuse à laquelle les codes et les messages sont modulés, elle peut être L1 ou L2. Si le champ n'est pas défini, la fréquence porteuse est supposée être L1.
Si les données sont disponibles, les « drapeaux » doivent contenir GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY.
phase_porteuse double |
La phase RF détectée par le récepteur, dans la plage [0,0, 1,0]. Il s'agit généralement d'une partie fractionnaire de la mesure complète de la phase porteuse.
La fréquence de référence est donnée par le champ 'carrier_ Frequency_hz'. La valeur contient «l'incertitude de la phase porteuse».
Si les données sont disponibles, les « drapeaux » doivent contenir GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
double carrier_phase_uncertainty |
Constellation GnssConstellationType |
GnssMeasurementFlags drapeaux |
GnssMultipathIndicator multipath_indicator |
Une énumération qui indique l'état « multipath » de l'événement.
L'indicateur de trajets multiples est destiné à signaler la présence de signaux superposés qui se manifestent par des pics de corrélation déformés.
- s'il existe une forme de pic de corrélation déformée, signalez que le trajet multiple est GNSS_MULTIPATH_INDICATOR_PRESENT.
- s'il n'y a pas de forme de pic de corrélation déformée, signalez GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- si les signaux sont trop faibles pour discerner cette information, rapportez GNSS_MULTIPATH_INDICATOR_UNKNOWN
Exemple : lors de l'exécution du test standardisé de performances par trajets multiples (3GPP TS 34.171), l'indicateur de trajets multiples doit signaler GNSS_MULTIPATH_INDICATOR_PRESENT pour les signaux suivis et contenant des trajets multiples, et GNSS_MULTIPATH_INDICATOR_NOT_PRESENT pour les signaux suivis et ne contenant pas de trajets multiples.
double pseudorange_rate_mps |
Taux de pseudo-orange à l'horodatage en m/s. La correction d'une valeur de taux pseudo-orange donnée inclut des corrections pour les erreurs de fréquence d'horloge du récepteur et du satellite. Assurez-vous que ce champ est indépendant (voir le commentaire en haut de la structure GnssMeasurement .)
Il est obligatoire de fournir le « taux de pseudo-orange » « non corrigé », ainsi que le champ « dérive » de GpsClock (Lorsque vous fournissez le taux de pseudo-distance non corrigé, n'appliquez pas les corrections décrites ci-dessus.)
La valeur inclut «l'incertitude du taux pseudoorange». Une valeur positive « non corrigée » indique que le SV s'éloigne du récepteur.
Le signe du « taux pseudo-orange » « non corrigé » et sa relation avec le signe du « décalage Doppler » sont donnés par l'équation : taux de pseudo-distance = -k * décalage Doppler (où k est une constante)
Il devrait s'agir du taux de pseudo-distance le plus précis disponible, basé sur de nouvelles mesures de signal provenant de ce canal.
Il est obligatoire que cette valeur soit fournie avec une qualité PRR de phase porteuse typique (quelques cm/sec par seconde d'incertitude, ou mieux) - lorsque les signaux sont suffisamment forts et stables, par exemple les signaux provenant d'un simulateur GPS à >= 35 dB-Hz.
double pseudorange_rate_uncertainty_mps |
int64_t reçu_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 structure GnssMeasurement .)
Pour GPS et QZSS, il s'agit de : 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 : Recherche : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Verrouillage par 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 de sous-trame : [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC est défini TOW décodé : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED est défini
Notez bien : s'il y a une ambiguïté en milliseconde entière, 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 du jour Glonass reçue, à l'heure de 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 : Recherche : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Verrouillage par 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 Bit sync : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC est défini String sync : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC est défini Heure du jour : [ 0 1day ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECO DED est défini
Pour Beidou, c'est : Heure de la semaine Beidou reçue, à l'heure de 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 : Recherche : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Verrouillage par code C/A : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK est défini Bit sync (D2) : [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC est défini Bit sync (D1) : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC est défini Sous-trame (D2) : [ 0 0.6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC est défini Sous-trame (D1) : [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC est défini. Heure de semaine : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED est défini
Pour Galileo, c'est : Heure de la semaine reçue par Galileo, à l'heure de mesure en nanosecondes.
Verrouillage par code E1BC : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK est défini E1C 2ème verrouillage par code : [ 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 le SBAS, il s'agit de : Temps SBAS reçu, 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 : Recherche : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Verrouillage par 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 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC est défini
int64_t reçu_sv_time_uncertainty_in_ns |
double snr_db |
Rapport signal/bruit à la sortie du corrélateur en dB. Si les données sont disponibles, les « drapeaux » doivent contenir GNSS_MEASUREMENT_HAS_SNR. Il s'agit du rapport de puissance entre la « hauteur du pic de corrélation au-dessus du bruit de fond observé » et « le bruit RMS ».
État GnssMeasurementState |
Par état de synchronisation par satellite. Il représente l'état de synchronisation actuel du satellite associé. En fonction de l'état de synchronisation, le champ « Remorquage GPS reçu » doit être interprété en conséquence.
Il s'agit d'une valeur obligatoire.
int16_t svid |
Numéro d'identification du véhicule satellite, tel que défini dans GnssSvInfo::svid . Il s'agit d'une valeur obligatoire.
double time_offset_ns |
Décalage temporel auquel la mesure a été prise 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 horodatage individuel pour la mesure et permet une précision inférieure à la nanoseconde. Il s'agit d'une valeur obligatoire.
La documentation de cette structure a été générée à partir du fichier suivant :
- matériel/libhardware/include/hardware/ gps.h