Ошибка «нет свободного места в буфере» при использовании CanSocket (java) на BeagleBoneBlack

У меня проблема с использованием CanSocket на BeagleBoneBlack. Я сам пытался разобраться в гугле и документация по кости бигля, но мне ничего не помогает. Я использую 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-шина: Скорость передачи = 500 кбит / с

BeagleBoneЧерный: ОС = Debian Linux

мой компьютер: ОС = Windows 10 x64

Обновлено: 10 сентября 2018 г., 09:40 CAN-интерфейс: CAN-трансивер TJA1040

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

Не могли бы вы расширить, какое оборудование интерфейса CAN вы используете с BBB? Он не идет с трансивером. Можете ли вы связываться со своим CAN-устройством каким-либо другим способом через BBB?

TBR 09.09.2018 12:04

Привет @TBR, спасибо за ответ. Я отредактировал свой вопрос. Я использую CAN-Transceiver TJA1040 с моим BBB. Я не могу связываться с моим устройством CAN каким-либо другим способом через BBB (например, USB и т. д.). Потому что это простое устройство CAN без других интерфейсов. Связь CAN работает вначале, но через несколько минут я получаю сообщение об ошибке «нет свободного места в буфере», и связь прерывается. Если вы дадите мне совет, в каком направлении смотреть, я был бы очень признателен. С Уважением

Lukas Nothhelfer 10.09.2018 09:39

Я до сих пор не знаю, как это исправить ... Кто-нибудь может мне помочь?

Lukas Nothhelfer 22.10.2018 09:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
557
0

Другие вопросы по теме