首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python安装rx回调?

如何使用python安装rx回调?
EN

Stack Overflow用户
提问于 2022-07-22 12:55:54
回答 1查看 75关注 0票数 -1

我希望有一个函数来异步接收传入的CANbus帧。我写了以下文章,但有以下几个问题:

代码语言:javascript
复制
    can.rxcallback(0, callback)
AttributeError: module 'can' has no attribute 'rxcallback'

我的代码如下:

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-22 20:02:29

采用直接形式python-can的文档:

代码语言:javascript
复制
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上没有类似于rxcallback或类似的方法。

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

https://stackoverflow.com/questions/73080694

复制
相关文章

相似问题

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