0

Стабильная альтернатива RXTX

1

После использования RXTX в ряде различных проектов, я столкнулся с множеством неприятных несоответствий и проблем, которые, похоже, можно отнести к ошибкам в библиотеке. Я наблюдал такие проблемы, как взаимные блокировки, условия гонки и потоки мониторов внутри библиотеки RXTX, которые остаются открытыми и мешают завершению программы, даже несмотря на то, что все используемые порты были закрыты! Обновление до последней "нестабильной" версии немного помогло, но всё равно она далека от надежности, и активность над проектом, похоже, в настоящее время довольно низкая.

Однако поиск бесплатных кросс-платформенных альтернатив RXTX не дает много результатов.

Есть ли какая-то другая библиотека, которую кто-то пробовал с большим успехом? Мне не нужна поддержка параллельных портов, только последовательные, и она не обязательно должна быть совместима с RXTX или API javax.comm.

4 ответ(ов)

0

Одной из проблем, с которой я столкнулся при использовании RXTX, была задержка при закрытии порта. Проверяя конфигурацию порта с помощью setserial, я обнаружил параметр closing_delay=3000. Это означает, что порт закрывается через 3 секунды после вызова метода close(). Попытка изменить значение closing_delay на любое другое игнорируется библиотекой RXTX, которая настоятельно требует задержку в 3 секунды.

В результате библиотека JSSC показала себя с хорошей стороны и удовлетворила наши требования.

0

Библиотека Serialio стоит $49 за платформу/разработчика, что предоставляет неограниченное распределение в неограниченном количестве приложений, так что это не так уж и дорого. Библиотека для Mac была стабильной и надежной для нас в приложении с невысокой нагрузкой, а доступность и совместимость были на высоком уровне на различных платформах Mac и версиях OS/X.

0

Вы используете socat, настроенный для обслуживания сокета для последовательного порта. Недостаток в том, что такие параметры как скорость передачи (baud rate) задаются при вызове socat, и их нельзя легко изменить из вашей программы. С другой стороны, у вас есть возможность подключаться через сеть, достаточно лишь поменять IP-адрес для подключения.

0

jSerialComm действительно хорош! Это библиотека для работы с последовательными портами в Java, которая обеспечивает простой и удобный интерфейс для взаимодействия с устройствами через COM-порты. Она поддерживает множество платформ и имеет активное сообщество.

Вы можете ознакомиться с документацией и примерами использования на официальной странице проекта на GitHub. Также полезна вики-страница, где вы найдете дополнительные ресурсы и информацию по установке и настройке библиотеки.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь