Как проверить, отключен ли последовательный порт в с #

Я хочу проверить, отключен ли последовательный порт после нажатия кнопки в C# WinForms.

Например:

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

PS: Есть ли способ проверить, что устройство отключено при запуске приложения.SerialPinchanged, ErrorRecieved, DataRecieved не помогай.

заранее спасибо

2 ответа

Это зависит от характеристик целевого устройства, подключенного к COM-порту.

Например, если RTS/CTS или DTR/DSR перекрестно подключены, или если устройство, эквивалентное модему, имеет допустимую сигнальную линию DCD или RI, а сигнальная линия CTS/DSR/DCD/RI показывает действительную информацию о соединении., Возможен случай, когда существует спецификация команды / ответа для проверки работоспособности или сохранения активности.

В качестве альтернативы, если COM-порт является последовательным преобразователем USB, вы можете проверить, существует ли устройство с соответствующими VID и PID, но убедитесь, что устройство действительно подключено к концу преобразователя. Нет никаких гарантий.

Логика проста: всякий раз, когда SerialPort отключается, serialPort.IsOpen становится ложным.

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

}

Другие вопросы по тегам