javax.comm:当设备被断开连接错误
-
13-09-2019 - |
题
我有使用javax.comm从COM端口读取数据的应用程序。
我遇到的问题是,如果我是从阅读器是意外断开我在控制台中的错误,说“WaitCommEvent:错误5”
我环顾四周,找不到这方面有任何有用的信息。我设置了所有notifyOn *方法,真正让我觉得我应该接受所有的事件,但我不会赶上这一个。
这被打印出来并非来自在我的代码任何地方,所以它必须在javax.comm包某处的错误消息。谁能告诉我如何处理这个错误,这样我可以正常关闭的COM端口时,会发生呢?
谢谢!
解决方案
如果有人有兴趣在此,我发现了一个解决方案。我用的是javax.comm API,但要解决我与RXTX API取代它的问题( http://rxtx.qbang.org/wiki/index.php/Main_Page )。物不需要代码改变,但现在当该装置断开时我接收一个IOException与消息“基本输入流返回零个字节”。我处理这个消息,并启动新的线程。在新线程我叫port.close()和port.removeEventListener()。这两个呼叫必须在一个新的线程来完成,否则申请将挂起。
其他提示
我们已经使用了大量的时间在得到javax.comm上班,发现在我们的情况下,它是这是产生这些问题的COM驱动程序(在几个Windows 7的计算机)。 如果司机也是你的问题,你正在使用Windows 7或Vista的可能(和您使用的是多产/ Logilink系列动力电缆),那么这可能是解决:) http://www.akosta.dk/category/technical-notes/
希望你得到它的工作!
此问题是近2岁,但也许另一人们需要一种可能的解决方案:
我有同样的问题与java.comm: “WaitCommEvent:错误5” 此消息出现多次,如果COM端口断开, 但对象的SerialPort未关闭。
我的解决办法是关闭的SerialPort对象如果的SerialPort的IO流的读/写倒掉异常。