首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在向量硬件上使用python-can库在CAN FD上发送长消息

在向量硬件上使用python-can库在CAN FD上发送长消息
EN

Stack Overflow用户
提问于 2019-05-23 22:59:31
回答 1查看 2.3K关注 0票数 0

我正在尝试在CAN FD上发送一条消息,该消息很长(DLC=70),但没有成功。我已成功发送短消息(DLC=8)

我使用python-can包设置了总线,如下所示:

代码语言:javascript
运行
复制
can.interface.Bus(bustype='vector', app_name='CANoe', channel=[0], bitrate=500000, data_bitrate=2000000, fd=True)

只要消息很短,一切都可以正常工作。

来自CANoe的日志文件显示,除了前8位之外,没有写入任何内容。我真的很感激在这件事上的任何帮助。如果问题更清晰更详细,一定要让我知道

这些是我试图发送的信息

代码语言:javascript
运行
复制
    msg6 = can.Message(arbitration_id=0x74A, dlc=64,   data=messagedata1,  
    extended_id=False)
    task6 = bus.send(msg6)
    time.sleep(5)
    msg7 = can.Message(arbitration_id=0x74A, dlc=9,  data=trailingbits,  
    extended_id=False)
    task7 = bus.send(msg7)
    time.sleep(5)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-24 17:23:41

您已经在CAN总线的设置中指出它是CAN-FD,但您还需要通过设置is_fd=True将其包含在您构建的消息中。

因此,不是

代码语言:javascript
运行
复制
msg6 = can.Message(arbitration_id=0x74A, dlc=15, data=messagedata1, extended_id=False)
task6 = bus.send(msg6)

time.sleep(5)

msg7 = can.Message(arbitration_id=0x74A, dlc=9, data=trailingbits, extended_id=False)
task7 = bus.send(msg7)

time.sleep(5)

你能试一下吗?

代码语言:javascript
运行
复制
msg6 = can.Message(arbitration_id=0x74A, dlc=15, data=messagedata1, is_fd=True, extended_id=False)
task6 = bus.send(msg6)

time.sleep(5)

msg7 = can.Message(arbitration_id=0x74A, dlc=9, data=trailingbits, is_fd=True, extended_id=False)
task7 = bus.send(msg7)

time.sleep(5)

作为参考,请看3.3节。python-can documentation的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56278042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档