Riferimento alla struttura GnssNavigationMessage
#include <
gps.h
>
Campi dati |
|
size_t | size |
int16_t | svid |
GnssNavigationMessageType | type |
NavigationMessageStatus | status |
int16_t | message_id |
int16_t | submessage_id |
size_t | data_length |
uint8_t * | data |
Descrizione dettagliata
Rappresenta un messaggio di navigazione GPS (o un frammento).
Documentazione dei campi
uint8_t* data |
I dati del messaggio GPS segnalato. I byte (o le parole) specificati utilizzando il formato big endian (MSB first).
- Per GPS L1 C/A, Beidou D1 e Beidou D2, ogni sottoframe contiene 10 parole di 30 bit. Ogni parola (30 bit) deve essere inserita negli ultimi 30 bit di una parola di 4 byte (salta B31 e B32), con il bit più significativo per primo, per un totale di 40 byte, che coprono un periodo di tempo rispettivamente di 6, 6 e 0,6 secondi.
- Per Glonass L1 C/A, ogni stringa contiene 85 bit di dati, incluso il checksum. Questi bit devono essere inseriti in 11 byte, con il bit più significativo per primo (salta B86-B88), coprendo un periodo di tempo di 2 secondi.
- Per Galileo F/NAV, ogni parola è composta da 238 bit (esclusi i simboli di sincronizzazione e di coda). Ogni parola deve essere contenuta in 30 byte, con il primo bit più significativo per primo (salta B239, B240), che copra un periodo di tempo di 10 secondi.
- Per Galileo I/NAV, ogni pagina contiene 2 parti, pari e dispari, con un totale di 2 x 114 = 228 bit (escluse sincronizzazione e coda) che devono essere inseriti in 29 byte, con il bit più significativo per primo (salta B229-B232).
size_t data_length |
La lunghezza dei dati (in byte) contenuti nel messaggio corrente. Se questo valore è diverso da zero, "data" deve puntare a un array delle stesse dimensioni. Ad esempio, per L1 C/A le dimensioni del sottoframe saranno 40 byte (10 parole, 30 bit/parola).
Questo è un valore obbligatorio.
int16_t message_id |
Identificatore del messaggio. Fornisce un indice in modo che il messaggio di navigazione completo possa essere assemblato.
- Per i sottoframe 4 e 5 del GPS L1 C/A, questo valore corrisponde all''ID frame' del messaggio di navigazione, nell'intervallo 1-25 (i sottoframe 1, 2 e 3 non contengono un "ID frame" e questo valore può essere impostato su -1).
- Per Glonass L1 C/A, si riferisce all'ID frame, nell'intervallo 1-5.
- Per BeiDou D1, si riferisce al numero di frame nell'intervallo 1-24
- Per Beidou D2, si riferisce al numero di frame, nell'intervallo 1-120
- Per la struttura del frame nominale Galileo F/NAV, si riferisce al numero del frame secondario, compreso nell'intervallo 1-12
- Per la struttura del frame nominale di Galileo I/NAV, si riferisce al numero del frame intermedio nell'intervallo 1-24
Dimensione size_t |
NavigationMessageStatus stato |
int16_t submessage_id |
Identificatore del messaggio secondario. Se richiesto dal "tipo" del messaggio, questo valore contiene un sottoindice all'interno del messaggio (o frame) corrente in fase di trasmissione.
- Per GPS L1 C/A, BeiDou D1 e BeiDou D2, l'ID messaggio secondario corrisponde al numero del sottoframe del messaggio di navigazione, nell'intervallo 1-5.
- Per Glonass L1 C/A, si riferisce al numero di stringhe, nell'intervallo da 1 a 15
- Per Galileo F/NAV, si riferisce al tipo di pagina nell'intervallo 1-6
- Per Galileo I/NAV, si riferisce al tipo di parola nell'intervallo 1-10+
int16_t svid |
Numero ID veicolo satellitare, come definito in GnssSvInfo::svid Si tratta di un valore obbligatorio.
La documentazione di questa struttura è stata generata dal seguente file:
- hardware/libhardware/include/hardware/ gps.h