共用方式為


GNSS_DRIVERCOMMAND_TYPE列舉 (gnssdriver.h)

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

語法

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-> Enabled

- GNSS_SetLocationServiceEnabled 設為 FALSE=0-> Disabled

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

相關聯的命令資料是 BOOL

- GNSS_SetLocationNIRequestAllowed 設為 TRUE=1-> Allow

- 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 (隱含在 version 參數中)。 如果 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