GnssClock 结构参考
#include < gps.h >
数据字段 | |
尺寸_t | 尺寸 |
Gnss时钟标志 | 旗帜 |
int16_t | 闰秒 |
int64_t | 时间_ns |
双倍的 | time_uncertainty_ns |
int64_t | full_bias_ns |
双倍的 | 偏差_ns |
双倍的 | 偏差_不确定性_ns |
双倍的 | 漂移_nsps |
双倍的 | drift_uncertainty_nsps |
uint32_t | hw_clock_discontinuity_count |
详细说明
现场文档
双偏置_ns |
双偏差_uncertainty_ns |
双漂移_nsps |
双漂移_不确定性_nsps |
int64_t full_bias_ns |
GPS 接收器内的硬件时钟(“时间”字段)与自 1980 年 1 月 6 日 0000Z 以来的真实 GPS 时间之间的差异(以纳秒为单位)。
该值的符号由以下等式定义: GPS 时间的本地估计 = time_ns - (full_bias_ns +bias_ns)
如果接收器有估计的 GPS 时间,则该值是必需的。如果计算的时间针对非 GPS 星座,则必须应用该星座相对于 GPS 的时间偏移来填充该值。此值与bias_ns之和的误差估计是bias_uncertainty_ns,并且调用者负责使用这种不确定性(在解决GPS时间之前它可能非常大。)如果数据可用,“标志”必须包含GNSS_CLOCK_HAS_FULL_BIAS。
uint32_t hw_clock_discontinuity_count |
当硬件时钟存在任何不连续性时,该字段是必需的。
“不连续性”旨在涵盖从一个时钟源切换到另一个时钟源的情况。单个自由运行的晶体振荡器 (XO) 通常不应有任何不连续性,并且可以将其设置为 0。
然而,如果 time_ns 值(硬件时钟)源自复合源,不像典型的 XO 那样平滑,或者以其他方式停止并重新启动,则每次发生不连续时,该值应递增。 (例如,该值可能在设备启动时从零开始,并在每次时钟连续性发生变化时递增。万一该值达到满量程,则需要翻转(而不是钳位),以便该值继续在随后的不连续事件期间发生变化。)
虽然这个数字保持不变,但在GnssClock报告之间,可以安全地假设 time_ns 值一直在连续运行,例如源自单个高质量时钟(类似 XO 或更好,通常在连续 GNSS 信号采样期间使用。 )
这是预期的,特别是。在可用 GNSS 信号很少的时期,硬件时钟应尽可能长时间地保持无中断,因为这样可以避免需要使用(浪费)GNSS 测量来完全解决 GPS 时钟偏差和漂移,当使用来自连续GnssData报告的随附测量值。
int16_t 闰秒 |
int64_t time_ns |
双倍 time_uncertainty_ns |
该结构的文档是从以下文件生成的:
- 硬件/libhardware/include/hardware/gps.h