前言:
在做工程机械CAN协议相关的软件开发与调试时,经常接触到DBC的使用,可以在CAN分析仪中加载DBC文件从而快速查看某条CAN报文或信号的含义,以及使用图形化的调试。
而编辑DBC文件,正常是用CANDB++来一条条添加,比较费时费力。其实可以直接使用文本编辑器打开dbc文件,通过复制粘贴以及修改的方法快速添加报文和信号。
很多文本编辑器都能打开dbc文件,但是比如记事本等是没有关键字高亮显示的功能的,因此最好是用notepad++和VScode,由于我本身就安装了VScode。所以我就用VScode来实现。
VScode需要安装一个插件,在插件搜索栏中输入“DBC”,第一个就是DBC language Syntax,安装即可。实际使用发现能自动高亮,并且某些错误还能自动波浪线提醒。还比较好用。
搜索了一下,目前网上的资料较少,还是自己测试整理后分享给大家吧。
一、创建一个基础的DBC文件。
1)这里还是得用CANDB++,我直接用的1939模板。

2)dbc文件中随意输入1个message和2个信号,并将信号挂在到message中

二、用文本编辑器修改
2.1 vscode打开保存的DBC文件:
VERSION ""
NS_ :
NS_DESC_
CM_
BA_DEF_
BA_
VAL_
CAT_DEF_
CAT_
FILTER
BA_DEF_DEF_
EV_DATA_
ENVVAR_DATA_
SGTYPE_
SGTYPE_VAL_
BA_DEF_SGTYPE_
BA_SGTYPE_
SIG_TYPE_REF_
VAL_TABLE_
SIG_GROUP_
SIG_VALTYPE_
SIGTYPE_VALTYPE_
BO_TX_BU_
BA_DEF_REL_
BA_REL_
BA_DEF_DEF_REL_
BU_SG_REL_
BU_EV_REL_
BU_BO_REL_
SG_MUL_VAL_
BS_:
BU_:
BO_ 2364539904 Engin_state: 8 Vector__XXX
SG_ Engin_MA : 20|12@1+ (1,-2000) [-2000|63535] "mA" Vector__XXX
SG_ Engin_RPM : 8|8@1+ (1,0) [0|0] "rpm" Vector__XXX
BA_DEF_ BO_ "TpJ1939VarDlc" ENUM "No","Yes";
BA_DEF_ SG_ "SigType" ENUM "Default","Range","RangeSigned","ASCII","Discrete","Control","ReferencePGN","DTC","StringDelimiter","StringLength","StringLen

最低0.47元/天 解锁文章
996

被折叠的 条评论
为什么被折叠?



