C# Serialports durchprobieren

Dshing

Lt. Commander
Registriert
Nov. 2007
Beiträge
1.436
Hallo,
ich versuche gerade ein kleines Programm zuschreiben, was eine Verbindung mit einem Gerät über einen COM-Port herstellen soll. Dazu will ich dass das Programm alle sichtbaren COM-Port durchprobiert und sich den richtigen raus sucht.
Da zu soll es sich der Reihe nach mit den vVerfügbaren Ports verbinden und ein bestimmtes Datenpaket senden, wenn der Empfänger darauf mit der richtigen Antwort reagiert, soll der COM-Port gehalten werden und das eigentliche Programm kann los arbeiten.

Mein Ansatz hab ich unten geschrieben. Das Problem ist wenn das Programm einen COM-Port öffnen will, der bereits besetzt ist oder aus anderen Gründen nicht geöffnet werden kann, stürzt es ab. Ich bräuchte also einen Befehl, der abfragt ob ein COM-Port überhaupt "??? öffenbar ???" also öffnungsfähig ist, bevor ich einen COM-Port öffne, bzw. nach einem Fehlversucht zum nächsten Programmschritt geht.

Gibt es so etwas?

Code:
if(status_code1!=1){
                serialPort1.Close();
                ports_there = SerialPort.GetPortNames();
                port = ports_there[iteration];

           if (serialPort1.IsOpen == false)
               {
                byte checksum;
                serialPort1.PortName = port;
                serialPort1.Open();
                checksum = Convert.ToByte(1 ^ 77 ^ 77 ^ 0xFF);
           if (serialPort1.IsOpen == true)
                {
                    serialPort1.Write(new byte[] { 1, 77, 77, checksum }, 0, 4);
                }
                iteration++;
            }
 
Zurück
Oben