本文主要是介绍dbc转excel和excel转dbc的转换工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 introduction
无论是OEM还是supplier,dbc文件在开发还是测试阶段都是必须的。
然而由于其需要使用vector或者其他工具才能进行编辑,所以某种程度上造成了开发的不便利性。而excel也就成了间接传输dbc内容的工具,但是不管是从excel到dbc还是从dbc到excel,整车成千上万条的数据通过人工一条条的转换,效率低,且易出错。
基于提高生产效率的目的,开发了一个DBC和excel之间的转换工具。
但是由于各家oem给出的excel格式也并非统一,此工具终究不能尽善尽美,只能尽可能的减少人工耗时。
2 architecture
软件工作流程如图所示:
底层定义了两个类:message和signal
结构如下:
MsgID | Message ID | ||||||||||||||||||||||||||||||
MsgName | Message name | ||||||||||||||||||||||||||||||
MsgType | standard/extern | ||||||||||||||||||||||||||||||
Cycletime | Cycle | ||||||||||||||||||||||||||||||
Delaytime | // | ||||||||||||||||||||||||||||||
SendType | // | ||||||||||||||||||||||||||||||
DLC | Data length | ||||||||||||||||||||||||||||||
Transmiter | // | ||||||||||||||||||||||||||||||
Receiver | // | ||||||||||||||||||||||||||||||
Commants | // | ||||||||||||||||||||||||||||||
Signals |
|
DBC2EXCEL
1 定义并实例化List<message>
2 按行读入dbc文件内容,同时解析每行内容并添加至list<message>相关属性
3 完成读入之后,就已经将dbc相关内容变成了一个list,(由于dbc涉及到很多属性,目前工具只针对上述存在的属性值进行解析)
4 选在保存excel的目录,启动生成excel步骤
5 工具首先打开 excel 模板,如图
6 便利list<message>内的每一条message,并根据表格定义的字段名,将相应每条message的属性值添加到excel里面;
7 保存excel;
8 DONE!
工具界面如图
1 press loaddbc button , select a dbc file
2 press dbc2excel, select a folder to save the excel which need to be defined a name
3 you will see the progress from the status bar and progressbar
4 after completing the task, press openexcel button, the file generated will be open
EXCEL2DBC
- 定义并实例化List<message>
- 加载excel文件
为尽可能适应大多数excel定义的数据格式,设计如图,右侧列表定义了将要导入的excel,对于相关字段定义在哪一列进行说明。打开默认值为上面模板中的定义。用户可以修改
- 操作步骤与dbc2excel类似。
- 完成后点击opendbc将会在richtextbox内直接显示dbc文件内容。
Appendix
目前工具限制非常多,bug也很多,但基于当前手上的demo测试,双向打通,如果严格按照规范来,应该会省很多时间。
1 excel2dbc时,数据行必须从第三行开始
2 message和signal的格式如模板,前一行是message后面是该message下的signals(看了几个oem的excel大致都会这样操作)
3 关键字段一定要指定清楚,如message ID等,如果没有这些基本信息也不会生成正确的dbc。
- Byterorder必须是Motorola或者是Intel(dbceditor里面也是这么定义的)
- Valuetype必须是Unsigned 或者是signed
- Valuetable是 “xx空格引号yy引号空格xx引号……”dbc里面的格式,这个不好做t统一,xx是10进制,yy为定义名称
- Dbc2excel就相对简单了,生成的都是按照模板来的,并且不能改变模板…
更新版本0515--支持29bitsID(GitHub)
综合留言反馈:不响应的问题,可能有很多,1,缺少excel模板,这个可以在github上下载放到exe目录里,2,dbc文件没有解析成功,这个可能是程序兼容性不好的原因,3 .net环境没有搭建,建议安装4.5以上版本;4 电脑office有关?不确定
我的运行环境是office365,net4.5.1,win10.
最近很忙已经无暇顾及这个应用了。代码也很乱,不拿出来献丑了...,能用则用,用不了,小生也爱莫能助了...sorry!
如果发现不可救bug,大家可以留言哦...
Ending
这篇关于dbc转excel和excel转dbc的转换工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!