Original funktion:
void Dialog::onReadyRead() { if (port->bytesAvailable()) { ui->recvEdit->moveCursor(QTextCursor::End); ui->recvEdit->insertPlainText(QString::fromLatin1(port->readAll())); } } |
Fehlerfreie Ausgabe in QTextEdit (Projektspezifische Variable mit Wert..):
azimut_145 azimut_145 azimut_145 <usw ..> |
Geänderte funktion:
void Dialog::onReadyRead() { if (port->bytesAvailable()) { ui->recvEdit->moveCursor(QTextCursor::End); ui->recvEdit->insertPlainText(QByteArray("some text:")); ui->recvEdit->insertPlainText(QString::fromLatin1(port->readAll())); } } |
Fehlerbehaftete Ausgabe in QTextEdit:
some text:azimut_145 some text:azimut_145 some text:azimut_145 some text:azimut_145 some text:azimut_145some text: some text:azimut_some text:145 some text:azimusome text:t_145 some text:azsome text:imut_145 some text:azimut_145 some text:azimut_145 <usw ..> |
Die Ausgabe erfolgt also verschachtelt und zufällig! Meine Vermutung: Irgendwelche Threads werden parallel abgearbeitet. Lösungsvorschläge? Programminfos: Qextserialport 1.2 beta qt 5.0.1 unter qt creator 2.6.2 Gruß Stefan