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;
}
...
}
Ist da irgendwo ein Fehler, den ich nicht sehe?
Vielen Dank für Eure Hilfe, Ozzy