Referência da estrutura GnssClock
#include <
gps.h
>
Campos de dados |
|
size_t | size |
GnssClockFlags | flags |
int16_t | leap_second |
int64_t | time_ns |
duplo | time_uncertainty_ns |
int64_t | full_bias_ns |
duplo | bias_ns |
duplo | bias_uncertainty_ns |
duplo | drift_nsps |
duplo | drift_uncertainty_nsps |
uint32_t | hw_clock_discontinuity_count |
Descrição detalhada
Documentação do campo
bias_ns duplo |
Viés de fração de nanossegundo. A estimativa de erro para a soma desse valor e do full_bias_ns é o bias_uncertainty_ns.
Se os dados estiverem disponíveis, as flags precisam conter GNSS_CLOCK_HAS_BIAS. Se o GPS calculou uma correção de posição. Esse valor é obrigatório se o receptor tiver um horário de GPS estimado.
bias_uncertainty_ns duplo |
Incerteza de 1 sigma associada à estimativa local do tempo do GPS (erro de relógio) em nanossegundos. A incerteza é representada como um valor absoluto (de um lado).
Se os dados estiverem disponíveis, as flags precisam conter GNSS_CLOCK_HAS_BIAS_UNCERTAINTY. Esse valor é obrigatório se o receptor tiver um horário de GPS estimado.
drift_nsps duplos |
A deriva do relógio em nanossegundos (por segundo).
Um valor positivo significa que a frequência é maior do que a nominal e que (full_bias_ns + bias_ns) está ficando mais positivo ao longo do tempo.
O valor contém a "incerteza de deriva". Se os dados estiverem disponíveis, as flags precisam conter GNSS_CLOCK_HAS_DRIFT.
Esse valor é obrigatório se o receptor tiver um tempo GNSS estimado.
drift_uncertainty_nsps duplos |
Incerteza de 1 sigma associada à deriva do relógio em nanossegundos (por segundo). A incerteza é representada como um valor absoluto (de um lado).
Se os dados estiverem disponíveis, as flags precisam conter GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY. Se o GPS tiver calculado uma correção de posição, esse campo é obrigatório e precisa ser preenchido.
GnssClockFlags flags |
int64_t full_bias_ns |
A diferença entre o relógio de hardware (campo "time") no receptor de GPS e o horário real do GPS desde 0000Z, 6 de janeiro de 1980, em nanossegundos.
O sinal do valor é definido pela seguinte equação: estimativa local do tempo do GPS = time_ns - (full_bias_ns + bias_ns)
Esse valor é obrigatório se o receptor tiver um horário de GPS estimado. Se o tempo computado for para uma constelação que não seja do GPS, o deslocamento de tempo dessa constelação para o GPS precisa ser aplicado para preencher esse valor. A estimativa de erro para a soma desse valor e do bias_ns é o bias_uncertainty_ns, e o autor da chamada é responsável por usar essa incerteza (ela pode ser muito grande antes que o tempo do GPS seja resolvido). Se os dados estiverem disponíveis, as flags precisam conter GNSS_CLOCK_HAS_FULL_BIAS.
uint32_t hw_clock_discontinuity_count |
Quando há descontinuidades no relógio de hardware, esse campo é obrigatório.
Uma "discontinuidade" é usada para cobrir o caso de uma mudança de uma fonte de relógio para outra. Um único oscilador de cristal de funcionamento livre (XO) geralmente não tem descontinuidades e pode ser definido e deixado em 0.
No entanto, se o valor time_ns (relógio HW) for derivado de um composto de fontes, que não é tão suave quanto um XO típico ou que é interrompido e reiniciado, esse valor será incrementado sempre que ocorrer uma descontinuidade. Por exemplo, esse valor pode começar em zero na inicialização do dispositivo e aumentar sempre que houver uma mudança na continuidade do relógio. No caso improvável de esse valor atingir a escala total, é necessário o rollover (não a fixação), para que esse valor continue mudando durante eventos de descontinuidade subsequentes.
Embora esse número permaneça o mesmo entre os relatórios GnssClock , pode-se supor com segurança que o valor time_ns está sendo executado continuamente, por exemplo, derivado de um único relógio de alta qualidade (como XO ou melhor, que normalmente é usado durante a amostragem contínua do sinal GNSS).
Espera-se que, principalmente durante períodos em que há poucos sinais GNSS disponíveis, o relógio do HW esteja livre de descontinuidades pelo maior tempo possível, já que isso evita a necessidade de usar (desperdiçar) uma medição GNSS para resolver completamente a distorção e a deriva do relógio do GPS, ao usar as medições que acompanham, de relatórios GnssData consecutivos.
int16_t leap_second |
int64_t time_ns |
O valor do relógio interno do receptor GNSS. Esse é o valor do relógio de hardware local.
Para o relógio de hardware local, esse valor precisa aumentar monotonicamente enquanto o relógio de hardware permanecer ligado. No caso de um relógio de hardware que não está continuamente ativado, consulte o campo hw_clock_discontinuity_count. A estimativa do tempo do GPS do receptor pode ser derivada subtraindo a soma de full_bias_ns e bias_ns (quando disponível) desse valor.
Esse tempo de GPS é esperado para ser a melhor estimativa do tempo de GPS atual que o receptor GNSS pode alcançar.
A precisão de subnanossegundos pode ser fornecida usando o campo "bias_ns". O valor contém a "incerteza de tempo".
Este campo é obrigatório.
double time_uncertainty_ns |
Incerteza de 1 sigma associada ao tempo do relógio em nanossegundos. A incerteza é representada como um valor absoluto (de um lado).
Se os dados estiverem disponíveis, "flags" precisa conter GNSS_CLOCK_HAS_TIME_UNCERTAINTY. Esse valor é efetivamente zero (é o relógio local de referência, pelo qual todas as outras incertezas de tempo são medidas). Portanto, esse campo não pode ser fornecido, de acordo com a flag GNSS_CLOCK_HAS_TIME_UNCERTAINTY, ou pode ser fornecido e definido como 0.
A documentação desse struct foi gerada com base no seguinte arquivo:
- hardware/libhardware/include/hardware/ gps.h