0

我想在单击 中的按钮后检查串行端口是否断开连接C# WinForms

例如:

private void btn_Click()
{
if("code to check device disconnected")
{
Do this;
}
else
{
Do this;
}}

PS:有什么方法可以检查应用程序运行时设备是否断开连接。 SerialPinchanged, ErrorRecieved,DataRecieved不帮忙。

先感谢您

4

2 回答 2

1

这取决于连接到 COM 端口的目标设备的规格。

例如RTS/CTS或DTR/DSR交叉连接,或者相当于modem的设备有DCD或RI有效信号线,CTS/DSR/DCD/RI信号线显示有效连接信息。, 可能存在健康检查或保持活动的命令/响应规范的情况。

或者,如果COM口是USB串口转换器,可以检查是否存在对应VID和PID的设备,但要确保设备实际连接在转换器的末端。没有任何保证。

于 2020-06-25T07:18:12.997 回答
0

这是一个简单的逻辑,只要 SerialPort 断开连接,serialPort.IsOpen 就会变为 false。

private void btn_Click()
{
   if(!SerialPort.IsOpen)//If SerialPort is not open
   {
     Do this;
   }
   else//Else if SerialPort is open
   {
     Do this;
   }

}

于 2020-06-28T13:06:17.890 回答