我正在尝试创建一个应用程序,该应用程序从串行端口读取数据然后进行评估(当前进行评估的确切程度是不相关的)。为此,我目前使用以下代码,最初应仅将接收到的数据写在控制台上。
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(...);
),然后手动将邮件放在一起,但无济于事。
所以我的问题是我还能做什么。 也许在时间上有所改变?不幸的是,我没有所用串行端口的文档,因为制造商在那里没有提供任何东西。
问候