首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭python-can总线

关闭python-can总线
EN

Stack Overflow用户
提问于 2022-08-17 09:49:48
回答 1查看 218关注 0票数 1

我使用python-can发送这样的CAN消息:

代码语言:javascript
复制
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)

这个脚本工作正常,但是当我第二次运行它时,它会导致一个错误,因为总线仍然是从上一次打开的。我想我需要这样的东西在我的剧本结尾:

代码语言:javascript
复制
bus2.close()

但是,这是不存在的,我似乎无法在python-can文档中找到正确的方法。我怎样才能适当地关闭公共汽车,以便下次能够再次使用它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-17 09:57:14

Bus对象应该在with语句中使用,以便正确关闭。

代码语言:javascript
复制
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)

您应该能够在这个打开的块内发送更多的消息,但是在这个块之后,总线将被正确地关闭。

看医生

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

https://stackoverflow.com/questions/73386339

复制
相关文章

相似问题

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