1

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

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

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

4

2 回答 2

2

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

于 2014-01-10T13:23:46.390 回答
1

您对硬件或远程设备有多少控制权?您也许可以对流控制线做一些事情:(即,如果您没有使用 RTS/CTS 流控制,但您可以使您的目标设备断言/取消断言 CTS,您可能会在设备断开连接时检测到 CTS 的变化.) 但请注意;由于硬件差异,这可能在一个硬件上运行良好,而在另一个硬件上运行不正常。在一般情况下,我同意上面的@MrD 最可靠/便携的解决方案是实现一些心跳消息(您发送消息,等待响应,如 TCP/IP PING),并生成“断开连接”事件如果您在某个超时时间内没有得到响应。

于 2014-01-10T13:31:19.783 回答