Com Port Überprüfung funktioniert nicht richtig

sucher

Grünschnabel
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;
 
moin


Ich würde mal if( Serial.Open( 1, 19200)== FALSE ) und if( Serial.Open( 2, 19200)== FALSE ) durch else ersetzen.


http://www.codeguru.com/Cpp/I-N/network/serialcommunications/article.php/c2503/ hat gesagt.:
Opening the serial port


CSerial serial;
if (serial.Open(2, 9600))
AfxMessageBox("Port opened successfully");
else
AfxMessageBox("Failed to open port!");

mfg
umbrasaxum
 
Zurück