canbus .dbc文件转换成protobuf协议格式文件
需要下载将canbus .dbc数据文件转换成protobuf协议格式的.py转换中间件(支持遍历文件夹,批量转换dbc数据文件的功能)的转换中间件Python源码可以自行下载,对于代码使用有什么疑问可以联系我!下载链接如下:
dbc2protobuf Python源码
一、实现思路:
1.转换
使用cantools包解析canbus .dbc文件,parse出文件中的message和signal,
之后主要通过signal对象的unit属性,来区别signal的类型,对应输出为protobuf对应的官方格式中的类型。
2.增加遍历文件夹,批量转换dbc文件功能
使用os.listdir(dbcfiledir) 把dbcfiledir目录下所有的dbc文件名读出来注逐一遍历转换
二、 过程中遇到的问题以及对应解决方法:
-
(1)使用cantools解析出来的enum类型对应value为倒序(4,3,2,1)
解决方案: 使用list实现栈,实现enum按value从大到小输出
-
(2)不同message 中enum中的成员存在名字重复的情况
解决方案: 把成员名使用enum name+下滑线+成员名命名
-
(3)message 中enum中的成员名字中存在"()""/""=“等符号
解决方案: 把对应符号替换成”_"
Surprise!!!
感谢一直看到文章末,为了对大家的支持表示感谢,对本文一键三连加上扫描关注本人公众号即可免费获得下载链接对应的源码!
欢迎大家扫码关注本人公众号:编程复盘与思考随笔
(关注后可以免费获得本人在csdn发布的资源源码)
公众号主要记录编程和刷题时的总结复盘笔记和心得!并且分享读书、工作、生活中的一些思考感悟!
想要组队一起参加阿里天池,kaggle,百度飞浆,科大讯飞等AI相关的比赛的同学可以扫下面的二维码加微信一起讨论学习!