Com Port Überprüfung funktioniert nicht richtig



  • Ich benutze diese Klasse:
    http://www.codeguru.com/Cpp/I-N/network/serialcommunications/article.php/c2503/

    Wieso funktioniert es nur bei der ersten if-Abfrage einer seriellen Schnittstelle anzuzeigen, wenn sie nicht da ist:.
    Com1 wird trotzdem als vorhanden angezeigt, auch wenn er abgeschaltet ist.
    Tausche ich die Reihenfolge der Abfragen um, so wird Com2, als vorhanden angezeigt, obwohl er deaktiviert ist.

    // Com-Ports überprüfen, ob sie sich öffnen lassen
    	CSerial Serial;
    
    // Wenn Com2 verfügbar ist, dann anzeigen
    if( Serial.Open( 2, 19200)== TRUE ) GetDlgItem(IDC_COM2)->EnableWindow(TRUE);
    
    // Wenn Com2 nicht verfügbar ist, dann Com1 auswählen und Text ausgeben
    if( Serial.Open( 2, 19200)== FALSE )
    {
    m_text = "Com2 not available";
    m_radio_com = 0;
    }
    
    // Wenn Com1 verfügbar ist, dann anzeigen
    if( Serial.Open( 1, 19200)== TRUE ) GetDlgItem(IDC_COM1)->EnableWindow(TRUE);
    
    // Wenn Com1 nicht verfügbar ist, dann Com1 auswählen und Text ausgeben
    if( Serial.Open( 1, 19200)== FALSE )
    {
    m_text = "Com1 not available";
    m_radio_com = 1;
    }
    
    // Wenn beide Ports nicht funktionieren, Datei auswählen deaktivieren
    if( Serial.Open( 1, 19200) == FALSE && Serial.Open( 2, 19200) == FALSE) GetDlgItem(IDC_DATEI)->EnableWindow(FALSE);
    
    // Wenn beide Ports funktionieren, Com1 standardmässig auswählen
    if( Serial.Open( 1, 19200) == TRUE && Serial.Open( 2, 19200) == TRUE) m_radio_com = 0;
    

Anmelden zum Antworten