当SerialPorts (RS232)的连接中断/断开时,我如何检测它并向用户报告?
正如在任何时候都可能发生的那样,我想我应该使用一个单独的线程。
我的连接类型是:发送msg -接收msg
发布于 2014-01-10 13:23:46
RS232不检测物理连接的“状态”。因此,我想在连接/断开的情况下不可能直接得到一个事件。也许唯一的方法是发送一些东西,并检测出答案是否丢失(或者是心跳或其他什么)。
发布于 2014-01-10 13:31:19
您对硬件或远程设备有多少控制?您可能可以对流控制行执行一些操作:(也就是说,如果您不使用RTS/CTS流控制,但可以使目标设备断言/卸载CTS,则可能在设备断开时检测到CTS中的更改。)但是,请注意:由于硬件的差异,这可能在一种硬件上工作得很好,而在另一种硬件上却不起作用。在一般情况下,我同意上面@MrD的观点,即最可靠/可移植的解决方案是实现一些心跳消息(您发送消息,等待响应,比如TCP/IP PING),如果在某个超时时间内没有得到响应,则生成一个“断开”事件。
https://stackoverflow.com/questions/21045045
复制相似问题