嵌入式C语言中CAN报文字节序问题的处理方法( 二 )


3.实际操作问
实际工程中CAN总线协议报文会非常多,如果仅仅靠人工一个一个调整报文顺序,首先时间成本就会很高,更可怕的是这样会增加误操作的概率,会给后面的开发造成非常【不可思议】的问题 。因为高低字节反了,解析出来的数据自然也会有很大的问题 。幸亏懒惰是第一生产力,这种操作通常需要运用自动化工具解决,这里分享下【思想】自制偷懒工具的思路 。

嵌入式C语言中CAN报文字节序问题的处理方法

文章插图
首先需要能够解析dbc文件,读取报文的id,设置报文周期
嵌入式C语言中CAN报文字节序问题的处理方法

文章插图
解析报文矩阵,同时对dbc文件中不存在的空位进行填补,使之成为完整的Block
嵌入式C语言中CAN报文字节序问题的处理方法

文章插图
生成结构体数据的同时,对Block进行划分,这一步主要是为了后面调试核对方便
嵌入式C语言中CAN报文字节序问题的处理方法

文章插图
上图中未被模糊的部分就是自动化工具根据划分的Block结果自动生成的报文数组顺序调整的代码 。