GnssMeasurement 結構體參考資料

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 訊號測量為依據。您不得根據已知或預估的位置、速度或時間,計算或回報預期的測量值。

定義位於檔案 gps.h 的第 1656 行。

欄位說明文件

double accumulated_delta_range_m

自上次管道重設以來的累積差異範圍,以公尺為單位。正值表示 SV 正在遠離接收器。

「累積差異範圍」的符號與「載波相位」的符號之間的關係,可由下列公式得知:累積差異範圍 = -k * 載波相位 (其中 k 為常數)

如果「累積差異範圍狀態」!= GPS_ADR_STATE_UNKNOWN,則必須填入這個值。不過,只有在「累積差異範圍狀態」== GPS_ADR_STATE_VALID 時,資料才會準確。

定義位於檔案 gps.h 1835 行。

GnssAccumulatedDeltaRangeState accumulated_delta_range_state

累積的差異範圍狀態。這項屬性可指出是否已重設 ADR,或是否發生週期滑移 (表示失去鎖定)。

這是必填值。

定義位於檔案 gps.h 1821 行。

double accumulated_delta_range_uncertainty_m

累積差異範圍的 1 標準差不確定性,以公尺為單位。如果「累積差異範圍狀態」!= GPS_ADR_STATE_UNKNOWN,則必須填入這個值。

定義位於檔案 gps.h 1841 行。

double c_n0_dbhz

載波雜訊密度 (以 dB-Hz 為單位),通常介於 [0, 63] 之間。其中包含天線埠信號的 C/N0 值。

這是必填值。

定義位於檔案 gps.h 1778 行。

int64_t carrier_cycles

衛星和接收器之間的完整載波週期數。參考頻率由「carrier_frequency_hz」欄位提供。從 accumulated_delta_range_state 標記,您可以推斷出這個值累積過程中可能發生的週期錯誤和重設情形。

如果資料可用,則「flags」必須包含 GNSS_MEASUREMENT_HAS_CARRIER_CYCLES。

定義位於檔案 gps.h 1861 行。

float carrier_frequency_hz

用於調變碼和訊息的載波頻率,可以是 L1 或 L2。如果未設定這個欄位,系統會假設載波頻率為 L1。

如果資料可用,則「flags」必須包含 GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY。

定義位於檔案 gps.h 1850 行。

double carrier_phase

接收器偵測到的 RF 相位,範圍為 [0.0, 1.0]。這通常是完整載波相位測量值的部分值。

參考頻率由「carrier_frequency_hz」欄位提供。這個值包含「載波相位不確定性」。

如果資料可用,則「flags」必須包含 GNSS_MEASUREMENT_HAS_CARRIER_PHASE。

定義位於檔案 gps.h 1873 行。

double carrier_phase_uncertainty

載波相位 1-Sigma 不確定度。如果資料可用,則「flags」必須包含 GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY。

定義位於檔案 gps.h 1880 行。

定義指定 SV 的星座。值應為 GNSS_CONSTELLATION_* 常數之一

定義位於檔案 gps.h 1673 行。

一組旗標,用來指出此資料結構中的欄位是否有效。

定義位於檔案 gps.h 1661 行。

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。

定義位於檔案 gps.h 1901 行。

double pseudorange_rate_mps

時間戳記的偽距離速率,以 m/s 為單位。修正特定的偽距速率值時,會修正接收器和衛星時鐘頻率錯誤。請確認這個欄位是獨立的 (請參閱 GnssMeasurement 結構體頂端的註解)。

您必須提供「未經校正」的「偽距離率」,並提供 GpsClock 的「漂移」欄位 (提供未經校正的偽距離率時,請勿套用上述校正值)。

這個值包含「偽距率不確定性」(pseudorange rate uncertainty)。正值的「未校正」值表示 SV 正在遠離接收器。

不經過修正的「偽距速率」符號,以及與「多普勒位移」符號的關係,可由下列方程式表示:偽距速率 = -k * 多普勒位移 (其中 k 為常數)

這應該是可用的最準確偽距離率,根據這個管道提供的新訊號測量值。

當信號足夠強且穩定時 (例如 GPS 模擬器的信號大於等於 35 dB-Hz),必須以一般載波相位 PRR 品質 (每秒幾公分/秒的不確定性,或更佳) 提供這個值。

定義位於檔案 gps.h 1805 行。

double pseudorange_rate_uncertainty_mps

偽距離_速率_mps 的 1-Sigma 不確定性。不確定度以絕對值 (單邊) 表示。

這是必填值。

定義位於檔案 gps.h 1813 行。

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

定義位於檔案 gps.h 1763 行。

int64_t received_sv_time_uncertainty_in_ns

接收的 GPS 星期時間 1 標準差,以奈秒為單位。

如果「state」!= GPS_MEASUREMENT_STATE_UNKNOWN,則必須填入這個值。

定義位於檔案 gps.h 1770 行。

size_t size

設為 sizeof(GpsMeasurement)

定義位於檔案 gps.h 1658 行。

double snr_db

相關係數輸出端的訊噪比 (以 dB 為單位)。如果資料可用,則「flags」必須包含 GNSS_MEASUREMENT_HAS_SNR。這是「觀察到的雜訊地板上方相關係數峰值高度」與「雜訊 RMS」的功率比率。

定義位於檔案 gps.h 1909 行。

每個衛星的同步處理狀態。代表關聯衛星目前的同步處理狀態。根據同步狀態,應相應解讀「received GPS tow」欄位。

這是必填值。

定義位於檔案 gps.h 1694 行。

int16_t svid

衛星車輛 ID 號碼,如 GnssSvInfo::svid 所定義 這是必要值。

定義位於檔案 gps.h 1667 行。

double time_offset_ns

測量時間偏移量,以奈秒為單位。參考接收器的時間是由 GpsData::clock::time_ns 指定,應以 GpsClock::type 所指示的方式解讀。

下列等式會提供 time_offset_ns 的符號:測量時間 = GpsClock::time_ns + time_offset_ns

它會為測量提供個別時間戳記,並允許精確到奈秒以下的時間。這是必填值。

定義位於檔案 gps.h 1686 行。


這個結構體的說明文件是由下列檔案產生:
  • hardware/libhardware/include/hardware/ gps.h