GnssNavigationMessage 結構體參考資料

GnssNavigationMessage 結構體參考資料

#include < gps.h >

資料欄位

size_t  size
 
int16_t  svid
 
GnssNavigationMessageType   type
 
NavigationMessageStatus   狀態
 
int16_t  message_id
 
int16_t  submessage_id
 
size_t  data_length
 
uint8_t * 資料
 

詳細說明

代表 GPS 導航訊息 (或其片段)。

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

欄位說明文件

uint8_t* data

遭檢舉的 GPS 訊息資料。使用大端格式 (先大端) 指定的位元組 (或字元)。

  • 對於 GPS L1 C/A、Beidou D1 和 Beidou D2,每個子幀包含 10 個 30 位元字詞。每個字 (30 位元) 應置入 4 位元字的最後 30 位元 (略過 B31 和 B32),以最高位元優先的順序排列,總共 40 位元,涵蓋 6、6 和 0.6 秒的時間範圍。
  • 對於 Glonass L1 C/A,每個字串都包含 85 個資料位元,包括校驗和。這些位元應可放入 11 個位元組,以 MSB 優先 (略過 B86-B88),涵蓋 2 秒的時間範圍。
  • 就 Galileo F/NAV 而言,每個字詞都由 238 位元組成 (不含同步和尾端符號)。每個字詞應以 30 位元組的形式呈現,以 MSB 優先 (略過 B239、B240),涵蓋 10 秒的時間範圍。
  • 就 Galileo I/NAV 而言,每個頁面都包含 2 個頁面部分 (偶數和奇數),總共 2x114 = 228 位元 (不含同步和尾端),應可放入 29 個位元組,以 MSB 優先 (略過 B229-B232)。

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

size_t data_length

目前郵件中包含的資料長度 (以位元組為單位)。如果這個值不等於零,則「data」必須指向大小相同的陣列,例如 L1 C/A 的子影格大小為 40 個位元組 (10 個字,30 位元/字)。

這是必填值。

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

int16_t message_id

訊息 ID。提供索引,方便組合完整的導航訊息。

  • 對於 GPS L1 C/A 子影格 4 和 5,這個值會對應到導航訊息的「frame id」,範圍為 1 到 25 (子影格 1、2、3 不含「frame id」,這個值可設為 -1)。
  • 對於 Glonass L1 C/A,這會是影格 ID,範圍為 1 到 5。
  • 對於 BeiDou D1,這表示 1 到 24 之間的幀號
  • 對於 Beidou D2,這會是 1 到 120 之間的幀數
  • 對於 Galileo F/NAV 標準影格結構,這會是子影格編號,範圍為 1 到 12
  • 對於 Galileo I/NAV 標準影格結構,這會是 1 到 24 之間的子影格編號

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

size_t size

設為 sizeof(GnssNavigationMessage)

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

已收到的導航訊息狀態。請勿傳送含有奇偶校驗錯誤且無法修正的字詞的導航訊息。

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

int16_t submessage_id

子訊息 ID。如果訊息「類型」需要,這個值會包含傳送中目前訊息 (或影格) 中的子索引。

  • 對於 GPS L1 C/A、北斗 D1 和北斗 D2,子訊息 ID 會對應到導航訊息的子影格編號,範圍為 1 到 5。
  • 對於 Glonass L1 C/A,這會是字串編號,範圍為 1 到 15
  • 對於 Galileo F/NAV,這指的是 1 到 6 之間的頁面類型
  • 對於 Galileo I/NAV,這會是 1 到 10 以上的字詞類型

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

int16_t svid

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

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

結構體中包含的訊息類型。這是必填值。

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


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