我正在尝试在CAN FD上发送一条消息,该消息很长(DLC=70),但没有成功。我已成功发送短消息(DLC=8)
我使用python-can包设置了总线,如下所示:
can.interface.Bus(bustype='vector', app_name='CANoe', channel=[0], bitrate=500000, data_bitrate=2000000, fd=True)
只要消息很短,一切都可以正常工作。
来自CANoe的日志文件显示,除了前8位之外,没有写入任何内容。我真的很感激在这件事上的任何帮助。如果问题更清晰更详细,一定要让我知道
这些是我试图发送的信息
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)
发布于 2019-05-24 17:23:41
您已经在CAN总线的设置中指出它是CAN-FD,但您还需要通过设置is_fd=True
将其包含在您构建的消息中。
因此,不是
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)
你能试一下吗?
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的。
https://stackoverflow.com/questions/56278042
复制相似问题