Seite 1 von 1

QextSerialPort: Größe des Input-Buffers vergrößern

Verfasst: 13. Oktober 2009 15:00
von schlingel
Hallo,

ich nutze Qt 4.5 und QextSerialPort 1.1 unter Windows. Wenn ich einkommende Daten lesen möchte mit

Code: Alles auswählen

char buff[1024000];
int numBytes = Port->bytesAvailable();
int i = Port->read(buff, numBytes);
buff[i] = '\0';
bekomme ich immer nur maximal 16kB. Das scheint wohl der Input-Buffer der seriellen Schnittstelle zu sein.


Wenn ich

Code: Alles auswählen

QByteArray Data = Port->readAll();
nehme, bekomme ich immerhin 32 kB.

Gibt es eine Möglichkeit einen viel größeren Buffer-Speicher anzulegen. Ich möchte nämlich Daten von dem Port kontinuierlich aufnehen. Oder muss ich alle 10 ms oder so, den Buffer auslesen und die Daten selber zwischenspeichern?

Danke

Verfasst: 13. Oktober 2009 15:23
von RavenIV
Versuch es mal mit QSerialDevice von hier: http://fireforge.net/projects/qserialdevice/

Das hab ich in Benutzung und man kann sich per Signal benachrichtigen lassen, wenn Daten angekommen sind.

Und von einer Beschränkung auf 16 kB hab ich noch nichts gesehen.