光传感器阈值
本主题提供有关光传感器阈值的信息。
下表显示了光传感器的驱动程序的默认阈值。 光传感器的默认间隔为 10 Hz。 有关类型列中显示的类型的详细信息,请参阅 PROPVARIANT 结构。
属性键 | 类型 | 必需/可选 | 默认值 | 说明 |
---|---|---|---|---|
PKEY_SensorData_LightLevel_Lux | VT_R4 | 必需 | 0.25f | 达到阈值所需的最低照度变化量(以照度百分比为单位)。 值为 0.25f 表示照度变化 25%。 |
PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference | VT_R4 | 可选 | 1.0f | 达到阈值所需的最低照度变化量(以照度为单位)。 值 1.0f 表示照度有 1 个照度变化。 注意: 强烈建议在便携式设备上实现此阈值,因为它有助于减少低环境光环境中的电池电量消耗。 |
PKEY_SensorData_LightChromaticityX | VT_R4 | 如果支持颜色,则为必需。 可选,否则为 | 0.01f | 达到阈值所需的 CIE 1931 x 颜色坐标的最小更改量,表示为绝对差。 |
PKEY_SensorData_LightChromaticityY | VT_R4 | 如果支持颜色,则为必需。 可选,否则为 | 0.01f | 达到阈值所需的 CIE 1931 y 颜色坐标的最小更改量,以绝对差表示。 |
PKEY_SensorData_LightTemperature_Kelvins | VT_R4 | 如果支持颜色,则为必需。 可选,否则为 | 50.0f | 达到阈值所需的光温度的最小变化量(以开氏度为单位)。 |
仅当 LUX 值发生更改时,光传感器必须报告新的数据样本。 此建议的报告模型可确保光传感器在完全黑暗、零 (0) LUX 环境中时,不会重复报告新数据样本。
如果未提供PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference,当满足PKEY_SensorData_LightLevel_Lux阈值时,环境光传感器驱动程序必须通过调用 SensorsCxSensorDataReady 向 sensors 类扩展报告示例读取。 PKEY_SensorData_LightLevel_Lux阈值以照度差的百分比表示。 例如,如果此阈值设置为 0.25f,并且向传感器类扩展报告的最后一个样本为 40 勒克斯,则要报告的下一个样本应低于 30 照度或大于 50 照度, (+/-25% 的 40) 。 如果除了PKEY_SensorData_LightLevel_Lux以外还提供了PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference,则环境光传感器必须向传感器类扩展报告样本读数(如果 两个阈值都 满足)。 例如,如果PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference设置为 4.0 lux,PKEY_SensorData_LightLevel_Lux设置为 0.25 (即 25% ) ,并且如果向传感器类扩展报告的最后一个样本读数的值为 4 勒克斯,则限制性最大的阈值是PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference。 因此,要报告的下一个样本读数应为 0 勒克斯或 8 照度。 相比之下,如果PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference设置为 4.0 照度,PKEY_SensorData_LightLevel_Lux设置为 0.25 (即 25%) 但向传感器类扩展报告的最后一个样本读数的值为 40 勒克斯,则限制性最大的阈值是PKEY_SensorData_LightLevel_Lux。 在这种情况下,要报告的下一个示例读数应为 30 照度或 50 照度。 PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference永远不会在没有PKEY_SensorData_LightLevel_Lux的情况下设置。
当传感器驱动程序报告 Chromaticity x 和 Chromaticity y 颜色分量时,环境光传感器驱动程序还必须支持PKEY_SensorData_LightChromaticityX、PKEY_SensorData_LightChromaticityY和PKEY_SensorData_LightTemperature_Kelvins阈值。 当满足PKEY_SensorData_LightChromaticityX、PKEY_SensorData_LightChromaticityY或PKEY_SensorData_LightTemperature_Kelvins阈值时,环境光传感器驱动程序会将样本读取报告给传感器类扩展。
环境光传感器驱动程序必须始终在传感器类扩展调用 EvtSensorStart 回调后立即报告一个样本读数,而不考虑阈值。 此示例称为初始示例读取。
注意
当 IsValid 数据字段发生更改时,环境光传感器驱动程序还必须向传感器类扩展报告样本读取,而不考虑设置的阈值。
当PKEY_SensorData_LightLevel_Lux_Threshold_AbsoluteDifference和PKEY_SensorData_LightLevel_Lux设置为 0.0f 时,驱动程序必须按每个间隔向传感器类扩展报告样本读数。 当PKEY_SensorData_LightChromaticityX 或 PKEY_SensorData_LightChromaticityY 或 PKEY_SensorData_LightTemperature_Kelvins设置为 0.0f 时,驱动程序必须每隔一个间隔向传感器类扩展报告样本读数。 按每个间隔报告传感器样本称为 传感器样本流式处理。
注意
在阈值模式下,不要报告PKEY_SensorData_IsValid设置为 FALSE 的连续样本。 换句话说,在阈值模式下,仅发送PKEY_SensorData_IsValid切换到 FALSE 的第一个示例。