Я пытаюсь создать приложение, которое считывает данные из последовательного порта, а затем оценивает (как именно оценка должна быть сделана в настоящее время не имеет значения). Для этого я в настоящее время использую следующий код, который первоначально должен только записывать полученные данные на консоль.
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(...);
) и соединить сообщения вручную, но безрезультатно.
Так что мой вопрос в том, что ещея могу сделать. Может быть, что-то изменить в сроках? К сожалению, у меня нет документации по используемому последовательному порту, потому что производитель ничего там не предоставляет.
привет