Seite 1 von 1

qextserialport - read hat immer eine Zeitdauer von 500ms

Verfasst: 8. April 2008 18:00
von pospiech
Ich benutzt qextserialport um die serielle Schnittstelle abzufragen. Sobald ich ein 'read' ausführe (was wieder direkt eine Funktion von QIODevice ist) bekomme ich beim ersten auslesen nach eine write (ebenfalls von QIODevice) immer eine Zeitdauer des read von exact 500ms.

Beim zweiten read ist die gemessen Zeitdauer 0ms (gemessen mit QTime und elapsed).

Warum ist das so und wie bekomme ich die 500ms weg?

Matthias

Verfasst: 19. Januar 2009 16:59
von Gh0str1d3r
Dieser Beitrag ist zwar schon uralt, aber ich bin bei der Suche nach einem ähnlichen Problem darauf gestoßen. Damit das Problem als gelöst gelten darf, hier die Lösung:

SerialPort -> setTimeout( x );

wenn SerialPort ein QExtSerialPort Objekt ist, wobei x die Zeit in ms ist. Diese ist per default 500, daher die 500 ms für die Lesezeit. Beim zweiten Versuch hat das Lesen scheinbar geklappt, deshalb gab es keinen Timeout.

Anmerkung: Die Syntax gilt für die Alpha-Version, die man sich aus dem Repository herunterladen kann. Diese würde ich jedem empfehlen, der read benutzt, da in dieser Version bytesAvailable() funktioniert (also read immer mit bytesAvailable() als Längenparameter aufrufen).