последовательный ввод / вывод Java: надежное управление последовательным соединением / отключением USB - PullRequest
3 голосов
/ 27 января 2010

Я использую rxtx для обработки последовательного ввода-вывода в Java с FTDI2232H, который обеспечивает USB-порт связи. Он прекрасно работает, за одним исключением: если я отсоединяю USB-кабель, чтобы COM-порт исчезал во время выполнения, он издает исключения влево и вправо:

java.io.IOException: No error in nativeavailable
at gnu.io.RXTXPort.nativeavailable(Native Method)
at gnu.io.RXTXPort$SerialInputStream.read(RXTXPort.java:1427)
at gnu.io.RXTXPort$SerialInputStream.read(RXTXPort.java:1339)

и когда я снова подключаю кабель, он не восстанавливается.

Есть ли способ заставить rxtx нормально работать с подключением / отключением USB-порта связи? (Я пытался публиковать сообщения в списке рассылки rxtx, но по какой-то странной причине я не могу отправлять сообщения, даже если я подписан на этот список. Я написал администратору списка по электронной почте и не получил ответа.)

Если нет, то существует ли еще одна инфраструктура последовательного ввода-вывода?

Ответы [ 2 ]

0 голосов
/ 12 марта 2010

хорошо. мы используем WM_DEVICECHANGE и закодированы в C ++ и подготовлены DLL, а затем обращаемся к нему через JNI из приложения JAva .. поэтому мы получаем уведомление о подключении и отключении

0 голосов
/ 27 января 2010

Судя по звуку, я не знаю, возможно ли это в Java, но есть сообщение Windows, которое транслируется - WM_DEVICECHANGE сообщение, вероятно, вам нужно перехватить это сообщение, и если это извлечение устройства, изящно завершите работу кода rxtx. Вот пример код для проверки вставки / извлечения CD в привод CDROM (это не в Java).

Редактировать: Добавили еще одну ссылку здесь , которая может вас заинтересовать.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

...