java serial I / O:以健壮的方式处理USB串行连接/断开连接

时间:2010-01-26 21:52:08

标签: java usb serial-port rxtx

我正在使用rxtx在Java中进行串行I / O处理,并使用提供USB通信端口的FTDI2232H。它运行良好,但有一个例外:如果我拔下USB电缆,以便COM端口在运行时消失,它会向左和向右喷出异常:

java.io.IOException: No error in nativeavailable
at gnu.io.RXTXPort.nativeavailable(Native Method)
at gnu.io.RXTXPort$SerialInputStream.read(RXTXPort.java:1427)
at gnu.io.RXTXPort$SerialInputStream.read(RXTXPort.java:1339)

当我再次重新插入电缆时,它无法恢复。

有没有办法让rxtx在USB通讯端口连接/断开连接时正常工作? (我试图发布到rxtx邮件列表,但由于一些奇怪的原因,即使我订阅了列表,我也无法发送邮件。我已通过电子邮件发送列表管理员并且没有得到任何回复。)

如果没有,是否有另一个串行I / O框架呢?

2 个答案:

答案 0 :(得分:0)

听到它的声音,我不知道这是否可以在Java中使用,但是有一条Windows消息被广播 - WM_DEVICECHANGE消息,很可能你需要截取此消息,如果它是设备弹出,正常关闭rxtx代码。这是一个示例code来检查CDROM驱动器中CD的插入/删除(它不是Java)。

修改:添加了您可能感兴趣的其他链接here

希望这有帮助, 最好的祝福, 汤姆。

答案 1 :(得分:0)

好。我们使用WM_DEVICECHANGE并用C ++编写并编写DLL然后通过JNI应用程序从JNI访问..所以我们得到连接和断开连接的通知