Ошибка «нет доступного буферного пространства» при использовании CanSocket (java) на BeagleBoneBlack - PullRequest
0 голосов
/ 07 сентября 2018

У меня проблема с использованием CanSocket на BeagleBoneBlack.Я пытался выяснить это самостоятельно, используя документацию по Google и Beagle Bone, но мне ничего не помогло.Я использую BeagleBoneBlack в качестве переводчика, который переводит сообщения между жестким диском и моим компьютером.На следующем рисунке показаны мои настройки:

| CAN устройство | <---------> | BeagleBoneBlack | <---------> | мой компьютер |

Программное обеспечение переводчика на BeagleBoneBlack написано на Java с использованием entropia / libsocket-can-java из github (см. https://github.com/entropia/libsocket-can-java). Иногда я получаю сообщение об ошибке «Нет доступного места в буфере» на BeagleBoneBlackв методе записи «CanSocket», даже когда я устанавливаю параметр «txqueuelen» равным 1000 или даже выше (например, 100000 или 1000000). Я использовал для этого команду «sudo ifconfig can0 txqueuelen 1000». Мне интересно об этом, потому чтозагрузка шины в этом случае составляет всего 14% (я контролировал это с помощью CANalyzer).

Я был бы очень признателен за помощь, так как для меня очень важно найти решение. Ниже приведена некоторая информация, которая может вам понадобиться.

CAN-Bus: скорость передачи = 500 кбит / с

BeagleBoneBlack: ОС = Debian Linux

мой ПК: ОС = Windows 10 x64

РЕДАКТИРОВАТЬ: 10 сентября 2018 года, 09: 40 CAN-интерфейс: CAN-трансивер TJA1040

Поскольку я не знаю точно, какую информацию я должен здесь предоставить, я прошу вас просто спросить, и я постараюсь получить их.

...