HAL层,.sensors.h 头文件分析
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上是否有数据
更多相关文章
- Android学习--《数据的保存》
- AndroidX设计架构MVVM之DataBinding+ViewModel+LiveData
- android数据提供者ContentProvider
- android读书知识点总结
- Activity页面状态保存 持久化
- Android学习笔记(十二)——数据存储(SQLite数据库)
- 在android里用ExpandableListView实现二层和三层列表源码
- android的sqlite数据库中单引号的诡异作用
- [置顶] Android(安卓)入门基础(9) ---SharedPreferences