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

Alles rund um die Programmierung mit Qt
Antworten
schlingel
Beiträge: 13
Registriert: 7. Oktober 2009 16:57

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

Beitrag 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
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag 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.
Linux, das längste Text-Adventure aller Zeiten
Antworten