一、上位机主界面介绍
打开上位机后,标题栏的列依次是CANID、报文名称、CAN类型(普通CAN或者CANFD),定义长度(DBC文件定义的),ID编号(按照读取顺序加载的ID编号)、周期(报文循环周期)、计数器(播放CAN数据的帧数)、CAN原始数据。
二、DBC文件加载解析
1、加载DBC文件,浏览需要解析的DBC文件,如下图所示,可以看到所有的ID信息均显示在列表中。
2、点击解析ID的左上角或者双击该行,可以展开子项,其中包括所有的信号,信号行依次为信号变量名、“=解析值”、信号单位、信号Comment信息。
三、CAN数据加载与解析
1、浏览选择ASC文件(目前只支持ASC文件,包括周立功保存的ASC及其他通用的ASC文件),点击回放全部数据,可以一次解析全部数据,界面显示的信号值为每帧报文的最后一帧的数值。
四、生成Excel数据
1、如果想看到某个ID的过程数据,在索引ID中输入需要解析的ID编号,本文输入0,解析ID为46E的报文数据,点击回放消息,播放完毕后该行会标记为玫红色,如下图所示。
2、同时程序运行目录下的ConvertData文件下生成ID为46E的Excel数据文件,数据标题依次为时间、信号名,并包括该条报文中所有的过程信号值,例如,本段数据时长为438S,46E周期为100ms,故该ID总的报文条数为4380左右,如下图所示。
五、技术总结
1、本上位机所用的表格采用第三方控件TreeListView实现,之前用过TreeView编写,但是TreeListView无法显示Listview的标题栏,只有节点信息,且数据更新不便,效率低,采用第三方控件TreeListView,可以只更新CAN原始数据及解析信号值,极大的提高解析效率。
2、针对DBC解析,有的DBC定义信号未按照顺序保存,本软件将DBC信号提取后做了排序,故显示的信号名是有序的,方便人员分析查看。
3、针对ASC格式报文,各家的格式有差异,当前支持周立功保存的ASC及通用ASC格式,目前只有C++的blf文件源码,无C#的blf文件源码,故这一块的解析未做进去。