我希望有一个函数来异步接收传入的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)发布于 2022-07-22 20:02:29
采用直接形式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上没有类似于rxcallback或类似的方法。
https://stackoverflow.com/questions/73080694
复制相似问题