我有一个USB/CAN适配器,来自lsusb:
OpenMoko,Inc. Geschwister Schneider CAN适配器
它从ip addr提供了一个套接字接口:
5: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP group default qlen 10 link/can 总线上还有其他设备可以连续地发送数据。如果我重新启动我的PC,我将无法再发送/接收数据,因为我得到了以下错误:
没有可用的缓冲区
我想,当设备与PC“断开”时(因为它正在重新启动,但仍在供电),内部缓冲区就会被填满。
我能发出命令清除缓冲区吗?
发布于 2022-07-15 18:38:20
我相信python-can库提供了一种解决方案。
https://buildmedia.readthedocs.org/media/pdf/python-can/develop/python-can.pdf
Python库为Python提供了Controller网络支持,为不同的硬件设备提供了通用的抽象,并为在CAN总线上发送和接收消息提供了一套实用程序。
这里提供的功能之一是flush_tx_buffer()
flush_tx_buffer()丢弃可能在输出缓冲区(S)中排队的所有消息。
该库可以从不同的位置下载,包括从https://github.com/hardbyte/python-can的github repo下载。
https://unix.stackexchange.com/questions/695926
复制相似问题