概要
用python批量读取can(Controller Area Network)报文,并按照定义好的协议自动解析存储数据,序列化后的数据方便跨平台传输和使用,能够极大提高数据回灌的效率。
整体架构流程
1.python安装protoc库
2.编写protobuf协议文件(.proto文件)
3.将.proto文件生成python文件(.py文件)
4.编写python代码读取can报文数据、按protobuf协议解析数据。
5.序列化数据生成二进制文件(.bin)
6.批量处理数据,并自动保存在指定文件夹。
7.反序列化可以查看解析后的数据。
技术细节
1.protobuf协议部分代码展示:
2.protobuf协议生成的python文件部分展示:
3.python读取can报文数据、按protobuf协议解析数据代码部分展示:
python读取can报文需要先安装相应的库cantools。
4.序列化(SerializeToString)和反序列化(ParseFromString)
5.反序列化后结果展示:
小结
用python批量处理can报文能极大提高数据回灌的效率,对车辆研发和测试是非常好用的工具。