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

관련 정보