Referência da estrutura GnssMeasurement

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.

Definição na linha 1656 do arquivo gps.h .

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.

Definição na linha 1835 do arquivo gps.h .

GnssAccumulatedDeltaRangeState accumulated_delta_range_state

Estado do delta de distância acumulado. Ele indica se o ADR foi redefinido ou se há um deslizamento de ciclo (que indica a perda de bloqueio).

Esse é um valor obrigatório.

Definição na linha 1821 do arquivo gps.h .

double accumulated_delta_range_uncertainty_m

Incerteza de 1 sigma do intervalo delta acumulado em metros. Esse valor precisa ser preenchido se "estado do intervalo delta acumulado" != GPS_ADR_STATE_UNKNOWN.

Definição na linha 1841 do arquivo gps.h .

duplo c_n0_dbhz

Densidade de portador para ruído em dB-Hz, normalmente no intervalo [0, 63]. Ele contém o valor C/N0 medido para o sinal na porta da antena.

Esse é um valor obrigatório.

Definição na linha 1778 do arquivo gps.h .

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.

Definição na linha 1861 do arquivo gps.h .

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.

Definição na linha 1850 do arquivo gps.h .

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.

Definição na linha 1873 do arquivo gps.h .

double carrier_phase_uncertainty

Incerteza de 1 sigma da fase da operadora. Se os dados estiverem disponíveis, "flags" precisará conter GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY.

Definição na linha 1880 do arquivo gps.h .

Define a constelação do SV fornecido. O valor precisa ser uma das constantes GNSS_CONSTELLATION_*

Definição na linha 1673 do arquivo gps.h .

Um conjunto de flags que indicam a validade dos campos nessa estrutura de dados.

Definição na linha 1661 do arquivo gps.h .

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.

Definição na linha 1901 do arquivo gps.h .

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.

Definição na linha 1805 do arquivo gps.h .

pseudorange_rate_uncertainty_mps duplo

Incerteza de 1 sigma do pseudorange_rate_mps. A incerteza é representada como um valor absoluto (de um lado).

Esse é um valor obrigatório.

Definição na linha 1813 do arquivo gps.h .

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

Definição na linha 1763 do arquivo gps.h .

int64_t received_sv_time_uncertainty_in_ns

Incerteza de 1 sigma do horário da semana do GPS recebido em nanossegundos.

Esse valor precisa ser preenchido se "state" != GPS_MEASUREMENT_STATE_UNKNOWN.

Definição na linha 1770 do arquivo gps.h .

tamanho_t size

definido como sizeof(GpsMeasurement)

Definição na linha 1658 do arquivo gps.h .

snr_db duplo

Relação sinal-ruído na saída do correlator em dB. Se os dados estiverem disponíveis, "flags" precisa conter GNSS_MEASUREMENT_HAS_SNR. Essa é a proporção de potência da "altura do pico de correlação acima do nível de ruído observado" para "o RMS de ruído".

Definição na linha 1909 do arquivo gps.h .

Por estado de sincronização do satélite. Ele representa o estado de sincronização atual do satélite associado. Com base no estado de sincronização, o campo "GPS tow recebido" precisa ser interpretado de acordo com isso.

Esse é um valor obrigatório.

Definição na linha 1694 do arquivo gps.h .

int16_t svid

Número de ID do veículo por satélite, conforme definido em GnssSvInfo::svid Esse é um valor obrigatório.

Definição na linha 1667 do arquivo gps.h .

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.

Definição na linha 1686 do arquivo gps.h .


A documentação desse struct foi gerada com base no seguinte arquivo:
  • hardware/libhardware/include/hardware/ gps.h