Библиотеки для работы с COM-портом

334
08 августа 2017, 14:22

Нужно сделать примитивное общение с устройством через COM-порт. Какие есть вообще библиотеки для этого? Что ни нахожу в гугле - то пизанские башни с установленным монитором и кучей критики. Плюс практически все мануалы старые, как мой ПК.

Answer 1

Вы можете легко считывать данные из порта usb с помощью jssc.

Пример чтения данных из usb:

import jssc.SerialPort;
import jssc.SerialPortEvent;
import jssc.SerialPortEventListener;
import jssc.SerialPortException;
public class Test {
    private static SerialPort serialPort;
    public static void main(String[] args) {
        //Передаём в конструктор имя порта
        serialPort = new SerialPort("COM1");
        try {
            //Открываем порт
            serialPort.openPort();
            //Выставляем параметры
            serialPort.setParams(SerialPort.BAUDRATE_9600,
                                 SerialPort.DATABITS_8,
                                 SerialPort.STOPBITS_1,
                                 SerialPort.PARITY_NONE);
            //Включаем аппаратное управление потоком
            serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | 
                                          SerialPort.FLOWCONTROL_RTSCTS_OUT);
            //Устанавливаем ивент лисенер и маску
            serialPort.addEventListener(new PortReader(), SerialPort.MASK_RXCHAR);
            //Отправляем запрос устройству
            serialPort.writeString("Get data");
        }
        catch (SerialPortException ex) {
            System.out.println(ex);
        }
    }
    private static class PortReader implements SerialPortEventListener {
        public void serialEvent(SerialPortEvent event) {
            if(event.isRXCHAR() && event.getEventValue() > 0){
                try {
                    //Получаем ответ от устройства, обрабатываем данные и т.д.
                    String data = serialPort.readString(event.getEventValue());
                    //И снова отправляем запрос
                    serialPort.writeString("Get data");
                }
                catch (SerialPortException ex) {
                    System.out.println(ex);
                }
            }
        }
    }
}
READ ALSO
Некорректный прием данных через COM-порт

Некорректный прием данных через COM-порт

Есть плата Adruino UnoС нее через Serial передаю в COM-порт данные( if(Serial

343
Как не потерять кэширование 1-го уровня Hibernate?

Как не потерять кэширование 1-го уровня Hibernate?

Кэш 1-го уровня у Hibernate храниться в сессии, и с ее закрытием теряются и все данные которые в нем былиВстает вопрос: как задизайнить свой DAO слой...

277
Не работает taglib в jsp страницах

Не работает taglib в jsp страницах

Добрый вечер! Использую java 14, Tomcat 4

338
Как связывать таблицы в Hibernate?

Как связывать таблицы в Hibernate?

Добрый день, в очередной раз попал в тупик и не знаю как быть, помогите плиззз есть две таблицы, использую spring и hibernate

306