0
在我的應用程序中,我試圖寫入一個COM端口。連接的設備是一個arduino,它返回我發送的消息(用於測試目的)。但是,當我寫信給它時,我沒有得到我期望的響應,但是當我在GUI中使用按鈕時,我卻這麼做。Java Com端口讀寫有問題
寫方法:
public void write(String x) {
try {
outStream.write(x.getBytes());
outStream.flush();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
事件監聽器
public void serialEvent(SerialPortEvent event) {
logger.debug("listener called");
if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
BufferedReader portReader = new BufferedReader(new InputStreamReader(inStream));
try {
String line = portReader.readLine();
test(line);
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
}
如果數據是可用的和我寫的數據後,但我得到的,而一個OUTPUT_BUFFER_EMPTY響應監聽器被稱爲一個串口會通知我期待我發送的字符串。
SerialPortHandler基於實例,所以我可以在我的應用程序中隨處使用同一個實例。
例如:
SerialPortHandler handler = SerialPortHandler.getInstance();
handler.write("hello world");
預期:
DEBUG [SerialPortHandler.java] - listener called
hello world
實際:
DEBUG [SerialPortHandler.java] - listener called