Referencia de la estructura GnssClock
#include <
gps.h
>
Campos de datos |
|
size_t | tamaño |
GnssClockFlags | marcas |
int16_t | leap_second |
int64_t | time_ns |
doble | time_uncertainty_ns |
int64_t | full_bias_ns |
doble | bias_ns |
doble | bias_uncertainty_ns |
doble | drift_nsps |
doble | drift_uncertainty_nsps |
uint32_t | hw_clock_discontinuity_count |
Descripción detallada
Representa una estimación de la hora del reloj del GPS.
Documentación de campos
doble bias_ns |
Sesgo de subnanosegundos. La estimación del error para la suma de esto y full_bias_ns es bias_uncertainty_ns.
Si los datos están disponibles, "flags" debe contener GNSS_CLOCK_HAS_BIAS. Si el GPS calculó una corrección de posición. Este valor es obligatorio si el receptor tiene una hora GPS estimada.
double bias_uncertainty_ns |
Incertidumbre de 1 sigma asociada con la estimación local de la hora del GPS (error de reloj) en nanosegundos. La incertidumbre se representa como un valor absoluto (unilateral).
Si los datos están disponibles, las "marcas" deben contener GNSS_CLOCK_HAS_BIAS_UNCERTAINTY. Este valor es obligatorio si el receptor tiene una hora GPS estimada.
doble drift_nsps |
Es la deriva del reloj en nanosegundos (por segundo).
Un valor positivo significa que la frecuencia es mayor que la nominal y que (full_bias_ns + bias_ns) se vuelve más positivo con el tiempo.
El valor contiene la "incertidumbre de deriva". Si los datos están disponibles, "flags" debe contener GNSS_CLOCK_HAS_DRIFT.
Este valor es obligatorio si el receptor tiene una hora estimada de GNSS.
double drift_uncertainty_nsps |
Incertidumbre de 1 sigma asociada con la deriva del reloj en nanosegundos (por segundo). La incertidumbre se representa como un valor absoluto (unilateral).
Si los datos están disponibles, las "marcas" deben contener GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY. Si el GPS calculó una corrección de posición, este campo es obligatorio y debe propagarse.
Marcas GNSSClockFlags |
int64_t full_bias_ns |
Es la diferencia entre el reloj de hardware (campo "time") dentro del receptor GPS y la hora real del GPS desde la hora 0000Z del 6 de enero de 1980, en nanosegundos.
El signo del valor se define con la siguiente ecuación: estimación local de la hora del GPS = time_ns - (full_bias_ns + bias_ns)
Este valor es obligatorio si el receptor tiene una hora GPS estimada. Si la hora calculada es para una constelación que no es GPS, se debe aplicar la compensación de tiempo de esa constelación al GPS para completar este valor. La estimación del error para la suma de esto y bias_ns es bias_uncertainty_ns, y el llamador es responsable de usar esta incertidumbre (puede ser muy grande antes de que se resuelva la hora del GPS). Si los datos están disponibles, "flags" debe contener GNSS_CLOCK_HAS_FULL_BIAS.
uint32_t hw_clock_discontinuity_count |
Cuando hay discontinuidades en el reloj de hardware, este campo es obligatorio.
Una "discontinuidad" abarca el caso de un cambio de una fuente de reloj a otra. Por lo general, un solo oscilador de cristal libre (XO) no debe tener discontinuidades, y se puede configurar y dejar en 0.
Sin embargo, si el valor de time_ns (reloj HW) se deriva de un compuesto de fuentes que no es tan fluido como un XO típico o se detiene y se reinicia, este valor se debe incrementar cada vez que se produce una discontinuidad. (p.ej., este valor puede comenzar en cero cuando se inicia el dispositivo y aumentar cada vez que hay un cambio en la continuidad del reloj). En el caso improbable de que este valor alcance la escala completa, se requiere un cambio de rol (no un límite) para que este valor siga cambiando durante los eventos de discontinuidad posteriores.
Si bien este número se mantiene igual, entre los informes de GNSSClock , se puede suponer con seguridad que el valor de time_ns se ejecuta de forma continua, p.ej., derivado de un solo reloj de alta calidad (como XO o mejor, que se suele usar durante el muestreo continuo de la señal del GNSS).
Se espera, en especial durante los períodos en los que hay pocos indicadores de GNSS disponibles, que el reloj de hardware no tenga discontinuidades durante el mayor tiempo posible, ya que esto evita la necesidad de usar (desperdiciar) una medición de GNSS para volver a resolver por completo la deriva y el sesgo del reloj del GPS cuando se usan las mediciones adjuntas de informes de GNSSData consecutivos.
int16_t leap_second |
int64_t time_ns |
Es el valor del reloj interno del receptor del GNSS. Este es el valor del reloj de hardware local.
En el caso del reloj de hardware local, se espera que este valor aumente de forma monótona mientras el reloj de hardware permanezca encendido. (en el caso de un reloj HW que no está encendido de forma continua, consulta el campo hw_clock_discontinuity_count). La estimación del receptor de la hora del GPS se puede obtener si se resta la suma de full_bias_ns y bias_ns (cuando esté disponible) de este valor.
Se espera que esta hora del GPS sea la mejor estimación de la hora actual del GPS que puede lograr el receptor GNSS.
Se puede proporcionar una precisión inferior a nanosegundos mediante el campo "bias_ns". El valor contiene la "incertidumbre del tiempo".
Este campo es obligatorio.
double time_uncertainty_ns |
Incertidumbre de 1 sigma asociada con la hora del reloj en nanosegundos. La incertidumbre se representa como un valor absoluto (unilateral).
Si los datos están disponibles, "flags" debe contener GNSS_CLOCK_HAS_TIME_UNCERTAINTY. Este valor es cero (es el reloj local de referencia, con el que se miden todas las demás incertidumbres de tiempo y tiempo). (Por lo tanto, este campo no se puede proporcionar, según la marca GNSS_CLOCK_HAS_TIME_UNCERTAINTY, o se puede proporcionar y establecer en 0).
La documentación de esta struct se generó a partir del siguiente archivo:
- hardware/libhardware/include/hardware/ gps.h