传感器

传感器驱动 API 提供统一的接口,用于读取和配置以具有实际意义的单位测量现实世界物理量的设备,并为其设置事件处理。

传感器种类繁多,既有采用固定比例系数、必须通过轮询读取的简单温度测量设备,也有接收多个传感器的读数,并自行推导出步数、存在检测、朝向等新传感器数据的复杂设备。

支持如此广泛的设备是一项艰巨的任务,传感器 API 力求为这些设备提供统一的接口。

使用传感器

在应用中使用传感器时,了解一些 API 和术语会有所帮助。Zephyr 中的传感器由 传感器通道、传感器属性 和 传感器触发器 组成。属性和触发器可能针对特定设备或通道。

备注

目前,可以通过两种方式使用传感器 API 获取传感器采样数据:一种是稳定且已长期使用的 API 采集与获取,另一种是较新但正在迅速趋于稳定的 API 读取与解码。预计在不久的将来,采集与获取 将被弃用,转而采用 读取与解码。采集与获取 和 读取与解码 对触发器的处理方式完全不同,各自的章节中说明了这些差异。

实现传感器驱动

备注

实现传感器 API 的驱动端需要了解这些 API 的使用方式。请先通读 使用传感器!

实现属性

  • 应以阻塞方式实现属性设置。

  • 如果设备支持,应提供获取和设置通道比例系数的能力。

  • 如果设备支持,应提供获取和设置通道采样率的能力。

实现采集与获取

实现读取与解码

API 参考

Sensor
Sensor emulator backend API