如何检测串口连接与javax.comm的断开连接?

时间:2014-01-10 13:01:04

标签: java javax.comm

当SerialPorts(RS232)的连接中断/断开时,我如何检测它并将其报告给用户?

在任何时候都可能发生,我想我应该使用一个单独的线程。

我的连接类型是:发送消息 - 收到消息

2 个答案:

答案 0 :(得分:2)

RS232未检测到物理连接的“状态”。所以我想在连接/断开的情况下直接获取事件是不可能的。可能唯一的方法是发送一些东西并检测答案是否丢失(或者是听觉或其他......)。

答案 1 :(得分:1)

您对硬件或远程设备有多少控制权?您可能能够对流控制线执行某些操作:(即,如果您不使用RTS / CTS流控制,但您可以使目标设备断言/取消断言CTS,则可能会检测到更改在设备断开时在CTS中。)但要注意;由于硬件差异,这可能在一个硬件上工作正常而在另一个硬件上不起作用。在一般情况下,我同意上面的@MrD,最可靠/可移植的解决方案是实现一些心跳消息(您发送消息,等待响应,如TCP / IP PING),并生成'disconnect'事件如果你在一段时间内没有得到答复。