传感器属性

传感器和位置平台定义用于标识传感器属性的常量。 传感器制造商还可以定义自己的属性。

平台定义传感器属性的以下 PROPERTYKEY 值。 除非另有说明,否则这些属性是只读的。

每个平台定义的传感器属性 PROPERTYKEY 都基于名为 SENSOR_PROPERTY_COMMON_GUID的通用 GUID:{7F8383EC-D3EC-495C-A8CF-B8BBE85C2920}。

重要

请勿使用此基值来定义自己的属性键。

客户端应用程序可以指定指定为读/写的属性的值。 指定为静态的属性的值不得随时间而更改。 传感器必须支持指定为必需属性。

属性键名称和 PID 类型 说明
SENSOR_PROPERTY_ACCURACY
(PID = 17)
VT_UNKNOWN 只读。 包含传感器数据类型名称及其关联准确性的 IPortableDeviceValues 对象。 准确性值表示与 true 值可能的变化。 准确度值使用与数据字段相同的单位表示,除非另有说明。
SENSOR_PROPERTY_CHANGE_SENSITIVITY
(PID = 14)
VT_UNKNOWN 读/写。 包含传感器数据类型名称及其关联的更改敏感度值的 IPortableDeviceValues 对象。 更改敏感度值提供有关引发SENSOR_EVENT_DATA_UPDATED事件之前数据字段应更改的量的请求。

敏感度值使用与数据字段相同的单位表示,除非另有说明。

对于某些传感器,更改敏感度被解释为实际值。 例如,SENSOR_DATA_TYPE_TEMPERATURE_CELSIUS的更改敏感度值为 2 表示正负 2 摄氏度的敏感度。

对于其他传感器,例如环境光传感器 (ALS) ,更改敏感度被解释为百分比。 因此,SENSOR_DATA_TYPE_LIGHT_LEVEL_LUX的更改敏感度为 2 表示 LUX 的正负 2%。

可以设置此值以请求特定的更改敏感度,但多个应用程序可能使用同一传感器。 因此,传感器根据其内部逻辑确定真正的更改敏感度。 例如,传感器可能始终使用任何应用程序请求的最小更改敏感度。

如果应用程序将此属性设置为VT_NULL,则设备驱动程序应将SENSOR_PROPERTY_CHANGE_SENSITIVITY重置为其默认值。
SENSOR_PROPERTY_CONNECTION_TYPE
(PID = 11)
VT_UI4 只读。 包含当前连接类型的 SensorConnectionType 值。
SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL
(PID = 13)
VT_UI4 读/写。 传感器数据报告生成的当前运行时间(以毫秒为单位)。

将值设置为零会指示驱动程序返回:默认报告间隔或最小报告间隔。 如果只有一个客户端连接,驱动程序应返回默认报告间隔。 如果连接了多个客户端,驱动程序应返回这些客户端请求的最小间隔。

应用程序可以设置此值以请求特定的报告间隔,但多个应用程序可能使用相同的驱动程序。 因此,驱动程序根据内部逻辑确定真正的报告间隔。 例如,驱动程序可能始终使用任何调用方请求的最短报告间隔。

有关如何使用此属性的示例,请参阅 使用传感器 API 事件
SENSOR_PROPERTY_DESCRIPTION
(PID = 10)
VT_LPWSTR 只读。 传感器说明字符串。
SENSOR_PROPERTY_DEVICE_PATH
(PID = 15)
VT_LPWSTR 只读。 唯一标识与传感器关联的设备实例。 可以使用此属性来确定设备是否包含多个传感器。

设备驱动程序不必支持此属性,因为平台在不查询驱动程序的情况下向应用程序提供此值。
SENSOR_PROPERTY_FRIENDLY_NAME
(PID = 9)
VT_LPWSTR 只读。 必需,静态。 设备的友好名称。
SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE
(PID = 16)
VT_VECTOR |VT_UI1 只读。 一个计数数组,其中包含提供环境光级别和偏移量之间的映射的值对。 这些值以百分比表示。 Windows 中的自适应亮度功能将这些值应用于用户的当前显示亮度首选项。

