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 |