GnssClock 结构体参考文档

GnssClock 结构体参考文档

#include < gps.h >

数据字段

size_t  尺寸
 
GnssClockFlags   标志
 
int16_t  leap_second
 
int64_t  time_ns
 
double  time_uncertainty_ns
 
int64_t  full_bias_ns
 
double  bias_ns
 
double  bias_uncertainty_ns
 
double  drift_nsps
 
double  drift_uncertainty_nsps
 
uint32_t  hw_clock_discontinuity_count
 

详细说明

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

定义位于文件 gps.h 1455 行

字段文档

double bias_ns

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

如果数据可用,“标志”必须包含 GNSS_CLOCK_HAS_BIAS。GPS 是否已计算出位置信息。如果接收器具有估算的 GPS 时间,则此值为必需值。

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

double bias_uncertainty_ns

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

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

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

double drift_nsps

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

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

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

如果接收器具有估算的 GNSS 时间,则此值为必需值

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

double drift_uncertainty_nsps

与时钟偏差相关的 1 标准差不确定性(以纳秒为单位 [每秒])。不确定性表示为绝对(单边)值。

如果数据可用,“标志”必须包含 GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY。如果 GPS 已计算出位置信息,则此字段为必填字段,必须填充。

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

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

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

int64_t full_bias_ns

GPS 接收器内的硬件时钟(“time”字段)与自 1980 年 1 月 6 日 0000Z 以来的真实 GPS 时间之间的差值(以纳秒为单位)。

值的符号由以下等式定义:GPS 时间的本地估算值 = time_ns - (full_bias_ns + bias_ns)

如果接收器具有估算的 GPS 时间,则此值为必需值。如果计算的时间是针对非 GPS 星座,则必须应用该星座与 GPS 的时间偏移来填充此值。此值与偏差_ns 之和的误差估算值为偏差_不确定性_ns,调用方负责使用此不确定性(在求解 GPS 时间之前,此值可能非常大)。如果数据可用,“标志”必须包含 GNSS_CLOCK_HAS_FULL_BIAS。

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

uint32_t hw_clock_discontinuity_count

如果硬件时钟存在任何不连续性,则此字段为必填字段。

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

不过,如果 time_ns 值(硬件时钟)是从多个来源派生的,并且不如典型 XO 那样平滑,或者以其他方式停止并重启,则每当出现不连续性时,此值都应递增。(例如,此值在设备启动时可能从 0 开始,并且每次时钟连续性发生变化时都会递增。如果此值达到满刻度(这种情况不太可能发生),则需要进行滚动(而非钳制),以便在后续断点事件期间此值继续发生变化。)

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

预计,尤其是在可用的 GNSS 信号较少时,硬件时钟应尽可能保持连续性,因为这样可以避免在使用连续 GNSSData 报告中的随附测量值时,需要使用(浪费)GNSS 测量值来完全重新解算 GPS 时钟偏差和漂移。

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

int16_t leap_second

闰秒数据。值的符号由以下等式定义: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 size

设置为 sizeof(GnssClock)

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

int64_t time_ns

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

对于本地硬件时钟,此值预计会在硬件时钟保持开机状态时单调递增。(对于硬件时钟未持续开启的情况,请参阅 hw_clock_discontinuity_count 字段)。从此值中减去 full_bias_ns 和 bias_ns(如果可用)的总和,即可得出接收器的 GPS 时间估算值。

此 GPS 时间预计是 GNSS 接收器能够实现的当前 GPS 时间的最佳估算值。

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

此字段是必填字段。

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

double time_uncertainty_ns

与时钟时间相关联的 1 标准差不确定性(以纳秒为单位)。不确定性表示为绝对(单边)值。

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

定义位于文件 gps.h 1506 行。


此结构体的文档是根据以下文件生成的:
  • hardware/libhardware/include/hardware/ gps.h