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);
}
}
データが利用可能であると私は私がOUTPUT_BUFFER_EMPTY応答しばらく取得しかし、データの書き込み後に、リスナーが呼び出された場合SERIALPORTが通知されます
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);
}
}
}
イベントリスナー私は送られた文字列を期待しています。
SerialPortHandlerはインスタンスに基づいているため、アプリケーション内のどこでも同じものを使用できます。
例:予想
SerialPortHandler handler = SerialPortHandler.getInstance();
handler.write("hello world");
:
DEBUG [SerialPortHandler.java] - listener called
hello world
実際:
DEBUG [SerialPortHandler.java] - listener called