Skanowanie portów COM

0

Witam. Sprawa wydaje się z pozoru bardzo prosta ale nie mogę znaleźć rozwiązania którego szukam i chce się upewnić, czy może jest to po prostu niemożliwe.
Spośród dostępnych portów chcę znaleźć ten, do którego podpięte jest moje urządzenie, które poprawnie odpowie na wysłaną wiadomość.
Najpierw pobieram sobie listę wszystkich aktywnych portów i po nich iteruję z timeoutem. Daję powiedzmy 500ms na odpowiedź i jeśli jej nie ma, to lecę do następnego portu, co dzieje się wtedy gdy nawiążę połączeniem z urządzeniem, ale nie tym poszukiwanym. Gorzej gdy w ogóle nie da się nawiązać połączenia bo z portu już korzysta inna aplikacja. Wtedy zamiast tych 500ms mija kilka sekund będące domyślnym timeoutem dla SerialPort.Open() co już dość mocno mi wydłuża czas.

No i pytanie, czy jest możliwość weryfikacji czy z portu już coś nie korzysta zamiast próby połaczenia?
Ewentualnie czy da się skrócić timeout dla komendy Serial.Open()?

0

Sprawdza się próbując go otworzyć właśnie. Natomiast dziwne jest ten time out bo jak pamiętam to (zarówno w delphi jak i c#) przy próbie otwarcia już otwartego portu dostawałem wyjątek od razu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1