2017-05-07 8 views
0

내 응용 프로그램에서 COM 포트에 쓰려고합니다. 연결된 장치는 내가 보낸 메시지를 반환하는 arduino입니다 (테스트 용). 그러나 내가 그것에 쓸 때 나는 내가 GUI에서 버튼을 사용할 때 기대했던 반응을 얻지 못한다.자바 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

문제는 내가 쓰기 내가 초기화 순간 사이의 지연을 하바하지 않았다고했다 내 serialportHandler