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-> 已启用

- 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 适配器将评估这两个设置的值,并将向 GNSS 驱动程序指示是否允许 NI 请求。

例如,紧急服务或 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 引擎的状态。 发出此命令后,引擎将准备好进行冷启动修复:

- 将删除所有协助数据。

- 年鉴将保留。

- 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 客户端应使用 OMA SUPL 标准中指定的 SUPL 版本,汇总如下:

- 对于网络启动的方案,从 H-SLP 或 E-SLP 到 SET 的 SUPL INIT 消息携带预期的 SUPL 主版本和次要版本 M1.m1 (通常为版本参数中 SLP) 支持的最高版本。 SUPL INIT 消息还携带最小 SUPL 主版本号 M2,SET 可以在最低版本参数中继续执行会话。 M2 的值将取决于预期的 SUPL 服务 - 例如,对于单个位置,修复 M2 可以是 1;触发位置 M2 的 可能为 2。 只要 SET 使用 M2 和 M1 之间的 SUPL 主版本,就可以在 SLP 和 SET 之间执行 SUPL 会话。 如果 SET 支持 M2 和 M1 (之间的主版本 M(例如,M2 ≤ M ≤ M1) ),并且指示此主版本和下一条消息 (支持的次要版本 m,例如,在消息) 的版本参数中隐式指示此主版本和受支持的次要版本 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。

要求

要求
Header gnssdriver.h