我正在使用Java来读取连接到称重机的串口。称重机以N + 10 kg
格式发送数据,其中10千克部分由称重秤上的重量改变。
目前,我能够收听SerialPort事件,并将来自串口的数据作为InputStream.
获取,但我得到的数据是未知字符,类似于N?????+????????0???
(这应该是N + 60 kg
,这意味着所有空格都被问号替换,与6
和kg
相同。这适用于所有权重。
我试图改变InputStream
的字符编码,但我只得到另一个未知字符(如方形)来代替问号。
以下是我使用过的代码段。
InputStream is = thisPort.getInputStream();
while (true) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String nextLine;
try {
nextLine = reader.readLine();
System.out.println(nextLine);
} catch (Exception e) {
System.err.println(e.getMessage());
if (e.getMessage().contains("shutdown or disconnected")) break;
}
}
请注意我使用jSerialComm
jar来读取串口和Java 8.
请让我知道我做得不对,因为我真的被卡住了。