Daten durch SerialPort (Leider fällt mir nichts zum Betreff ein, sorry)

Alles rund um die Programmierung mit Qt
Antworten
monet123
Beiträge: 8
Registriert: 28. Mai 2017 21:04

Daten durch SerialPort (Leider fällt mir nichts zum Betreff ein, sorry)

Beitrag von monet123 »

Hallo zusammen,

hab ein kleines Prob.

Ich wollte gerne die Eingangsdaten eines Sensors durch Arduino anderes darstellen
als diese ankommen.

So sehe ich die Daten im Reiter von Qt "Ausgabe der Anwendung"

Code: Alles auswählen

u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000016\r\n16\r\n15\r\n16\r\n15\r\n15\r\n15\r\n15\r\n1"
"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000016\r\n16\r\n15\r\n16\r\n15\r\n15\r\n15\r\n15\r\n16\r\n"
Das Programm ist abgestürzt.
Ich würde gerne die eingehenden Daten untereinander sehen.

Code: Alles auswählen

16
16
15
16
15
...
Damit habe ich es versucht aber das klappt leider nicht

Code: Alles auswählen

 QStringList bufferSplit = serialBuffer.split("");
       if(bufferSplit.length() < 2 )
        {
            serialData = arduino->readAll();
            serialBuffer += QString::fromStdString(serialData.toStdString());
        }else{
            qDebug() << bufferSplit;
          qDebug() << serialBuffer;
        }
Danke für eure Hilfe :)

Gruß monet
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Daten durch SerialPort (Leider fällt mir nichts zum Betreff ein, sorry)

Beitrag von Christian81 »

Es sind Daten, keine Strings. Also würde ich es mal mit einem QByteArray probieren die Daten korrekt zu parsen. Binäre Daten als Strings zu behandeln kann definitiv nicht funktionieren.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
monet123
Beiträge: 8
Registriert: 28. Mai 2017 21:04

Re: Daten durch SerialPort (Leider fällt mir nichts zum Betreff ein, sorry)

Beitrag von monet123 »

Hi @Christian81. :)
Danke für deine Antwort! Werde es ausprobieren. Feedback wird kommen!!

Gruß monet
monet123
Beiträge: 8
Registriert: 28. Mai 2017 21:04

Re: Daten durch SerialPort (Leider fällt mir nichts zum Betreff ein, sorry)

Beitrag von monet123 »

Hallo!

Habe mal folgendes versucht...

Code: Alles auswählen

    serialData = arduino->readAll();//QByteArray serialData;
    QString string = QString::fromUtf8(serialData,2);
    qDebug() << string.trimmed();
Was ich nun zu sehen bekommen ist das

Code: Alles auswählen

"17"
""
"1\u0000"
"6"
"17"
"\u0000"
"16"
""
"17"
"16"
"\u0000"
"1\u0000"



hmmm... komme da nicht weiter :cry: könnte mir vielleicht jemand einen Tipp geben???

Danke!!!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Daten durch SerialPort (Leider fällt mir nichts zum Betreff ein, sorry)

Beitrag von Christian81 »

Nochmal: Wenn Du binäre Daten als String interpretierst kann das nichts werden... Du muss sie als binäre Daten im QByteArray verarbeiten
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
monet123
Beiträge: 8
Registriert: 28. Mai 2017 21:04

Re: Daten durch SerialPort (Leider fällt mir nichts zum Betreff ein, sorry)

Beitrag von monet123 »

Hallo QChristian81,

danke nochmal für deine Mühe!

Das habe ich im Video nachgebaut und es hat alles funktioniert!!
Ich kann die Daten auch in Qt empfangen und problemlos widergeben.

https://www.youtube.com/watch?v=AX-HhBXBzGg

Was ich nicht verstehe ist, warum das nicht mit den Daten klappt, die über einen
Ultraschallsensor an Qt übertragen werden. Es müsste doch egal sein,
ob es Temperaturdaten oder Abstandsdaten einen Distanzsensors sind.
Beide Daten verändern sich dynamisch. Wo soll dann der Unterschied sein??

Danke

monet
Antworten