物理断开连接时,C#SerialPort.IsOpen返回true

use*_*485 3 c# serial-port

当物理上断开USB端口上的串行电缆时,C#SerialPort.IsOpen返回true.任何人都可以帮助我克服这个问题.

Han*_*ant 5

这不是串口工作的方式,它们没有像TCP这样的标准连接导向协议."IsOpen"名称选择不是偶然的,它不会说"已连接"并且仅表示Open()调用成功,并且在程序退出时调用Close()方法可能是个好主意.

幸运的是,当您断开电缆或关闭设备电源时,您应该看到SerialPort.DsrHolding属性为false.SerialPort.CtsHolding应该表明设备已准备好接收数据.这些硬件握手信号并不总是正确实现,并且当电缆因电噪声而断开时它们会给出错误的指示.

除此之外没有充分的理由让电缆断开连接而不是任何人都知道它,串口电缆总是很短.