Probleme mit Comport öffnen mit QextSerial

Alles rund um die Programmierung mit Qt
Antworten
Ozzy
Beiträge: 141
Registriert: 24. Oktober 2007 10:18

Probleme mit Comport öffnen mit QextSerial

Beitrag von Ozzy »

Moin,

ich probiere gerade, ein Gerät über die serielle Schnittstelle anzusprechen. Dafür probiere ich nacheinander alle vorhandenen Com-Ports zu öffnen, einen Befehl hin zu schicken, und wenn die richtige Antwort kommt, hab ich mein Gerät gefunden. Doch aus irgendwelchen Gründen möchte er den entsprechenden Port (Com16) nicht öffen. Hier mein Code:

Code: Alles auswählen

    PortSettings portSettings;
    portSettings.BaudRate = BAUD115200;
    portSettings.DataBits = DATA_8;
    portSettings.Parity = PAR_NONE;
    portSettings.StopBits = STOP_1;
    portSettings.FlowControl = FLOW_OFF;
    portSettings.Timeout_Millisec = 500;

    QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();

    for (int i=0; i<ports.size(); i++) {
        if (DEBUG) printf("\r\n port name: %s\r\n", ports.at(i).portName.toLocal8Bit().constData());
        port = new QextSerialPort( ports.at(i).portName, portSettings);

        if ( !(port->open(QextSerialPort::ReadWrite) ) ) {
            if (DEBUG) printf("Could not connect\r\n");
            port->close();
            continue;
        }
        ...
    }
Ich bekomme immer die Meldung "Could not connect", wobei ich mit einem normalen Terminalprogramm über den Port und die Einstellungen auf das Gerät zugreifen kann.
Ist da irgendwo ein Fehler, den ich nicht sehe?

Vielen Dank für Eure Hilfe, Ozzy
Ozzy
Beiträge: 141
Registriert: 24. Oktober 2007 10:18

Beitrag von Ozzy »

Moin,

habe das Problem gelöst; anscheinend mag qextserial nur ports unter 10. Alle andern werden zwar aufgelistet, jedoch kann nicht auf die ports geschrieben werden...
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag von FaS »

Ich hatte mal dasselbe Problem, die Lösung liegt in einer anderen Schreibweise. In folgendem Format funktionieren auch größere Portnummern:
\\.\com16 (Backslashes escapen nicht vergessen...).

Gruß,
FaS
Ozzy
Beiträge: 141
Registriert: 24. Oktober 2007 10:18

Beitrag von Ozzy »

Gut zu wissen! Dann kann ich das ja einfach vor jeden Portnamen schreiben, und dann sollte das ja auch für die oberen funktionieren.

Vielen Dank noch einmal, MfG, Ozzy
Antworten