Связь через последовательный порт с использованием Java и RXTX в Eclipse
Чтобы написать Java-приложение для связи с устройствами с последовательным портом в среде Windows, просмотр в Google, похоже, отвлекает во многих направлениях, а также увлекается некоторыми сторонними библиотеками инструментов, такими как RXTX JavaComm. При попытке с примерами кодов RXTX, используя Eclipse Reference.
Никакие последовательные порты не отображались в выводе, просто пусто
Выход:
Стабильная библиотека
Собственная версия lib = RXTX-2.1-7
Версия Java lib = RXTX-2.1-7
Какую ошибку я сделал?
Дайте мне знать, что этот подход лучше или предложить мне лучшее решение?
Пожалуйста, дайте мне знать альтернативы для этой проблемы, я хочу общаться с устройством через последовательный порт, используя Java, данные будут отправлены с устройства, и они должны быть записаны в файлы.
заранее спасибо
1 ответ
Если связанный пример терпит неудачу, это означает, что RXTX не обнаружил никаких последовательных портов на вашем компьютере. У вас может быть последовательный порт на вашем компьютере, но одна из причин, по которой он не распознается вашей операционной системой, может заключаться в том, что он на самом деле является адаптером последовательного интерфейса к USB и распознается как порт USB.
Если вы работаете в Linux, последовательные порты обычно выглядят так:
ls /dev/ttyS*
выходы:
/dev/ttyS0
/dev/ttyS1
/dev/ttyS2
адаптированный порт может выглядеть так:
/dev/ttyUSB0
Если вы видите какой-либо вывод на вашем последовательном подключенном устройстве (например, POS-принтер или ЖК-дисплей), вы можете проверить его следующим образом:
echo 'hello' > /dev/ttyUSB0
и устройство должно показать строку "привет", если оно подключено к этому порту, и все работает правильно.
Тем не менее, я бы определенно порекомендовал бы Java простую библиотеку последовательных соединителей через RxTx. Мы попробовали оба в коммерческом приложении POS (>1 миллион билетов в это время).
RxTx успешно используется для последовательной печати. В сценарии печати библиотека RxTx вызывается последовательно и используется только для отправки данных в порт. Только некоторые серийные флаги были отмечены красным цветом для обнаружения устройства.
Но из-за его ограничений мы просто не могли использовать его для чтения входных данных от последовательно подключенного IButton. В сценарии iButton ожидается, что данные будут получены асинхронно от порта. Были постоянные ошибки и зависания, когда мы пытались реализовать его с помощью RxTx, но с JSSC это было реализовано практически сразу.