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,HAL)