[英]How to filter result of CAN bus for IDs with Python-Can and Raspberry
[英]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.