GnssClock 结构参考

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

详细说明

表示 GPS 时钟时间的估计值。

定义位于文件gps.h的第1455行。

现场文档

双偏置_ns

亚纳秒偏差。此值与 full_bias_ns 之和的误差估计为bias_uncertainty_ns

如果数据可用,“标志”必须包含 GNSS_CLOCK_HAS_BIAS。 GPS 是否计算出定位。如果接收器有估计的 GPS 时间,则该值是必需的。

定义位于文件gps.h的第1534行。

双偏差_uncertainty_ns

与本地 GPS 时间估计(时钟偏差)相关的 1-Sigma 不确定性(以纳秒为单位)。不确定性表示为绝对(单边)值。

如果数据可用,“标志”必须包含 GNSS_CLOCK_HAS_BIAS_UNCERTAINTY。如果接收器有估计的 GPS 时间,则该值是必需的。

定义位于文件gps.h的第1545行。

双漂移_nsps

时钟的漂移以纳秒(每秒)为单位。

正值意味着频率高于标称频率,并且 (full_bias_ns +bias_ns) 随着时间的推移变得越来越正。

该值包含“漂移不确定性”。如果数据可用,“标志”必须包含 GNSS_CLOCK_HAS_DRIFT。

如果接收器有估计的 GNSS 时间,则该值是强制性的

定义位于文件gps.h的第1559行。

双漂移_不确定性_nsps

与时钟漂移(以纳秒(每秒)为单位)相关的 1-Sigma 不确定性。不确定性表示为绝对(单边)值。

如果数据可用,“标志”必须包含 GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY。如果 GPS 已计算定位,则此字段是强制性的且必须填写。

定义位于文件gps.h的第1569行。

一组标志,指示该数据结构中字段的有效性。

定义位于文件gps.h的第1463行。

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。

定义位于文件gps.h的第1523行。

uint32_t hw_clock_discontinuity_count

当硬件时钟存在任何不连续性时,该字段是必需的。

“不连续性”旨在涵盖从一个时钟源切换到另一个时钟源的情况。单个自由运行的晶体振荡器 (XO) 通常不应有任何不连续性,并且可以将其设置为 0。

然而,如果 time_ns 值(硬件时钟)源自复合源,不像典型的 XO 那样平滑,或者以其他方式停止并重新启动,则每次发生不连续时,该值应递增。 (例如,该值可能在设备启动时从零开始,并在每次时钟连续性发生变化时递增。万一该值达到满量程,则需要翻转(而不是钳位),以便该值继续在随后的不连续事件期间发生变化。)

虽然这个数字保持不变,但在GnssClock报告之间,可以安全地假设 time_ns 值一直在连续运行,例如源自单个高质量时钟(类似 XO 或更好,通常在连续 GNSS 信号采样期间使用。 )

这是预期的,特别是。在可用 GNSS 信号很少的时期,硬件时钟应尽可能长时间地保持无中断,因为这样可以避免需要使用(浪费)GNSS 测量来完全解决 GPS 时钟偏差和漂移,当使用来自连续GnssData报告的随附测量值。

定义位于文件gps.h的第1600行。

int16_t 闰秒

闰秒数据。该值的符号由以下等式定义: utc_time_ns = time_ns - (full_bias_ns +bias_ns) - Leap_Second * 1,000,000,000

如果数据可用,“标志”必须包含 GNSS_CLOCK_HAS_LEAP_SECOND。

定义位于文件gps.h的第1473行。

size_t 尺寸

设置为 sizeof(GnssClock)

定义位于文件gps.h的第1457行。

int64_t time_ns

GNSS 接收器内部时钟值。这是本地硬件时钟值。

对于本地硬件时钟,当硬件时钟保持通电状态时,该值预计会单调递增。 (对于不连续开启的硬件时钟的情况,请参阅 hw_clock_discontinuity_count 字段)。接收器对 GPS 时间的估计可以通过从此值减去 full_bias_ns 和bias_ns(如果可用)的总和来得出。

该 GPS 时间预计是 GNSS 接收器可以实现的当前 GPS 时间的最佳估计。

亚纳秒精度可以通过“bias_ns”字段提供。该值包含了“时间不确定性”。

此字段是必填字段。

定义位于文件gps.h的第1494行。

双倍 time_uncertainty_ns

与时钟时间(纳秒)相关的 1-Sigma 不确定性。不确定性表示为绝对(单边)值。

如果数据可用,“flags”必须包含 GNSS_CLOCK_HAS_TIME_UNCERTAINTY。该值实际上为零(它是参考本地时钟,通过它来测量所有其他时间和时间不确定性。)(因此,根据 GNSS_CLOCK_HAS_TIME_UNCERTAINTY 标志,可以不提供该字段,或者提供并设置为 0。)

定义在文件gps.h的第1506行。


该结构的文档是从以下文件生成的:
  • 硬件/libhardware/include/hardware/gps.h