Hallo zusammen,
es wird Zeit für ein Update
Zunächst grundsätzliches:
Ich bin der Meinung, dass die Tabelle die sinnvollste Möglichkeit ist, um so ein VT100-Terminal darzustellen.
Zum einen wegen der Koordinaten, zum anderen wegen der Formatierung.
Daher ist es auch notwendig das Array zu bilden und Zeichen für Zeichen in die Tabelle einzutragen.
Durch "Defer Panel Updates" (siehe Tipp von Martin in #2) wird die Tabelle dabei nicht mit jedem Zeichen aktualisiert.
Gerd:
Zitat:...trenne die Verwaltung der Daten von der Anzeige auf dem Frontpanel!
Martin:
Zitat:- Wozu also jedes mal jede Zelle einzeln aktualisieren.
Mit diesen Hinweisen kam ich nach einigen Versuchen auf ein Array mit Clustern [Char, Graphic, Changed].
Damit werden nur die Tabellen-Felder welche sich geändert haben aktualisiert.
Jetzt bin ich aber auf das Problem mit dem Error 1604 gestoßen:
https://forums.ni.com/t5/LabVIEW/Error-C...176/page/2
Auch nachdem ich den Fehler einfach ignoriert habe, funktioniert das DropDown "Comand" nicht richtig.
Ich will das nunmal nicht mit einem reinen String machen, aber Martin hatte etwas von X-Control geschrieben,
daher habe ich mir das mal angeschaut...
Das hat so gut funktioniert, dass ich letztendlich die zweite Schleife wieder weggelassen habe.
Im xControl steckt aber auch eine Schleife, vielleicht wird diese parallel ausgeführt...
Das Projekt ist längst noch nicht ausgereift. Es ist nur für meine spezielle Anwendung erstellt und getestet.
Aber ich hoffe, das jemand darauf aufbauen kann und seine Weiterentwicklung hier wieder veröffentlicht.
Bei der Elektronik, die ich hier habe, sendet ein USB-Baustein ca. alle 500ms genau 3968 Bytes.
Deswegen habe ich doch noch das "Bytes at port" verwendet und warte 0,2s, wenn keine Bytes anstehen.
Außerdem werden ESC- (bzw. CSI-) Sequenzen abgeschnitten, darum dieses Suchen nach dem letzten "[\1B".
Da hier mehrere Ideen zusammen gekommen sind und meine Version noch nicht fertig ist,
markiere ich mal keinen Beitrag als Lösung.
Vielen Dank an Martin und Gerd!
Gruß
Nominas