Плохое форматирование чтения последовательного порта с помощью jSerialComm - PullRequest
0 голосов
/ 01 ноября 2019

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

SerialPort serPort = SerialPort.getCommPort("COM6");
    serPort.setComPortParameters(9600, 8, 1, 0);

    serPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 0, 0);
    serPort.openPort();
    InputStream in = serPort.getInputStream();
    while (true) {
        try {
            String message = "0";
            for (int j = 0; j < 1000; ++j) {
                message = Character.toString((char) in.read());
                System.out.println(message);
            }
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Пока это работает, что-то распечатывается. Однако форматирование плохое, поэтому фактические сообщения распределены по нескольким строкам.

Затем я изменил System.out.println(message); на System.out.print(message);, что решило проблему для Момента.

Однако, так как яхотите продолжить работу с сообщением, нужно найти другое решение. Затем я попытался найти в отдельных сообщениях «\ n» или «\ r \ n» (message.contains(...);) и соединить сообщения вручную, но безрезультатно.

Так что мой вопрос в том, что ещея могу сделать. Может быть, что-то изменить в сроках? К сожалению, у меня нет документации по используемому последовательному порту, потому что производитель ничего там не предоставляет.

привет

...