coder45
coder45

Reputation: 3

How to check if a Serial port is disconnected in c#

I want to check if a Serial port is disconnected or not after clicking a button in C# WinForms.

Eg:

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

PS: Is there any way to check that the device is disconnected when the application is running. SerialPinchanged, ErrorRecieved, DataRecieved don't help.

Thank you in advance

Upvotes: 0

Views: 1395

Answers (2)

D J
D J

Reputation: 937

It is simple logic that whenever SerialPort is disconnected, serialPort.IsOpen turns to false.

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

}

Upvotes: 0

kunif
kunif

Reputation: 4360

It depends on the specifications of the target device connected to the COM port.

For example, if RTS/CTS or DTR/DSR are cross-connected, or if the device equivalent to a modem has a DCD or RI valid signal line, and the CTS/DSR/DCD/RI signal line shows valid connection information. , There may be a case where there is a command/response specification for health check or keep alive.

As an alternative, if the COM port is a USB Serial converter, you can check whether or not the device with the corresponding VID and PID exists, but make sure that the device is actually connected at the end of the converter. There is no guarantee.

Upvotes: 1

Related Questions