共用方式為


GNSS_DEVICE_CAPABILITY 結構 (gnssdriver.h)

GNSS_DEVICE_CAPABILITY結構可用來判斷基礎 GNSS 引擎的裝置功能。

語法

typedef struct {
  ULONG             Size;
  ULONG             Version;
  BOOL              SupportMultipleFixSessions;
  BOOL              SupportMultipleAppSessions;
  BOOL              RequireAGnssInjection;
  ULONG             AgnssFormatSupported;
  ULONG             AgnssFormatPreferred;
  BOOL              SupportDistanceTracking;
  BOOL              SupportContinuousTracking;
  ULONG             Reserved1;
  BOOL              Reserved2;
  BOOL              Reserved3;
  BOOL              Reserved4;
  BOOL              Reserved5;
  ULONG             GeofencingSupport;
  BOOL              Reserved6;
  BOOL              Reserved7;
  BOOL              SupportCpLocation;
  BOOL              SupportUplV2;
  BOOL              SupportSuplV1;
  BOOL              SupportSuplV2;
  GNSS_SUPL_VERSION SupportedSuplVersion;
  ULONG             MaxGeofencesSupported;
  BOOL              SupportMultipleSuplRootCert;
  ULONG             GnssBreadCrumbPayloadVersion;
  ULONG             MaxGnssBreadCrumbFixes;
  BYTE              Unused[496];
} GNSS_DEVICE_CAPABILITY, *PGNSS_DEVICE_CAPABILITY;

成員

Size

結構大小。

Version

版本號碼。

SupportMultipleFixSessions

指出 GNSS 驅動程式是否原生支援相同類型的多個工作階段 (例如,HLOS) 起始的多個同時距離追蹤會話。 如果為 FALSE,GNSS 配接器會將來自多個 LBS 應用程式的修正工作階段要求多倍倍,以結合成一個符合所有用戶端要求的修正工作階段要求。

如果此功能不存在,驅動程式必須至少支援每個支援的修正會話類型的一個作用中會話。 例如,如果驅動程式支援以距離為基礎的追蹤和單次功能,則必須同時支援一個以距離為基礎的修正會話,以及一次作用中的單次修正會話。

驅動程序必須一律支援修改作用中修正會話類型的會話參數,如此一來,當需要多任務處理新的修正要求時,GNSS 配接器就不需要停止/啟動進行中的修正會話。 在 Windows 10 中,GNSS 配接器不支援在相同類型的 GNSS 驅動程式中起始多個會話。

SupportMultipleAppSessions

指出 GNSS 驅動程式是否原生支援並追蹤來自多個 HLOS 應用程式的要求。 GNSS 驅動程式不得限制同時從多個應用程式呼叫。

TRUE 的值表示驅動程式會持續追蹤不同的 HLOS 應用程式會話、以邏輯方式分割要求、確保來自某個應用程式會話的要求不會影響另一個應用程式會話等等。 例如,它可以分別處理 GNSS 配接器和測試應用程式,並個別回應每個的命令。

FALSE 值表示驅動程式不會區分不同的 HLOS 應用程式會話,並以邏輯方式以全域方式處理所有專案,就像全部都來自單一 HLOS 應用程式會話一樣。

RequireAGnssInjection

指出 GNSS 驅動程式是否需要插入協助數據,以加快 TTFF 的速度。

AgnssFormatSupported

指定位掩碼,其中包含驅動程式可以處理的不同 AGNSS 格式 (GNSS_AGNSSFORMAT_*) 。

#define GNSS_AGNSSFORMAT_XTRA1      0x01
#define GNSS_AGNSSFORMAT_XTRA2      0x02
#define GNSS_AGNSSFORMAT_LTO        0x04
#define GNSS_AGNSSFORMAT_XTRA3      0x08
#define GNSS_AGNSSFORMAT_XTRA3_1    0x10
#define GNSS_AGNSSFORMAT_XTRA3_2    0x20
#define GNSS_AGNSSFORMAT_XTRA_INT   0x40

