受限于python版本,无法使用canmatrix等库
于是采用excel转字符串,输出到.dbc文档的方式实现
DBC信息内容参见 DBC系列之DBC格式与属性说明[1]-CSDN博客
遇到的问题:
1、报文的DLC范围被限制为0~8,超限的报文数据都会报错
解决办法: 以文本文档方式打开dbc文档,添加关键字段
BA_DEF_ "BusType" STRING ;
BA_DEF_DEF_ "BusType" "";
'BA_ "BusType" "CAN FD";
效果:使用cnadb打开dbc文档,双击DLC超出限制的报文,可以看到报文类型可以选择CANFD,
DLC范围扩展为0~64
2、candb无法自主识别CAN和CANFD,需要手动修改
待解决
3、查看报文layout,发现信号跨行时会向上换行
发现是报文类型所限,Motorola(大端)类型的报文信号跨行会向上换行
例1:报文类型:Motorola
报文起始位:10
报文长度 :10
占据 10~15,0~3共10位
例2:报文类型:Intel
报文起始位:10
报文长度:10
占据 10~15,16~19共10位
关于Motorola_lsp,Motorola_msp,Intel详见:
Motorola_MSB_LSB_motorola lsb-CSDN博客
CAN 报文字节排列顺序(Intel、Motorola_LSB、Motorola_MSB)_motorola排序-CSDN博客
标签:10,Motorola,BA,记录,dbc,Excel,DBC,报文 From: https://blog.csdn.net/m0_59615327/article/details/142514066