GnssMeasurement 結構體參考資料
#include <
gps.h
>
資料欄位 |
|
size_t | size |
GnssMeasurementFlags | flags |
int16_t | svid |
GnssConstellationType | 星座 |
double | time_offset_ns |
GnssMeasurementState | 狀態 |
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 |
GnssConstellationType constellation |
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 |
時間戳記的偽距離速率,以 m/s 為單位。修正特定的偽距速率值時,會修正接收器和衛星時鐘頻率錯誤。請確認這個欄位是獨立的 (請參閱 GnssMeasurement 結構體頂端的註解)。
您必須提供「未經校正」的「偽距離率」,並提供 GpsClock 的「漂移」欄位 (提供未經校正的偽距離率時,請勿套用上述校正值)。
這個值包含「偽距率不確定性」(pseudorange rate uncertainty)。正值的「未校正」值表示 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 週的開始時間。
根據每個衛星可達到的最高同步狀態,這個欄位的有效範圍如下:Searching:[0]:GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock:[0 1ms]:GNSS_MEASUREMENT_STATE_CODE_LOCK 已設值 Bit sync:[0 20ms]:GNSS_MEASUREMENT_STATE_BIT_SYNC 已設值 Subframe sync:[0 6s]:GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC 已設值 TOW decoded:[0 1week]: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
若是 Beidou,則為:收到 Beidou 的星期時間,以奈秒為單位。
根據每個衛星可達到的最高同步狀態,這個欄位的有效範圍如下:搜尋:[0]:GNSS_MEASUREMENT_STATE_UNKNOWN C/A 編碼鎖定:[0 1ms]:GNSS_MEASUREMENT_STATE_CODE_LOCK 已設為 Bit sync (D2):[0 2ms]:GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC 已設為 Bit sync (D1):[0 20ms]: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 4ms ] :已設定 GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK E1C 第 2 個密碼鎖定:[ 0 100ms ] :已設定 GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK
E1B 頁面:[ 0 2 秒]:已設定 GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC 星期幾:[ 0 1 週]:已設定 GNSS_MEASUREMENT_STATE_TOW_DECODED
對於 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