LabVIEWForum.de - String von Mikrocontroller einlesen mit Listbox

LabVIEWForum.de

Normale Version: String von Mikrocontroller einlesen mit Listbox
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Wink2

Ich habe eine Frage zu meinem Programm (anhängend)

Ich lese die Strings meines TI M430G2553 über eine serielle Schnittstelle aus und lasse die einzelnen Stringketten in der Listbox anzeigen.
Allerdings bilden sich bei der Anzeige "Blöcke" und manchmal ist der Anfang einer Zeile etwas "reingeschoben", die Zeile beginnt also mit einem Leerzeichen.

Liegt das am Programm oder eventuell am Versuchsaufbau/am Protokoll??! Blink

Vielen Dank für die Hilfe!
Tatiana
Hallo Tatiana,

Zitat:Liegt das am Programm oder eventuell am Versuchsaufbau/am Protokoll??!
Sowohl als auch! Wobei es hilfreich wäre, wenn du dein "Protokoll" erläutern würdest…

Zitat:lasse die einzelnen Stringketten in der Listbox anzeigen. Allerdings bilden sich bei der Anzeige "Blöcke" und manchmal ist der Anfang einer Zeile etwas "reingeschoben", die Zeile beginnt also mit einem Leerzeichen.
Es gibt da die Funktion TrimWhitespace, die könnte hier hilfreich sein!
Wenn du genau wissen willst, welches Zeichen da im String enthalten ist, kannst du dir ja mal einen String in Hex- oder \-Code-Anzeige einrichten…

- Wieso nimmst du InsertIntoArray, wenn du eigentlich ein Array mit BuildArray aufbauen willst?
- Wieso fügst du leere Strings ins Array, wenn du gerade nicht von der Schnittstelle lesen willst?
- Wieso muss der VISA-Puffer in jeder Iteration erneut festgelegt werden? Wieso überhaupt?
- Wieso musst du aus der Listbox lesen? Warum kein Schieberegister? (THINK DATAFLOW!)
- Wieso nimmst du InsertIntoArray, wenn du eigentlich ein Array mit BuildArray aufbauen willst?

Hast recht, das hat geholfen!

- Wieso muss der VISA-Puffer in jeder Iteration erneut festgelegt werden? Wieso überhaupt?

Ohne dem liest es nichts in die Listbox ein.

- Wieso musst du aus der Listbox lesen? Warum kein Schieberegister? (THINK DATAFLOW!)

Was meinst Du damit?

Nun funktioniert es wie erwartet, die Listbox geht allerdings nicht zu scrollen. Ich vermute es liegt daran, weil nur ein "item" erzeugt wird. Wie kann man das denn ändern? Gut wäre es, wenn die Listbox automatisch scrollt, sodass man die neu eingelesenen Zeilen gleich wieder verfolgen kann. Sinn ist es hier, die laufende Kommunikation optisch wahrnehmen zu können.
Hallo Tatiana,

Zitat:Nun funktioniert es wie erwartet, die Listbox geht allerdings nicht zu scrollen. Ich vermute es liegt daran, weil nur ein "item" erzeugt wird. Wie kann man das denn ändern?
Momentan erzeugst du nur einen langen String im Schieberegister, anstatt wie vorher ein Array of Strings. Die Nutzung des Schieberegisters ist schon prima, nur der Datentyp im Schieberegister ist verkehrt! Erstelle ein Array of Strings, so wie zuvor und so, wie du es für die Listbox brauchst…
Edit: Ein Schieberegister sollte auch initialisiert werden!

Zitat:Gut wäre es, wenn die Listbox automatisch scrollt, sodass man die neu eingelesenen Zeilen gleich wieder verfolgen kann. Sinn ist es hier, die laufende Kommunikation optisch wahrnehmen zu können.
Wenn man die aktuellsten Meldungen immer lesen können will, dann fügt man sie am Anfang der Tabelle/des Array ein: die Listbox scrollt dann die alten Meldungen nach unten weg…
Andere Möglichkeit: man kann die Scrollposition auch per Propertynode programmatisch festlegen!
Funktioniert nun alles, dankesehr!
Referenz-URLs