向量类型的数据始终序列化为VT_UI1 (由无符号的 1 字节字符) 数组。 此属性实际上包含每个值作为 4 字节无符号整数 (VT_UI4) 。 有关使用数组的信息,请参阅 检索矢量类型
SENSOR_PROPERTY_LOCATION_DESIRED_ACCURACY
(PID = 19)
VT_UI4 读/写。 LOCATION_DESIRED_ACCURACY 枚举中的一个值,该值指示客户端应用程序请求的准确性处理的类型。

LOCATION_DESIRED_ACCURACY_DEFAULT (0) 指示传感器应使用可优化电源使用和其他成本考虑的准确度。

LOCATION_DESIRED_ACCURACY_HIGH (1) 指示传感器应尽可能提供最准确的报告。 这包括使用可能收费的服务或消耗更高级别的电池电量或连接带宽。
SENSOR_PROPERTY_MANUFACTURER
(PID = 6)
VT_LPWSTR 只读。 必需,静态。 制作者类的名称。
SENSOR_PROPERTY_MIN_REPORT_INTERVAL
(PID = 12)
VT_UI4 只读。 必需,静态。 硬件支持的传感器数据报告生成的最小间隔(以毫秒为单位)。
SENSOR_PROPERTY_MODEL
(PID = 7)
VT_LPWSTR 只读。 必需,静态。 传感器模型名称。
SENSOR_PROPERTY_PERSISTENT_UNIQUE_ID
(PID = 5)
VT_CLSID 只读。 必需,静态。 标识传感器的 GUID。 对于设备上的每个传感器,或者对于计算机上枚举的相同型号的设备,此值必须是唯一的。 此属性包含通过调用 ISensor::GetID 获取的相同值。
SENSOR_PROPERTY_RANGE_MAXIMUM
(PID = 21)
VT_UNKNOWN 只读。 包含传感器数据字段名称及其关联的最大值的 IPortableDeviceValues 对象。
SENSOR_PROPERTY_RANGE_MINIMUM
(PID = 20)
VT_UNKNOWN 只读。 包含传感器数据字段名称及其关联的最小值的 IPortableDeviceValues 对象。
SENSOR_PROPERTY_RESOLUTION
(PID = 18)
VT_UNKNOWN 只读。 包含传感器数据字段名称及其关联分辨率的 IPortableDeviceValues 对象。 分辨率值表示数据字段中更改的敏感度。

分辨率值使用与数据字段相同的单位表示,除非另有说明。
SENSOR_PROPERTY_SERIAL_NUMBER
(PID = 8)
VT_LPWSTR 只读。 必需,静态。 传感器序列号。
SENSOR_PROPERTY_STATE
(PID = 3)
VT_UI4 只读。 必需。

包含当前传感器状态的 SensorState 值。

注意 若要更新此属性,请通过调用 ISensorClassExtension::P ostStateChange 引发状态更改事件。

SENSOR_PROPERTY_TURN_ON_OFF_NMEA
(PID = 3)
VT_UI4 读/写。 如果为 TRUE,则数据报表中将包含 NMEA 句子。 如果为 False,则不包括 NMEA 句子。
SENSOR_PROPERTY_TYPE
(PID = 2)
VT_CLSID 只读。 必需,静态。 标识传感器类型的 GUID 。 平台定义的传感器类型在 Sensors.h 中定义。

以下 Windows 可移植设备 (WPD) 属性必须受所有传感器支持。

属性键 类型 说明
WPD_FUNCTIONAL_OBJECT_CATEGORY VT_CLSID 只读。 必需,静态。 定义传感器类别。

要求

   
最低受支持的客户端 Windows 7
最低受支持的服务器 无受支持的版本
标头 sensors.h

另请参阅