繁体   English   中英

如何使用 python-can 安装 rx 回调?

[英]How to install a rx callback with python-can?

我想要一个函数来异步接收传入的 CANbus 帧。 我写了以下内容,但以下问题:

    can.rxcallback(0, callback)
AttributeError: module 'can' has no attribute 'rxcallback'

我的代码如下:

def reception():
    global count
    data = [0, 0, 0, memoryview(bytearray(8))]

    def callback(bus, reason):
        global count
        count += 1
        bus.recv(0, list=data)
        if reason == 0:
            pass
        elif reason == 1:
            pass  # fifo full
        elif reason == 2:
            # fifo overflow
            raise Exception("fifo overflow")

    can.rxcallback(0, callback)

直接采用 python-can 的文档:

def print_message(msg: can.Message) -> None:
    """Regular callback function. Can also be a coroutine."""
    print(msg)


notifier = can.Notifier(bus, [print_message])
...
notifier.stop()

您创建一个Notifier实例并注册一个侦听器列表。

侦听器是采用can.Message类型参数的函数或Listener的实例。

收到所有消息后,在通知程序上调用stop()


python-can 上没有类似rxcallback或类似的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM