Referência da estrutura GnssMeasurement
#include <
gps.h
>
Campos de dados |
|
size_t | size |
GnssMeasurementFlags | flags |
int16_t | svid |
GnssConstellationType | constelação |
duplo | time_offset_ns |
GnssMeasurementState | estado |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
duplo | c_n0_dbhz |
duplo | pseudorange_rate_mps |
duplo | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
duplo | accumulated_delta_range_m |
duplo | accumulated_delta_range_uncertainty_m |
flutuar | carrier_frequency_hz |
int64_t | carrier_cycles |
duplo | carrier_phase |
duplo | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
duplo | snr_db |
Descrição detalhada
Representa uma medição GNSS e contém informações brutas e computadas.
Independência: todas as informações de medição de sinal (por exemplo, sv_time, pseudorange_rate, multipath_indicator) informadas nesta estrutura precisam ser baseadas apenas em medições de sinal GNSS. Não é possível sintetizar medições calculando ou informando medições esperadas com base na posição, velocidade ou tempo conhecidos ou estimados.
Documentação do campo
double accumulated_delta_range_m |
Intervalo delta acumulado desde a última redefinição do canal em metros. Um valor positivo indica que o SV está se afastando do receptor.
O sinal do "intervalo delta acumulado" e a relação com o sinal da "fase de portador" é dado pela equação: intervalo delta acumulado = -k * fase de portador (em que k é uma constante)
Esse valor precisa ser preenchido se "estado do intervalo delta acumulado" != GPS_ADR_STATE_UNKNOWN. No entanto, os dados só são precisos quando: "estado de intervalo delta acumulado" == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
duplo c_n0_dbhz |
int64_t carrier_cycles |
O número de ciclos de portador total entre o satélite e o receptor. A frequência de referência é fornecida pelo campo "carrier_frequency_hz". As indicações de possíveis falhas e redefinições de ciclo no acúmulo desse valor podem ser inferidas com base nas flags accumulated_delta_range_state.
Se os dados estiverem disponíveis, "flags" precisa conter GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
Frequência da operadora em que os códigos e as mensagens são modulados, pode ser L1 ou L2. Se o campo não estiver definido, a frequência da operadora será considerada L1.
Se os dados estiverem disponíveis, "flags" precisará conter GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY.
double carrier_phase |
A fase de RF detectada pelo receptor, no intervalo [0,0, 1,0]. Essa é geralmente a parte fracionária da medição completa da fase da operadora.
A frequência de referência é fornecida pelo campo "carrier_frequency_hz". O valor contém a "uncertainty-carrier-phase".
Se os dados estiverem disponíveis, "flags" precisa conter GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
double carrier_phase_uncertainty |
GnssConstellationType constelação |
GnssMultipathIndicator multipath_indicator |
Uma enumeração que indica o estado "multipath" do evento.
O indicador de multicaminho tem como objetivo informar a presença de sinais sobrepostos que aparecem como picos de correlação distorcidos.
- Se houver uma forma de pico de correlação distorcida, informe que o multicaminho é GNSS_MULTIPATH_INDICATOR_PRESENT.
- Se não houver uma forma de pico de correlação distorcida, informe GNSS_MULTIPATH_INDICATOR_NOT_PRESENT.
- Se os sinais forem muito fracos para discernir essas informações, informe GNSS_MULTIPATH_INDICATOR_UNKNOWN.
Exemplo: ao fazer o teste de desempenho de caminho múltiplo sobreposto padronizado (3GPP TS 34.171), o indicador de caminho múltiplo precisa informar GNSS_MULTIPATH_INDICATOR_PRESENT para os sinais rastreados e que contêm caminho múltiplo e GNSS_MULTIPATH_INDICATOR_NOT_PRESENT para os sinais rastreados e que não contêm caminho múltiplo.
pseudorange_rate_mps duplo |
Taxa de pseudodistância no carimbo de data/hora em m/s. A correção de um determinado valor de taxa de pseudodistância inclui correções para erros de frequência do receptor e do relógio do satélite. Verifique se esse campo é independente (confira o comentário na parte de cima da struct GnssMeasurement).
É obrigatório fornecer a 'taxa de pseudoalcance' "não corrigida" e o campo GpsClock "drift" (diferença). Ao fornecer a taxa de pseudoalcance não corrigida, não aplique as correções descritas acima.
O valor inclui a "uncertainty rate of pseudorange". Um valor positivo "uncorrected" indica que o SV está se afastando do receptor.
O sinal da "taxa de pseudoalcance" "não corrigida" e a relação com o sinal da "mudança de doppler" é dada pela equação: taxa de pseudoalcance = -k * mudança de doppler (onde k é uma constante)
Essa é a taxa de pseudoalcance mais precisa disponível, com base nas medições de sinal recentes desse canal.
É obrigatório que esse valor seja fornecido com a qualidade de PRR de fase de portador típica (alguns cm/s por segundo de incerteza ou melhor) quando os sinais forem suficientemente fortes e estáveis, por exemplo, sinais de um simulador de GPS com >= 35 dB-Hz.
pseudorange_rate_uncertainty_mps duplo |
int64_t received_sv_time_in_ns |
O horário do GNSS recebido no momento da medição, em nanossegundos. Verifique se esse campo é independente (confira o comentário na parte de cima da struct GnssMeasurement).
Para GPS e QZSS, é o seguinte: Hora da semana do GPS recebida no momento da medição, em nanossegundos. O valor é relativo ao início da semana atual do GPS.
Considerando o estado de sincronização mais alto que pode ser alcançado, para cada satélite, o intervalo válido para esse campo pode ser: Searching : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Bit sync : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set Subframe sync : [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC is set TOW decoded : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED is set
Observação: se houver ambiguidade no milésimo de segundo inteiro, GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS precisa ser definido de acordo com o campo "state".
Esse valor precisa ser preenchido se 'state' != GNSS_MEASUREMENT_STATE_UNKNOWN.
Para o Glonass, é: horário do dia do Glonass recebido, no momento da medição em nanossegundos.
Considerando o estado de sincronização mais alto que pode ser alcançado, por satélite, o intervalo válido para esse campo pode ser: Searching : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Symbol sync : [ 0 10ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set Bit sync : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set String sync : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC is set Time of day : [ 0 1day ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED is set
Para o BeiDou, é: Hora do dia da semana em que o BeiDou foi recebido, no momento da medição em nanossegundos.
Considerando o estado de sincronização mais alto que pode ser alcançado, para cada satélite, o intervalo válido para esse campo pode ser: Searching : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Bit sync (D2): [ 0 2ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC is set Bit sync (D1): [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set Subframe (D2): [ 0 0.6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC is set Subframe (D1): [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC is set Time of week : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED is set
Para o Galileo, é: Hora do Galileo recebida por semana, no momento da medição em nanossegundos.
Bloqueio de código E1BC : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK está definido Bloqueio de 2º código E1C: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK está definido
Página E1B : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC está definida Hora da semana: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED está definida
Para SBAS, é: Tempo de SBAS recebido, no momento da medição em nanossegundos.
Considerando o estado de sincronização mais alto que pode ser alcançado, para cada satélite, o intervalo válido para esse campo pode ser: Searching : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Symbol sync : [ 0 2ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set Message : [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC is set
int64_t received_sv_time_uncertainty_in_ns |
snr_db duplo |
GnssMeasurementState state |
int16_t svid |
Número de ID do veículo por satélite, conforme definido em GnssSvInfo::svid Esse é um valor obrigatório.
double time_offset_ns |
Deslocamento de tempo em que a medição foi feita em nanossegundos. O horário do receptor de referência é especificado por GpsData::clock::time_ns e precisa ser interpretado da mesma forma indicada por GpsClock::type .
O sinal de time_offset_ns é dado pela seguinte equação: measurement time = GpsClock::time_ns + time_offset_ns
Ele fornece um carimbo de data/hora individual para a medição e permite precisão de subnanossegundos. Esse é um valor obrigatório.
A documentação desse struct foi gerada com base no seguinte arquivo:
- hardware/libhardware/include/hardware/ gps.h