문제

javax.comm을 사용하여 COM 포트의 데이터를 읽는 응용 프로그램이 있습니다.

내가 가지고있는 문제는 내가 읽는 장치가 예기치 않게 단절된 경우 "WaitCommevent : Error 5"라는 콘솔에서 오류가 발생한다는 것입니다.

나는 주변을 둘러 보았고 이것에 대한 유용한 정보를 찾을 수 없습니다. 나는 모든 Notifyon* 메소드를 True로 설정 했으므로 모든 이벤트를 수신해야한다고 생각하지만이 행사를 포착하지는 않습니다.

인쇄 된 오류 메시지는 내 코드의 어느 곳에서나 나오지 않으므로 어딘가에 javax.comm 패키지에 있어야합니다. COM 포트가 발생할 때 올바르게 닫을 수 있도록이 오류를 처리하는 방법을 말해 줄 수 있습니까?

감사!

도움이 되었습니까?

해결책

누구든지 이것에 관심이 있다면 해결책을 찾았습니다. javax.comm API를 사용하고 있었지만 문제를 해결하기 위해 RXTX API로 교체했습니다.http://rxtx.qbang.org/wiki/index.php/main_page). 코드 변경이 필요하지 않았지만 이제 장치가 연결이 끊어지면 "기본 입력 스트림이 0 바이트를 반환 한"메시지와 함께 ioexception을받습니다. 나는 그 메시지를 처리하고 새로운 스레드를 시작합니다. 새 스레드에서 나는 port.close () 및 port.removeeventListener ()를 호출합니다. 이 두 통화는 새 스레드에서 수행해야합니다. 그렇지 않으면 응용 프로그램이 중단됩니다.

다른 팁

우리는 javax.comm이 작동하도록하는 데 많은 시간을 사용해 왔으며 우리의 경우 몇 가지 Windows 7 컴퓨터에서 문제를 일으키는 COM 드라이버임을 알았습니다. 드라이버가 문제이고 Windows 7 또는 Vista를 사용하고 있다면 (그리고 많은/logilink seriel 케이블을 사용하고 있음) 솔루션 일 수 있습니다 :)http://www.akosta.dk/category/technical-notes/

당신이 그것을 일하기를 바랍니다!

이 질문은 거의 2 살이지만 다른 질문은 가능한 해결책이 필요할 것입니다.

java.comm과 동일한 문제가 발생했습니다. "WaitCommevent : Error 5"COM 포트가 연결이 끊어졌지만 Serialport 객체가 닫히지 않은 경우이 메시지는 여러 번 나타납니다.

내 해결책은 Serialport의 IO 스트림을 읽고/쓰는 경우 예외를 던지는 경우 Serialport 객체를 닫는 것이 었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top