Qextserialport langsam bei read
Verfasst: 22. Januar 2010 09:01
Moin,
ich spiele gerade etwas mit der qextserialport library rum. Was mich aber wundert ist, dass das Lesen extrem lange dauert. Der read-Methode können ja die Anzahl der zu lesenden Bytes mitgegeben werden. Dann müsste er doch eigentlich aufhören, wenn die Bytes voll sind. Trotzdem ist die Dauer des Lesens vom eingestellten Timeout abhängig.
Ich habe jetzt einmal probiert, 2 Bytes zu lesen:
Für das Schreiben benötigt er 0ms, was sehr gut ist. Für das Lesen jedoch 15ms bei einem Timeout von 10ms. Stelle ich den Timeout auf 100ms, dann sind es 109ms.
Das gleiche Gerät mit der gleichen Anfrage nur in C# programmiert braucht für das Lesen nur 2ms...
Wisst Ihr eine Möglichkeit, wie man das irgendwie beschleunigen kann???
MfG, und vielen Dank, Ozzy
ich spiele gerade etwas mit der qextserialport library rum. Was mich aber wundert ist, dass das Lesen extrem lange dauert. Der read-Methode können ja die Anzahl der zu lesenden Bytes mitgegeben werden. Dann müsste er doch eigentlich aufhören, wenn die Bytes voll sind. Trotzdem ist die Dauer des Lesens vom eingestellten Timeout abhängig.
Ich habe jetzt einmal probiert, 2 Bytes zu lesen:
Code: Alles auswählen
QTime *time = new QTime();
time->start();
if ( !(SendCommand(sequence, sizeof(sequence), 0)) ) return false;
std::cerr << "SendCommand: " << time->elapsed() << std::endl;
time->restart();
qint64 res = port->read((char*)result,sizeof(values));
std::cerr << "Read: " << time->elapsed() << std::endl;
std::cerr << "res: " << res << std::endl;
Das gleiche Gerät mit der gleichen Anfrage nur in C# programmiert braucht für das Lesen nur 2ms...
Wisst Ihr eine Möglichkeit, wie man das irgendwie beschleunigen kann???
MfG, und vielen Dank, Ozzy