插件化框架为用户屏蔽了HAL层,并提供了Init/Start/Stop/Reset/WriteBack等接口,上层应用通过继承框架提供的接口来实现对接入到插件化框架中的传感器进行控制。
1. 使用限制
接入的传感器硬件接口已经在框架的HAL层进行实现,目前已经支持ETH、UART、SPI、SOCKET_CAN、RAW_SOCKET等
2. 使用示例
在”sensors/example/sensor_plugin”目录下创建对应传感器相关的文件 可参考sensor_plugin_example的目录结构:
新增一个传感器类,继承SensorDrvPlugin类,实现接入传感器需要的方法,注册新增的传感器类 实例代码:
DummySensor 类声明的详细的代码请参考:dummy_sensor.h
注册新增的传感器类以及对应的序列化方法
实现从框架继承的方法 框架提供的接口如下所示,接入新的传感器可以按需实现对应的接口,其中”Init”, “DeInit”,”GetFrameMsg”, “ParseRawData”必须实现。
编写对应的CMakeLists, 以及修改插件化总的CMakeLists DummySensor对应的CMakeLists请参考:CMakeLists.txt 插件化对应的CMakeLists路径:example/sensor_plugin/sensor_plugin_example/CMakeLists.txt
修改框架的全局配置文件 全局配置文件所在路径(config/sensor_center/sensor_global.json) 全局配置文件新增传感器例子,这里以lidar(pandar128)为例:
修改adpater相关配置文件 adapter配置文件的路径(config/sensor_center/adapter/adapter.json) 以下为adapter配置文件的例子:
