2017-05-07 25 views
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 

答えて

0

問題は、私は書き込みと私は初期化の瞬間の間の遅延をHAVAていなかったということでした私のserialportHandler

関連する問題