java串行I/O : handling USB serial connection/disconnection in a robust manner

标签 java usb serial-port rxtx

我正在使用rxtx用于使用提供 USB 通信端口的 FTDI2232H 在 Java 中进行串行 I/O 处理。它工作得很好,但有一个异常(exception):如果我拔掉 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 框架可以实现?

最佳答案

听上去,我不知道这在 Java 中是否可行,但有一条 Windows 消息被广播 - WM_DEVICECHANGE消息,您可能需要拦截此消息,如果它是设备弹出,请优雅地关闭 rxtx 代码。这是一个例子code检查 CDROM 驱动器中 CD 的插入/移除情况(Java 中没有)。

编辑:添加了另一个链接 here您可能对此感兴趣。

希望这有帮助, 此致, 汤姆。

关于java串行I/O : handling USB serial connection/disconnection in a robust manner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2142918/

相关文章:

java - 如何获取以下格式的日期 "dd MMM, yyyy z"

java - 如何将当前数据从适配器传递到适配器?

android - Android 上的 HP TouchPad USB 驱动

c# - 使用 USB 激活 MOSFET/继电器

c - C 中 Raspberry PI 串行通信中的奇偶校验设置问题

java - Android流畅的多点触控绘图

java - 将“伪”时间戳存储到数据库中

macos - 如何告诉 OS X 忽略来自两个连接的 USB 鼠标之一的输入?

java - 如何查看电脑可用端口?

python - python中的高精度系统时间