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)