如何 运行 在 Python 上模拟 CAN 消息

How to run a simulation of CAN messages on Python

我目前正在学习如何使用 python 中的库,并且我有一个项目需要我使用 CAN 库 https://python-can.readthedocs.io/en/master/index.html。我想模拟 CAN 消息来测试和创建一个可以将它们转换为可读消息的平台。我似乎无法理解如何从库中获取模拟器。

我不熟悉 python-can 但如果您只想导入模块,这里有一个导入库并发送简单消息的片段(接收它们是另一回事)。您可能希望继续浏览文档以了解捕获消息和处理消息的方法。

import time
import can

bus = can.interface.Bus(interface='virtual', bustype='socketcan', 
                        channel='vcan0', bitrate=500000)

def producer(bus, id):
    for i in range(10):
        msg = can.Message(arbitration_id=0xc0ffee, 
                          data=[id, i, 0, 1, 3, 1, 4, 1], is_extended_id=False)
        try:
            bus.send(msg)
            print("Message sent on {}".format(bus.channel_info))
            time.sleep(1)
        except can.CanError:
            print("Message NOT sent")

producer(bus, 1)