Qextserialport readLine() is langsam

Gast #3214401
Lesenswert?

1
void Dialog::onReadyRead()
2
{
3
    if (port->canReadLine()) {
4
       //QString recvData=(QString::fromLatin1(port->readAll())); //works fast, but I want to read lines (lf)
5
       QString recvData=(QString::fromLatin1(port->readLine())); //works, but very slow
6

7
       ui->recvEdit->insertPlainText(recvData); //Data from uC with LF
8

9
      }
10
}

Die Methode readLine() verzögert die Ausgabe auf der GUI enorm (im 
Sekundenbereich). Auch readLine(40) o.ä. um die maximal auszulesenden 
Bytes zu begrenzen bringt keine Änderung.

readAll() dagegenen wird schnell ausgeführt.

Ideen?
Gast #3214458
Lesenswert?

dafür mache ich ja vorher ein:
1
if ( port->canReadLine() )

oder habe ich da ein Knoten im Kopf?

Selbst wenn es so wäre wie du meinst, dann würde die Ausgabe doch 
trotzdem in quasi Echtzeit erfolgen.
Zur Zeit ist es so, dass der uC alle 500ms etwas sendet. Sobald ich nach 
einer uC-Betriebszeit von ca. 10 Sekunden noch für weitere 2-3 Sekunden 
Zeichen auf meiner GUI bekomme

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren