GnssMeasurement 结构参考
#include <
gps.h
>
数据字段 |
|
size_t | 尺寸 |
GnssMeasurementFlags | 标志 |
int16_t | svid |
GnssConstellationType | 星座 |
double | time_offset_ns |
GnssMeasurementState | state |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
double | c_n0_dbhz |
double | pseudorange_rate_mps |
double | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
double | accumulated_delta_range_m |
double | accumulated_delta_range_uncertainty_m |
浮点数 | carrier_frequency_hz |
int64_t | carrier_cycles |
double | carrier_phase |
double | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
double | snr_db |
详细说明
表示 GNSS 测量数据,其中包含原始信息和计算信息。
独立性 - 此结构体中报告的所有信号测量信息(例如 sv_time、pseudorange_rate、multipath_indicator)都应仅基于 GNSS 信号测量结果。您不得根据已知或估算的位置、速度或时间计算或报告预期测量结果,从而合成测量结果。
字段文档
double accumulated_delta_range_m |
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t carrier_cycles |
float carrier_frequency_hz |
double carrier_phase |
double carrier_phase_uncertainty |
GnssMultipathIndicator multipath_indicator |
一个枚举,用于指示事件的“多路径”状态。
多路径指示器旨在报告存在重叠信号,这些信号表现为失真的相关性峰值。
- 如果存在失真的相关峰值形状,则报告多路径为 GNSS_MULTIPATH_INDICATOR_PRESENT。
- 如果没有失真的相关峰值形状,则报告 GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- 如果信号太弱,无法辨别此信息,请报告 GNSS_MULTIPATH_INDICATOR_UNKNOWN
示例:执行标准化的重叠多路径性能测试 (3GPP TS 34.171) 时,多路径指示器应针对被跟踪且包含多路径的信号报告 GNSS_MULTIPATH_INDICATOR_PRESENT,针对被跟踪且不包含多路径的信号报告 GNSS_MULTIPATH_INDICATOR_NOT_PRESENT。
double pseudorange_rate_mps |
时间戳时的伪距率(以米/秒为单位)。给定伪距率值的校正包括接收器和卫星时钟频率误差的校正。确保此字段是独立的(请参阅 GnssMeasurement 结构体顶部的注释)。
必须提供“未校正”的“伪距离速率”,并提供 GpsClock 的“漂移”字段(提供未校正的伪距离速率时,请勿应用上述校正)。
该值包含“伪距离速率不确定性”信息。正的“未校正”值表示 SV 正在远离接收器。
“未校正”的“伪距离速率”的符号及其与“多普勒频移”符号的关系由以下等式给出:伪距离速率 = -k * 多普勒频移(其中 k 为常数)
这应该是可用的最准确的伪距离速率,基于此信道中的新信号测量结果。
当信号足够强且稳定时(例如,GPS 模拟器的信号大于等于 35 dB-Hz),必须在典型的载波相位 PRR 质量(每秒几厘米/秒的不确定性或更好)下提供此值。
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
测量时间收到的 GNSS 星期时间(以纳秒为单位)。确保此字段是独立的(请参阅 GnssMeasurement 结构体顶部的注释)。
对于 GPS 和 QZSS,此字段表示:测量时间收到的 GPS 星期时间(以纳秒为单位)。此值相对于当前 GPS 周的开始时间。
鉴于每个卫星可达到的最高同步状态,此字段的有效范围可以是:正在搜索:[ 0 ]:已设置 GNSS_MEASUREMENT_STATE_UNKNOWN;C/A 码锁定:[ 0 1 毫秒]:已设置 GNSS_MEASUREMENT_STATE_CODE_LOCK;位同步:[ 0 20 毫秒]:已设置 GNSS_MEASUREMENT_STATE_BIT_SYNC;子帧同步:[ 0 6 秒]:已设置 GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC;已解码的 TOW:[ 0 1 周]:已设置 GNSS_MEASUREMENT_STATE_TOW_DECODED
请注意:如果整数毫秒存在任何歧义,则应在“state”字段中相应地设置 GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS。
如果“state”不等于 GNSS_MEASUREMENT_STATE_UNKNOWN,则必须填充此值。
对于 Glonass,此字段表示:测量时间收到的 Glonass 时间(以纳秒为单位)。
鉴于每个卫星可达到的最高同步状态,此字段的有效范围可以是:正在搜索 : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A 码锁定 : [ 0 1 毫秒 ] : GNSS_MEASUREMENT_STATE_CODE_LOCK 已设置符号同步 : [ 0 10 毫秒 ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC 已设置位同步 : [ 0 20 毫秒 ] : GNSS_MEASUREMENT_STATE_BIT_SYNC 已设置字符串同步 : [ 0 2 秒 ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC 已设置时间 : [ 0 1 天 ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED 已设置
对于北斗,此字段表示:测量时间收到的北斗星期时间(以纳秒为单位)。
鉴于每个卫星可实现的最高同步状态,此字段的有效范围可以是:正在搜索:[ 0 ] :已设置 GNSS_MEASUREMENT_STATE_UNKNOWN C/A 码锁定:[ 0 1 毫秒] :已设置 GNSS_MEASUREMENT_STATE_CODE_LOCK 位同步 (D2):[ 0 2 毫秒] :已设置 GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC 位同步 (D1):[ 0 20 毫秒] :已设置 GNSS_MEASUREMENT_STATE_BIT_SYNC 子帧 (D2):[ 0 0.6 秒] :已设置 GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC 子帧 (D1):[ 0 6 秒] :已设置 GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC 星期时间:[ 0 1 周] :已设置 GNSS_MEASUREMENT_STATE_TOW_DECODED
对于 Galileo,此字段的含义为:测量时间收到的 Galileo 星期时间(以纳秒为单位)。
E1BC 代码锁定:[ 0 4 毫秒]:设置了 GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK。E1C 第 2 个代码锁定:[ 0 100 毫秒]:设置了 GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK。
E1B 页面:[ 0 2s ]:已设置 GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC
对于 SBAS,此字段表示:测量时间收到的 SBAS 时间(以纳秒为单位)。
鉴于每个卫星可达到的最高同步状态,此字段的有效范围可以是:正在搜索:[ 0 ]:GNSS_MEASUREMENT_STATE_UNKNOWN C/A 码锁定:[ 0 1 毫秒]:已设置 GNSS_MEASUREMENT_STATE_CODE_LOCK 符号同步:[ 0 2 毫秒]:已设置 GNSS_MEASUREMENT_STATE_SYMBOL_SYNC 消息:[ 0 1 秒]:已设置 GNSS_MEASUREMENT_STATE_SBAS_SYNC
int64_t received_sv_time_uncertainty_in_ns |
double snr_db |
int16_t svid |
卫星车辆 ID 号,如 GnssSvInfo::svid 中所定义。此值为必需值。
double time_offset_ns |
测量所用时间偏移(以纳秒为单位)。参照接收器的时间由 GpsData::clock::time_ns 指定,应按 GpsClock::type 所示的方式进行解读。
time_offset_ns 的符号由以下等式给出:测量时间 = GpsClock::time_ns + time_offset_ns
它会为测量结果提供单独的时间戳,并且精确到纳秒级。此值为必填项。
此结构体的文档是根据以下文件生成的:
- hardware/libhardware/include/hardware/ gps.h