Запись данных через RxTx с использованием usbserial? - PullRequest
1 голос
/ 17 сентября 2008

Я использую библиотеку RxTx поверх usbserial в дистрибутиве Linux. Библиотека RxTx, кажется, ведет себя совершенно иначе (нехорошо), чем то, как она работает в последовательном.

Одна из моих самых больших проблем заключается в том, что RxTx SerialPortEvent.OUTPUT_BUFFER_EMPTY не работает на Linux через USB-последовательный порт.

Как узнать, когда мне следует писать в поток? Какие-нибудь показатели, которые я мог пропустить?

Пока что мой опыт написания и чтения не был удачным. Кто-нибудь знает, следует ли мне блокировать вызов обработчика DATA_AVAILABLE во время записи в потоке? Или RxTx принимает одновременное чтение / запись?

Ответы [ 2 ]

4 голосов
/ 09 октября 2008

(возможно, немного не по теме, но здесь идет)

Я не знаком с этой конкретной библиотекой, но могу заверить вас из ужасного опыта (я работаю в сфере систем безопасности (например, в области аппаратных устройств защиты), где активно используется RS-232), что не все USB Преобразователи рождаются равными. Многие такие устройства не могут должным образом эмулировать все линии RS-232, а многие даже не обрабатывают любые соединения без управления потоком. Прежде чем обвинять библиотеку, попробуйте убедиться, что оборудование действительно делает то, что должно.

Не желая поддерживать конкретный продукт или марку, лучший (как в: наименее глючный) USB-последовательный преобразователь, с которым я сталкивался годами, это USA-19HS .

1 голос
/ 22 сентября 2008

Используя RxTx через usb-to-serial, вы не можете установить для notifyOnOutput значение true, иначе он полностью блокируется.

Я научился этому нелегко. Эта проблема задокументирована на нескольких веб-сайтах в Интернете.

Я использую его в Linux и считаю, что это проблема только для Linux, хотя я не могу этого подтвердить.

Что касается ссылки, которую вы мне дали ... Я видел примеры SimpleReader и SimpleWriter, но они не представляют собой приложение реального мира. Он не многопоточный, предполагает, что чтение содержит все необходимые данные вместо буферизации чтения и т. Д.

Спасибо

Jeach!

...