清除CAN适配器的套接字缓冲区

清除CAN适配器的套接字缓冲区

我有一个 USB/CAN 适配器,来自lsusb

OpenMoko, Inc. Geschwister 施耐德 CAN 适配器

它提供了一个套接字接口,来自ip addr

5: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP group default qlen 10 link/can 

总线上还有其他设备不断发送数据。如果我重新启动电脑,我将无法再发送/接收数据,因为出现以下错误:

没有可用的缓冲空间

我猜想,当设备与 PC“断开连接”时(因为它正在重新启动,但仍然通电),内部缓冲区已满。

我可以发出命令来清除缓冲区吗?

答案1

我相信 python-can 库提供了一个解决方案

https://buildmedia.readthedocs.org/media/pdf/python-can/develop/python-can.pdf

python-can 库为 Python 提供控制器局域网支持,为不同的硬件设备提供通用抽象,以及一套用于在 CAN 总线上发送和接收消息的实用程序。

那里提供的功能之一是flush_tx_buffer()

刷新_tx_缓冲区()

丢弃可能在输出缓冲区中排队的每条消息。

该库可以从各个位置下载,包括从 github 存储库下载https://github.com/hardbyte/python-can

相关内容