LabVIEWForum.de
String von Mikrocontroller einlesen mit Listbox - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: String von Mikrocontroller einlesen mit Listbox (/Thread-String-von-Mikrocontroller-einlesen-mit-Listbox)



String von Mikrocontroller einlesen mit Listbox - tatnau - 12.08.2015 14:12

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


RE: String von Mikrocontroller einlesen mit Listbox - GerdW - 12.08.2015 14:19

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!)


RE: String von Mikrocontroller einlesen mit Listbox - tatnau - 12.08.2015 15:15

- 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.


RE: String von Mikrocontroller einlesen mit Listbox - GerdW - 13.08.2015 07:28

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!


RE: String von Mikrocontroller einlesen mit Listbox - tatnau - 17.08.2015 10:06

Funktioniert nun alles, dankesehr!