Чтение из Com-порта java

Я начинающий java-разработчик. У меня проблема с чтением с ком порта. Код:

public class Main {

private static SerialPort serialPort;

public static void main(String[] args) {
    serialPort = new SerialPort("COM3");
    try {
        serialPort.openPort();
        Thread.sleep(2000);
        serialPort.setParams(SerialPort.BAUDRATE_57600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
        serialPort.writeBytes("Test".getBytes());
        serialPort.setEventsMask(SerialPort.MASK_RXCHAR);
        serialPort.addEventListener(new EventListener());
    }
    catch (SerialPortException | InterruptedException ex) {
        System.out.println(ex);
    }
}

private static class EventListener implements SerialPortEventListener {

    public void serialEvent(SerialPortEvent event) {
        if(event.isRXCHAR() && event.getEventValue() == 8){
            try {
                byte[] buffer = serialPort.readBytes(8);
                for(int i = 0; i < buffer.length; i++){
                    System.out.println("Output" + buffer[i]);
                }
                serialPort.closePort();
            }
            catch (SerialPortException ex) {
                System.out.println(ex);
            }
        }
    }
}

Ничего не отображается, но я знаю, что данные записаны. Помоги пожалуйста.

1 ответ

Какую библиотеку вы используете для связи / последовательного порта? Вы можете попробовать добавитьserialPort.addEventListener(new EventListener()); перед отправкой чего-либо, возможно, что событие приема отправляется до сопоставления прослушивателя.

Другие вопросы по тегам