我使用python-can发送这样的CAN消息:
import can
bus2 = can.interface.Bus(bustype='pcan', channel='PCAN_USBBUS1', bitrate=500000)
msg = can.Message(
arbitration_id=0x42, data=[0, 25, 0, 1, 3, 1, 4, 1], is_extended_id=False
)
bus2.send(msg)这个脚本工作正常,但是当我第二次运行它时,它会导致一个错误,因为总线仍然是从上一次打开的。我想我需要这样的东西在我的剧本结尾:
bus2.close()但是,这是不存在的,我似乎无法在python-can文档中找到正确的方法。我怎样才能适当地关闭公共汽车,以便下次能够再次使用它?
发布于 2022-08-17 09:57:14
Bus对象应该在with语句中使用,以便正确关闭。
import can
with can.interface.Bus(bustype='pcan', channel='PCAN_USBBUS1', bitrate=500000) as bus2:
msg = can.Message(arbitration_id=0x42, data=[0, 25, 0, 1, 3, 1, 4, 1], is_extended_id=False)
bus2.send(msg)您应该能够在这个打开的块内发送更多的消息,但是在这个块之后,总线将被正确地关闭。
https://stackoverflow.com/questions/73386339
复制相似问题