Im Gegensatz zu USB verfügt der serielle Port über keine integrierte Möglichkeit, eine physische Änderung des Verbindungsstatus zu erkennen. Eine begrenzte Form der "Geräte bereit / nicht bereit" -Signalisierung kann mit einigen der Pins (nämlich DTR, DSR und manchmal DCD) erfolgen, aber das scheint nicht genau das zu sein, wonach Sie suchen (es ist nicht eingebaut) zu RS232 - das Gerät muss es unterstützen, Sie verwenden es hauptsächlich, um mit Modems zu sprechen.)
Kurz gesagt: Nein, im allgemeinen Fall. Wenn Sie das Gerät, mit dem Sie kommunizieren wollen, programmieren können und wissen, dass es eine bestimmte Zeile hoch halten wird (zum Beispiel), könnten Sie es abfragen, um zu sehen, dass diese Zeile hoch geht. Aber wenn man ein Gerät anschliesst, das nicht programmiert ist, etwas Vorhersagbares zu tun, dann gibt es wirklich keine Möglichkeit es zu sagen. (Einige Geräte halten DSR standardmäßig hoch, aber es ist in keiner Weise eine sichere Wette.)
Ich habe es nicht ausprobiert, aber sieh dir den SerialPort an. PinChanged und DsrChanged .
Immer wenn ein normales Gerät an den seriellen Port angeschlossen und eingeschaltet ist, würde ich erwarten, dass der DSR-Pin des Ports aktiviert wird; und umgekehrt, wenn das Gerät ausgesteckt ist oder wenn es ausgeschaltet ist, würde ich erwarten, dass sich der DSR-Pin-Status ändert / abfällt.
Die übliche Bedeutung der verschiedenen Pins ist:
Von diesen ist der, der Ihr OP beantwortet, DSR.
There ist eine Möglichkeit, die Entfernung / Einfügung serieller Ports in .NET zu erkennen - siehe meine Antwort unter Erkennen des Einfügens / Entfernens der seriellen Schnittstelle
Es hängt davon ab, welche Art von Gerät Sie mit welcher Art von Kabel verbinden.
Am besten versuchen Sie, den PinChanged-Ereignishandler zu behandeln.
Einige Geräte werden DSR erhöhen, wenn sie angeschlossen und eingeschaltet sind, andere CTS, andere verwenden diese zum Handshaking.
Tags und Links .net serial-port