有谁知道如何检查设备是否连接到串行端口?我需要一种 ping 功能,以便我可以 ping 设备并仅在 ping 成功时尝试连接它。例如,如果我没有插入 COM 电缆,我可以更快地显示连接失败消息。
问问题
4087 次
1 回答
4
这与必须使用 Ping 来查找位于 1000 英里外的服务器是否在线的问题并不完全相同。使用串行端口,您只需查看电缆的另一端,您几乎不需要走超过几英尺。
也没有什么类似于拥有像 TCP 这样的有状态连接的东西。您真正能做的就是查看硬件握手信号。SerialPort.DsrHolding 为您提供数据集就绪信号的状态。正确实现的串行设备使用该信号表示它已通电。CtsHolding 是一个附加信号,它表示它已准备好发送数据。在您考虑发送任何内容之前,它们通常都必须打开。
这些握手信号并不总是正确实现。例如,如果串行端口实际上是由蓝牙或 USB 设备驱动程序模拟的,您可能会遇到问题。这些天很常见,这些驱动程序模拟真实串行端口的程度几乎没有一致性。你得试试。
于 2013-08-09T13:46:34.697 回答