Pull to refresh

Comments 16

Да не факт что вымерли, к примеру сканеры штрих кодов хоть используют USB, в систему отдают виртуальный COM порт, либо работают как клавиатура.
Я знаю, и таких устройств довольно много. В данном случае я говорил о том что таких устройств для домашнего «употребления» мало и многие не знают что в этих устройствах грубо скажем встроен адаптер USB->COM, и от того довольно часто видишь высказывания о том что com — пережиток прошлого.
UFO just landed and posted this here
3G модема.Там тоже по последовательному интерфейсу идет обмен данными между ПК и модемом.
Ещё как не вымерли, во многом спец.оборудовании живёт и здравствует. Так что тема актуальная, так как javax.comm уж совсем плох. В итоге используется у нас rxtx, в целом доволен, но есть проблема с поддержкой специфических систем, в том числе 64-битных. Плюс есть недоработки, которые напрягают слегка, пару раз приходилось дописывать, в т.ч. нативную часть.

С адаптерами usb-com вообще песня отдельная, натерпелся я от них сполна, они почти всегда работают ну очень плохо, причём плохо работают совсем незаметно от библиотеки, т.е. понять, что идут битые байты совершенно невозможно. Причём программа нативная читает-пишет нормально (гляжу сниффером), совершенно то же самое пишу-читаю через rxtx — идёт битое. Во всех этих проблемах до конца так и не разобрался, ну и тем более все низкоуровневые параметры порта (таймауты некоторые, например) поставить там не получается. Интересно как с этими делами у вас, обязательно попробую. А то я уже от отчаяния написал совсем тонкую прослойку уровня «читать писать», но это тоже не дело.
UFO just landed and posted this here
USB-COM вы зря ругаете, это я вам как специалист по электронике говорю, если вы использовали не китайские адаптеры но все должно быть хорошо, микросхема FT232 которая считается эталоном качества(высокие скорости работы до 2 MBaud/С)

Если у вас с ней буду проблемы то сир я съем свою шляпу. А если вы используете барахло то не жалуйтесь что с ним проблема.
Дело в том, что мы ничего не используем, мы софт пишем) Тот, что есть у меня работает нормально, кстати. Проблемы получаются, соответственно, когда клиенты используют плохие(?) переходники или дрова под них или настраивают их как-то не так, непонятно. Клиентов достаточно много, следовательно, проблемы возникают регулярно. Если происходит видимая беда с обменом с железками в 99% случаев оказывается, что работает через переходник. Отсюда и заключается моё мнение соответствующее, в общем случае я не прав, конечно. Просто за тем, какое «барахло» собрались использовать клиенты мы в таких мелочах проследить не можем, но почти всегда решается сменами переходников, перестановкой дров итд итп. Дело усложняется тем, что некоторые из них работают плохо, например, только в линуксе или фряхе или ещё где-то настроить невозможно, а поддержка всех систем обязательна. Так что как и что универсально порекомендовать тоже не очень понятно. Но вы правы, да, обязательно напишу в документацию предупреждение о проблемах с плохими переходниками.
Как дополнительный бизнес фирме можете продавать фирменные переходники.
Эх, воткнутые проводочки с кучей скруток, 2->3 3->2 5->5 (DB-9), первая квака по нуль-модему, ностальгия…
Мне удавалось линк на 20 метров между двумя ПК через него завести, всего по 3-м проводам. Правда, 33600 всего было.
за последние полгода 3 типа весового обрудование коннектил для получения веса через com-порт
Не вымерли. Последних лет 5 постоянно работаю с Serial портами. Правда, у меня это больше RS-485.
Но как правило с RS-232, если не требуется работа с линиями RTS, DTR, CTS, DSR, RING, RLSD, то работу с портом можно свести в работе с сокетом. Таких случаев большинство. В таком случае можно воспользоваться и преобразователем RS<->IP и абстрагироваться от COM порта совсем, а работать с TCP сервером.
Пожалуйста если кто может помогите. Когда использую библиотеку jssc выдает ошибку
Exception in thread «EventThread COM4» java.lang.NullPointerException
at TJFrame$REDPORTCOM$SerialPortReader.serialEvent(TJFrame.java:81)
at jssc.SerialPort$EventThread.run(SerialPort.java:1112). Я новичок в программирование.Среда разработки NetBeans 8.1. Точно знаю, что данные отправляются так как срабатывает PortReader implements SerialPortEventListener. А на этой строке String data = serialPort.readString(event.getEventValue()) выдает ошибку.
Ubuntu 16 появилась ошибка:
Port name - /dev/ttyS0; Method name - openPort(); Exception type - Port busy.

Пользователь входит в группу dialout, другими инструментами порт открывается без проблем. В том числе, работает с библиотекой rxtx.
Причем, после исключения порт заблокирован и не доступен другим программам, но и не открыт в jssc.
От рута все работает без проблем.

Код не менялся и не пересобирался пару лет, ошибка вылезла недавно. Видимо, после обновлений убунты.

Хорошо спроектированная библиотека. Простая - это главная. Но делает всё, что необходимо. И интуитивно понятная.

Мне был нужен прямой доступ к СОМ порту. И я его получил. Правда, только для 32 бит на Windows 10.

На 64 битах Memory Access Violation вываливался в момент serialPort.openPort(). Разбираться не стал. Возможно это какие то проблемы с правами доступа.

А в целом всё получилось быстро и надежно. Спасибо автору!

Sign up to leave a comment.

Articles

Change theme settings