Qserialdevice unter Windows Probleme
Verfasst: 23. Februar 2011 12:41
Hallo,
ich verwende Qt 4.7.1, Qserialdevice 0.3 und Windows XP.
Folgendes möchte ich machen:
TX und RX sind gekoppelt (was ich sende kann ich zurücklesen)
1. 3 Bytes senden
2. die gleichen 3 Bytes empfangen und vergleichen
3. entsprechend dem 3ten byte entweder weiter senden oder die daten eines anderen empfangen.
Jetzt habe ich das Problem mit dem zurücklesen:
daten = m_port->readAll(); // geht fuer TX
daten = m_port->read(3); // geht fuer RX
Benutze ich readAll(), dann habe ich noch alte Daten, die ich an andere Stelle mit read() schon ausgelesen habe in "daten". Die Doku ist für mich nicht verständlich? Was macht readAll()? Werden alle Daten gelesen und der UART Puffer geleert oder nicht? Was macht read() im gegensatz anders?
Unter Linux verhält es sich anders.
Eine ne Idee?
Bronko
ich verwende Qt 4.7.1, Qserialdevice 0.3 und Windows XP.
Folgendes möchte ich machen:
TX und RX sind gekoppelt (was ich sende kann ich zurücklesen)
1. 3 Bytes senden
2. die gleichen 3 Bytes empfangen und vergleichen
3. entsprechend dem 3ten byte entweder weiter senden oder die daten eines anderen empfangen.
Jetzt habe ich das Problem mit dem zurücklesen:
daten = m_port->readAll(); // geht fuer TX
daten = m_port->read(3); // geht fuer RX
Benutze ich readAll(), dann habe ich noch alte Daten, die ich an andere Stelle mit read() schon ausgelesen habe in "daten". Die Doku ist für mich nicht verständlich? Was macht readAll()? Werden alle Daten gelesen und der UART Puffer geleert oder nicht? Was macht read() im gegensatz anders?
Unter Linux verhält es sich anders.
Eine ne Idee?
Bronko