微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cantools.database.errors.Error: 标准帧 id 超过 11 位

如何解决cantools.database.errors.Error: 标准帧 id 超过 11 位

我使用 cantools python 包来解码 canbus 消息。我使用了我创建的 dbc 文件进行测试。我复制了一个示例文件。当我使用像 419358976 这样的 can id 时,出现错误。但是对于像 350 这样的小罐 id,它是有效的。对于扩展的帧 ID,cantools 是否会失败?我如何让它工作?

我的扩展id失败的代码如下:

None

错误[0,1,2]

解决方法

我找到了问题的答案。像 419358976 这样的 can id 是一个扩展的 id。因此,为了将该 id 映射到 dbc 文件中的 id,我需要将另一个 32 位十六进制数 8000 0000 添加到十六进制可以 id。然后将该结果十六进制数转换为十进制数并将其用作 dbc 文件中的 id 字段。之后它完美地工作。上面的错误信息消失了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。