Google为Sensor提供了统一的HAL接口,不同的硬件厂商需要根据该接口来实现并完成具体的硬件抽象层,

Android中Sensor的HAL接口定义在hardware/libhardware/include/hardware/sensors.h

主要包括sensors_vec_t、sensors_event_t、sensors_module_t、sensor_t、sensors_poll_device_t几个结构

一。 传感器类型


二。 sensors_vet_t  矢量传感器的数据

sensors_vec_t结构体用来表示不同传感器的数据,sensors_vec_t定义如下:

sensors_vec_t主要是上传的数据,里面包括一个union结构,包含各种上传数据的一个数据封装,都是三个float


三。sensors_event_t

sensors_event_t主要是以一个事件的形式上传从sensor获取的数据,里面也有一个union,包含的是各种各样的传感器的数据,其中type是sensor的类型,sensor是一个标识


四、sensors_module_t

传感器模块的定义结构体如下

接口的定义实际上是对标准的硬件模块hw_module_t的一个扩展,增加了一个get_sensors_list函数,用于获取传感器的列表。

sensors_module_t是hw_module_t的一个封装,提供一个get_sensors_list获取该平台可提供的所有sensor


五 sensor_t.

sensor_t用来描述一个sensor


六。sensors_poll_device_t

sensors_poll_device_t是hw_device_t的一个封装。提供了3个方法activate、setDelay、poll

Sensor设备结构体sensors_poll_device_t,对标准硬件设备 hw_device_t结构体的扩展,主要完成读取底层数据,并将数据存储在struct sensors_poll_device_t结构体中,poll函数用来获取底层数据,调用时将被阻塞定义如下



activate用来启动和停止sensor

setDelay用来设置延时

poll用来监听sensor上是否有数据


更多相关文章

  1. Android学习--《数据的保存》
  2. AndroidX设计架构MVVM之DataBinding+ViewModel+LiveData
  3. android数据提供者ContentProvider
  4. android读书知识点总结
  5. Activity页面状态保存 持久化
  6. Android学习笔记(十二)——数据存储(SQLite数据库)
  7. 在android里用ExpandableListView实现二层和三层列表源码
  8. android的sqlite数据库中单引号的诡异作用
  9. [置顶] Android(安卓)入门基础(9) ---SharedPreferences

随机推荐

  1. 使用Linux命令cURL实现文件定时上传到ftp
  2. 从0实现基于Linux socket聊天室-实现聊天
  3. 手把手教Linux驱动5-自旋锁、信号量、互
  4. Linux进程基础
  5. Linux I2C内核架构分析,基于三星I2C控制
  6. Linux命令cURL如何访问FTP服务器
  7. 一键获取linux内存、cpu、磁盘IO等信息脚
  8. Ubuntu Linux 安装 .7z 解压和压缩文件
  9. 内核窥探|在kernel中的链表,其他的链表真
  10. Linux wget命令详解