0x0080 0xFFFF的值會保留給擴充性。

這份清單目前包含一些IHV專屬格式。 當 IHV 或 OEM 決定透過位置平臺取得 GNSS 協助資訊,特別是擴充的暫時資訊時,即可更新清單。

AgnssFormatPreferred

使用與 AgnssFormatSupported 相同的位掩碼指定慣用的 AGNSS 格式。 例如,如果同時支援 XTRA1 和 XTRA2,但 XTRA2 是慣用的格式,則 GNSS 驅動程式會將 AgnssFormatSupported 設定為 0x000C,而 AgnssFormatP 參考為 0x0004。

SupportDistanceTracking

指出 GNSS 驅動程式/引擎是否原生支援以會話特定閾值為基礎的裝置低電量追蹤。 TRUE 值表示驅動程式可以在低電源模式中以原生方式支援此功能,例如,將追蹤卸除至低電源處理器,而不需要啟動應用程式處理器並輪詢移動。

如果 GNSS 驅動程式支援距離追蹤,它就會同時隱含支援其他類型的平行修正會話。 例如,如果距離追蹤會話作用中,也必須允許平行單次,而且必須接受這兩種類型的修正會話。

SupportContinuousTracking

指出 GNSS 驅動程式/引擎是否原生支援裝置的持續低電量追蹤。 TRUE 值表示驅動程式可以在低電源模式中以原生方式支援此功能,例如,將追蹤卸除至低電源處理器,而不需要持續啟動和輪詢應用程式處理器。

如果 GNSS 驅動程式支援連續追蹤,它就會同時隱含支援其他類型的平行修正會話。 例如,單次和連續追蹤可以平行進行。

Reserved1

保留供未來使用。

Reserved2

保留供未來使用。

Reserved3

保留供未來使用。

Reserved4

保留供未來使用。

Reserved5

保留供未來使用。

GeofencingSupport

第 1 版 GNSS 驅動程式必須指出不支援此功能。

第 2 版 GNSS 驅動程式和更新版本可以藉由設定下列位掩碼來指出地理柵欄支援:

#define GNSS_GEOFENCESUPPORT_SUPPORTED     0x01
#define GNSS_GEOFENCESUPPORT_CIRCLE        0x02

GNSS_GEOFENCESUPPORT_SUPPORTED表示 GNSS 引擎支援地理柵欄追蹤。 支援地理柵欄追蹤功能表示它以原生方式、以電源優化的方式完成,並使用 GNSS 引擎中可用的適當混合式定位技術。

GNSS_GEOFENCESUPPORT_CIRCLE表示 GNSS 引擎支援迴圈地理柵欄。

Reserved6

保留供未來使用。

Reserved7

保留供未來使用。

SupportCpLocation

指定是否支援 CP 位置。

SupportUplV2

指定是否支援CDMA的 V2 使用者平面位置。

SupportSuplV1

指定是否支援 SUPL V1。

SupportSuplV2

指定是否支援 SUPL V2。

SupportedSuplVersion

指定 SUPL 用戶端所支援的最新 SUPL 版本。 HLOS 目前不會針對任何驗證目的使用此版本資訊。

MaxGeofencesSupported

指定 GNSS 引擎可以根據平台所設定的條件約束來追蹤地理柵欄數目。 只有在設定 GeofencingSupport 字段時,這個值才會有效。

SupportMultipleSuplRootCert

指定 SUPL 參數。

GnssBreadCrumbPayloadVersion

必須是 BREADCRUMBING_UNSUPPORTED 或 BREADCRUMBING_VERSION_x

MaxGnssBreadCrumbFixes

必須大於或等於 MIN_BREADCRUMBS_SUPPORTED。

Unused[496]

保留供日後使用的填補緩衝區。

備註

這是個別功能支持的清單。 功能是由布爾值或特定屬性定義完善的列舉來表示。

規格需求

需求
標頭 gnssdriver.h (包含 Gnssdriver.h)