Referência da estrutura GnssNavigationMessage
#include <
gps.h
>
Campos de dados |
|
size_t | size |
int16_t | svid |
GnssNavigationMessageType | type |
NavigationMessageStatus | status |
int16_t | message_id |
int16_t | submessage_id |
size_t | data_length |
uint8_t * | dados |
Descrição detalhada
Representa uma mensagem de navegação por GPS (ou um fragmento dela).
Documentação do campo
uint8_t* data |
Os dados da mensagem do GPS denunciada. Os bytes (ou palavras) especificados usando o formato big-endian (MSB primeiro).
- Para GPS L1 C/A, Beidou D1 e Beidou D2, cada subframe contém 10 palavras de 30 bits. Cada palavra (30 bits) precisa caber nos últimos 30 bits de uma palavra de 4 bytes (pule B31 e B32), com MSB primeiro, para um total de 40 bytes, cobrindo um período de 6, 6 e 0, 6 segundos, respectivamente.
- Para Glonass L1 C/A, cada string contém 85 bits de dados, incluindo a soma de verificação. Esses bits precisam caber em 11 bytes, com o MSB primeiro (pule B86-B88), cobrindo um período de 2 segundos.
- Para o Galileo F/NAV, cada palavra consiste em 238 bits (símbolos de sincronização e cauda excluídos). Cada palavra precisa caber em 30 bytes, com o MSB primeiro (pule B239, B240), cobrindo um período de 10 segundos.
- Para o Galileo I/NAV, cada página contém duas partes, par e ímpar, com um total de 2x114 = 228 bits (exceto sincronização e cauda) que precisam caber em 29 bytes, com MSB primeiro (pule B229-B232).
size_t data_length |
O comprimento dos dados (em bytes) contidos na mensagem atual. Se esse valor for diferente de zero, "data" precisará apontar para uma matriz do mesmo tamanho. Por exemplo, para L1 C/A, o tamanho do subframe será de 40 bytes (10 palavras, 30 bits/palavra).
Esse é um valor obrigatório.
int16_t message_id |
Identificador da mensagem. Ele fornece um índice para que a mensagem de navegação completa possa ser montada.
- Para o subframe 4 e 5 do GPS L1 C/A, esse valor corresponde ao "frame id" da mensagem de navegação, no intervalo de 1 a 25. Os subframes 1, 2 e 3 não contêm um "frame id", e esse valor pode ser definido como -1.
- Para Glonass L1 C/A, isso se refere ao ID do frame, no intervalo de 1 a 5.
- Para BeiDou D1, isso se refere ao número do frame no intervalo de 1 a 24.
- Para o Beidou D2, isso se refere ao número do frame, no intervalo de 1 a 120.
- Para a estrutura de frame nominal de Galileo F/NAV, isso se refere ao número do subframe, no intervalo de 1 a 12.
- Para a estrutura de frame nominal de Galileo I/NAV, isso se refere ao número do subframe no intervalo de 1 a 24.
tamanho_t size |
NavigationMessageStatus status |
int16_t submessage_id |
Identificador da submensagem. Se necessário, esse valor contém um subíndice na mensagem (ou frame) atual que está sendo transmitida.
- Para GPS L1 C/A, BeiDou D1 e BeiDou D2, o ID da submensagem corresponde ao número do subframe da mensagem de navegação, no intervalo de 1 a 5.
- Para Glonass L1 C/A, isso se refere ao número da string, no intervalo de 1 a 15.
- Para o Galileo F/NAV, isso se refere ao tipo de página no intervalo de 1 a 6.
- Para o Galileo I/NAV, isso se refere ao tipo de palavra no intervalo de 1 a 10+
int16_t svid |
Número de ID do veículo por satélite, conforme definido em GnssSvInfo::svid Esse é um valor obrigatório.
A documentação desse struct foi gerada com base no seguinte arquivo:
- hardware/libhardware/include/hardware/ gps.h