【智路】智路OS 设备接入开发

https://airos-edge.readthedocs.io/zh/latest/dev_guide/device_dev.html

1 总览

1.1 功能

智路OS设备接入层包含信号机、RSU、Camera、Lidar设备的接入,接入模块的主要功能包括:

  • 基于硬件厂商提供的设备SDK或规定的通信协议进行通信,获取数据或者写入数据。
  • 将从设备中获取到的数据转换为智路OS规定的标准protobuf格式或者数据并调用框架提供的回调写入
  • 将智路OS规定的标准protobuf格式数据转换为设备规定的数据格式并发送给设备

1.2 设计理念

车路协同系统包含多种传感器及通信设备,例如信号机、枪机、鱼眼相机、激光雷达、毫米波雷达、RSU等,各类设备与路侧边缘计算单元(RSCU)之间的协议并没有一个统一的接入标准。同种设备不同厂商可能支持不同的标准协议或者私有协议,开发者需要对各类厂商设备进行重度适配,针对标准协议的理解各厂商也存在偏差,导致数据表现存在差异。

为降低开发门槛,支持生态繁荣,智路OS定义了标准的路侧设备接入架构,为开发者提供了:

  • 统一的设备接入标准协议,可自定义设备接入
  • 业内广泛使用的标准接入实现,便捷复用
  • 低耦合设计原则,显著简化开发、切换和升级过程

设备接入框架

设备接入框架基于抽象工厂设计模式实现,自定义设备接入实现相关流程如下所示:

  1. 引用设备的基类头文件,该文件定义了设备的抽象基类。
  2. 继承设备基类,实现自定义设备的Init等接口
  3. 引用设备的工厂头文件,该文件定义了设备接入智路OS的接口
  4. 在自定义设备实现的源文件中使用V2XOS_XXXX_REG_FACTORY接口注册设备
  5. 在自定义实现的函数中将从设备获取的数据使用CallBack发送到智路OS框架
  6. 编译时链接系统库libairos_device_pb.so和libairos_base.so
  7. 将编译产出和产出描述打包并进行安装
  8. 完成安装后,智路OS框架通过动态加载,调用开发者的设备具体实现

智路OS提供了包管理工具简化了以上开发流程,可以实现更便捷的开发

2 类说明

2.1 RSU

RSUDevice

RSU设备接入基类,开发者需要继承该类并实现对应的接口,由智路OS框架加载模块后调用。

构造函数

RSUDevice(const RSUCallBack& cb)

创建一个RSU设备接入对象,传入智路OS提供的回调,RSU设备接入可使用回调发送规定格式的数据

Init

bool Init(const std::string& conf_file)

初始化接口,在RSU设备接入初始化时调用,框架在描述文件中读取配置文件路径后传入接口,默认为绝对路径。

name value describe
参数 conf_file 框架传入的配置文件绝对路径,在开发者具体实现中读取
返回值 bool 初始化正常时返回true,初始化失败时返回false

Start

void Start()

应用主逻辑入口,理论上内部为循环数据处理

WriteToDevice

void WriteToDevice( const std::shared_ptr<const RSUData>& re_proto)

将消息写入RSU设备的接口,经过ASN.1编码后的数据通过该接口写入,最终通过RSU发送

GetState

RSUDeviceState GetState()

获取RSU设备状态接口,由上层调用,判断RSU设备状态,设备状态定义如下

enum class RSUDeviceState {
  UNKNOWN,  // 未知
  NORMAL,   // 正常
  OFFLINE   // 离线
};
RSU数据
message RSUData {
  required RSUDataType type = 1;    // 数据类型
  required bytes data = 2;          // ASN编码数据
  required uint64 time_stamp = 3;   // UNIX时间戳,精确到ms
  optional uint32 sequence_num = 4; // 消息序列码
  optional MessageVersion version = 5; // 版本
}

智路OS规定的写入RSU接入模块和RSU模块输出的数据格式,开发者在继承抽象基类RSUDevice后,调用内部的RSUCallBack将数据发送给智路OS框架,数据为从RSU接收的数据,例如BSM&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值