import cantoools
can_db = cantools.database.load_file(path)
上面的代码片段显示错误
"signal_xx"消息"node_xx"重叠
请建议其他方法来解析这个信息。
路径——比;CAN BASE J1939
我不熟悉cantools项目,但是这个消息对我来说似乎很明确。
: signal_xx"消息"node_xx"重叠
表示在DBC中,存在一个名为node_xx
的帧,其中至少有2个信号重叠。这意味着有一个或几个位被多个信号使用。
DBC文件似乎有问题!
您可以从VECTOR下载事实上的标准candb++,而不是是一个免费软件,它可以免费下载。如果信号重叠,该软件应该能够报告一些警告或错误。
您正在正确解析它,但DBC文件本身存在问题。您可以像Robert建议的那样使用candb++(它会自动与任何Vector软件一起安装,如CANalyzer),或者在文本编辑器中打开DBC文件。你要找的是信号重叠的信息。每个信号都有一个起始位和定义的位数,所以在某处会有冲突。