GNSS_DRIVERCOMMAND_TYPE列舉 (gnssdriver.h)

此列舉表示 GNSS_DRIVERCOMMAND_PARAM 結構中提供的 GNSS 驅動程式的驅動程式命令或組態類型。

Syntax

typedef enum {
  GNSS_SetLocationServiceEnabled,
  GNSS_SetLocationNIRequestAllowed,
  GNSS_ForceSatelliteSystem,
  GNSS_ForceOperationMode,
  GNSS_ResetEngine,
  GNSS_ClearAgnssData,
  GNSS_SetSuplVersion,
  GNSS_SetNMEALogging,
  GNSS_SetUplServerAccessInterval,
  GNSS_SetNiTimeoutInterval,
  GNSS_ResetGeofencesTracking,
  GNSS_SetSuplVersion2,
  GNSS_CustomCommand
} GNSS_DRIVERCOMMAND_TYPE;

常數

 
GNSS_SetLocationServiceEnabled
通知驅動程式是否在裝置上啟用位置。 每次在裝置上啟用/停用位置服務時,都會發出此命令。

相關聯的命令數據是 BOOL

收到此指令設為 FALSE 時,GNSS 驅動程式和 GNSS 裝置必須:

- 如果支援多個應用程式,請停止任何種類的持續位置會話,以及從任何 HLOS 應用程式) (。

- 如果 GNSS 裝置或驅動程式在背景執行任何作業,例如地理柵欄追蹤、協助數據重新整理等,則也應該停止。 當位置停用時,GNSS 配接器將會停止所有卸載的作業。

相對於行動電信業者的位置要求:

- 無論位置切換狀態為何,仍應向行動操作員要求緊急位置、符合 CALEA 需求等。 這些要求預期會設定隱私權覆寫旗標或/,並在使用者進行緊急電話時起始。

- 如果行動電信業者需要此行為並由 GNSS 驅動程式實作,其他網路起始的位置要求應該接受 GNSS_SetLocationNIRequestAllowed 命令。

例如,如果 HLOS 需要起始任何新的位置要求,以便讓使用者從遠端尋找裝置,GNSS 配接器會傳送命令來將 GNSS_SetLocationServiceEnabled 設定為 TRUE、起始修正會話,以及收到結果時,它會傳送另一個命令,將 GNSS_SetLocationServiceEnabled 設定為 FALSE:

- GNSS_SetLocationServiceEnabled 設定為 TRUE=1-> 已啟用

- GNSS_SetLocationServiceEnabled 設為 FALSE=0-> 已停用

除非 GNSS 配接器發出此命令,否則驅動程式必須假設系統上已停用位置服務。
GNSS_SetLocationNIRequestAllowed
如果允許驅動程式接收來自行動網路的網路起始位置要求,請通知驅動程式。 只有在行動電信業者需要時,才需要支援命令。 從 Windows 10 開始,Microsoft 不會察覺任何不再需要此動作的行動電信業者,但這仍可避免在商業化期間發生任何封鎖問題。 如果未實作命令,GNSS 驅動程式應該只保留其預設行為。

相關聯的命令資料是 BOOL

- GNSS_SetLocationNIRequestAllowed 設定為 TRUE=1-> 允許

- GNSS_SetLocationNIRequestAllowed 設為 FALSE=0-> NotAllow

除非 GNSS 配接器明確發出此命令,否則驅動程式必須假設已在系統上啟用 NI 要求。

GNSS 配接器會維護全系統狀態,指出是否允許 NI 要求。 此狀態取決於位置主要交換器 (使用者可以切換來開啟或關閉位置的設定) ,以及由行動操作員所設定的設定,以指出 NI 要求是否相依於位置主要交換器。

GNSS 配接器會評估這兩個設定的值,如果允許或不允許 NI 要求,則會向 GNSS 驅動程式指出。

例如,緊急服務或 CALEA (的位置要求,不論此設定的值為何,都必須提供設定) 的隱私權覆寫案例。
GNSS_ForceSatelliteSystem
此命令會使 GNSS 驅動程式使用指定的附屬系統 () 來取得修正。 參數是具有下列值的 DWORD

- GNSS_SATELLITE_ANY (0x00)
- GNSS_SATELLITE_GPS (0x01)
- GNSS_SATELLITE_GLONASS (0x02)
- GNSS_SATELLITE_BEIDOU (0x04)
- GNSS_SATELLITE_GALILEO (0x08)

保留0x10 0xFF。

這預期僅供測試之用。 某些行動操作員確實需要使用單一衛星系統進行驗證。
GNSS_ForceOperationMode
此命令會使 GNSS 驅動程式使用指定的作業模式。

參數是具有下列值的 DWORD

- GNSS_OPERMODE_ANY (0x00)
- GNSS_OPERMODE_MSA (0x01)
- GNSS_OPERMODE_MSB (0x02)
- GNSS_OPERMODE_MSS (0x04)
- GNSS_OPERMODE_CELLID (0x08)
- GNSS_OPERMODE_AFLT (0x10)
- GNSS_OPERMODE_OTDOA (0x20)

保留0x40 0xFF。

此指令用於兩個用途:

- 若要在 SUPL 設定的情況下設定作業模式。 預期行動電信業者只會將裝置設定為以 Microsoft 為基礎的模式運作,而 SUPL 服務用來取得協助資料 (GNSS_OPERMODE_MSB) ,或在獨立模式中 (GNSS_OPERMODE_MSS) ,GNSS 裝置實際上可以獨立運作,或使用從 SUPL 服務以外的來源取得的協助。 獨立模式實際上相當於預設模式 (GNSS_OPERMODE_ANY) 。

- 若要針對測試目的設定不同的作業模式。 這主要是由電信業者或 OEM 用於驗證用途。

將 SUPL GNSS_ForceOperationMode 設定為 GNSS_OPERMODE_MSS 表示 GNSS 系統不會對 AGNSS 資料與 SUPL 伺服器進行任何互動。
GNSS_ResetEngine
此命令會清除 GNSS 引擎的狀態。 發出此命令之後,引擎就會準備好進行冷啟動修正:

- 將會刪除所有協助數據。

- almanac 將會保存。

- GNSS 引擎組態參數將會保存。

只有在沒有作用中的修正會話時,才應該呼叫此命令。 此命令通常用於以遞歸方式測試 GNSS 時間,以在冷啟動時先修正。
GNSS_ClearAgnssData
此命令會清除 GNSS 引擎的 AGNSS 協助數據。 這主要用於測試目的,以確保驅動程式在要求修正時要求協助數據。 相關聯的命令數據包含特定的 GNSS_AGNSS_REQUEST_TYPE 列舉,以指出要清除的特定數據元素:

- 如果指定 GNSS_AGNSS_TimeInjection ,則會在 GNSS 引擎中刪除時間參考。 這可能會導致 GNSS 引擎再次要求插入。

- 如果指定 GNSS_AGNSS_PositionInjection ,則會在 GNSS 引擎中刪除粗略的位置參考。 這可能會導致 GNSS 引擎再次要求粗略的位置插入。

- 如果指定 了GNSS_AGNSS_BlobInjection ,則會在 GNSS 引擎中刪除從衛星取得的暫時性,以及插入的任何協助 Blob。 這可能會導致 GNSS 引擎再次要求協助 Blob。

強烈建議針對測試目的支援此命令,即使未從OS位置平臺取得協助數據也一樣。
GNSS_SetSuplVersion
此命令會設定行動電信業者想要支援的 SUPL 版本。 命令數據包含 GNSS_SUPL_VERSION 結構的值,其中包含行動操作員所指示的主要和次要 SUPL 版本。

SUPL 用戶端應該使用 SUPL 版本,如 OMA SUPL 標準中所指定,摘要如下:

- 針對網路起始的案例,從 H-SLP 或 E-SLP 到 SET 的 SUPL INIT 訊息會攜帶預期的 SUPL 主要和次要版本 M1.m1, (版本參數中 SLP) 支援的最高版本。 SUPL INIT 訊息也會包含最小 SUPL 主要版本號碼 M2,在最低版本參數中,SET 可以接續會話。 M2 的值將取決於預期的 SUPL 服務,例如,單一位置修正 M2 可能是其中一個;針對觸發的位置 M2,可能是兩個。 只要 SET 使用 M2 與 M1 之間的 SUPL 主要版本,就可以在 SLP 與 SET 之間進行 SUPL 會話。 如果 SET 支援 M2 與 M1 之間的主要 SUPL 版本 M (,則 SET 會正常繼續 SUPL 會話,例如 M2 ≤ M ≤ M1) ,並指出下一個訊息 (中此主要版本和支援的次要版本 m,例如,隱含在訊息) 的版本參數中。

- 針對 SET 起始的 SUPL 工作階段,SET 的初始 SUPL 訊息會隱含在版本參數中隱含) 支援的 SUPL 主要和次要版本 M1.m1 (。 如果 H-SLP 支援相同的主要版本 M1,則 H-SLP 會繼續會話,否則會傳送 SUPL END 並終止會話。
GNSS_SetNMEALogging
此命令會設定 NMEA 記錄的狀態。

此命令會導致 GNSS 驅動程式透過 NMEA 字串啟動/停止提供資料修正資訊。 GNSS 驅動程式必須繼續在 GNSS_FIXDATA 結構中提供修正。

參數是具有下列值的 DWORD

- GNSS_NMEALOGGING_NONE (0x00)
- GNSS_NMEALOGGING_ALL (0xFF)

此命令的預設值不是 NMEA 記錄 (GNSS_NMEALOGGING_NONE) 。

此命令不應該在系統重新啟動時保存。

已引進此命令以支援 OEM 測試。

位置架構或 Microsoft 測試工具不會使用此命令。
GNSS_SetUplServerAccessInterval
此命令會將要求之間的最短時間設定為協助位置,以防止服務多載。 時間間隔是以秒為單位指定。

如果行動操作員需要此設定,行動操作員可以使用設定服務提供者來調整此設定。 如果不支援此參數,則可以忽略 ,但 SUPL 組態命令不得失敗。
GNSS_SetNiTimeoutInterval
此命令會設定裝置在回應執行預設動作的 NI 要求之前,必須等候使用者輸入的時間。 時間間隔是以秒為單位指定,預設值為35秒。 此逾時比操作系統用來等候用戶回應的逾時還要大 5 秒,而且在操作系統未響應的情況下,只是失敗。

此命令僅適用於要求使用者驗證的網路起始要求。 行動電信業者可以使用設定服務提供者來覆寫作業系統的預設值。 在這種情況下,上述指定的預設值應該由電信業者所提供的值取代。
GNSS_ResetGeofencesTracking
此命令會重設地理柵欄追蹤作業。 GNSS 驅動程式必須從 GNSS 引擎刪除所有地理柵欄、停止地理柵欄追蹤,以及停止監視訊號狀況。 只有在 HLOS 建立一或多個新的地理柵欄時,地理柵欄追蹤作業才會如往常一樣開始。
GNSS_SetSuplVersion2
此命令會設定 GNSS 驅動程式的 SUPL 2 版本。
GNSS_CustomCommand
自定義 IHV 特定 GNSS 命令的範圍:0x0100 – 0x01FF。

規格需求

需求
標頭 gnssdriver.h