INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Verarbeiten von ESC-Sequenzen (VT100)



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

12.12.2022, 19:58 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2022 20:05 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Verarbeiten von ESC-Sequenzen (VT100)
Hallo Nominas,

Zitat:Leider läuft der Buffer immer noch voll.
Vielleicht hast Du (oder jemand andres) noch eine Idee?
Bei solchen "buffer overflow"-Problemen gibt es eine "einfache" Option: man baut sich einen Zwischenpuffer ein!

Also:
1.- Den seriellen Port so schnell wie möglich bedienen. (Tipp: verzichte nach Möglichkeit auf BytesAtPort, siehe auch hier.)
2. Daten in einen Zwischenbuffer packen: es bietet sich eine Queue an.
3. Daten auswerten und in eine Repräsentation umsortieren, die sich für die Table-Anzeige anbietet.
4a. Und jetzt der wichtigste Punkt: die Table nicht "andauernd" neu zeichnen, sondern nur 5-10× pro Sekunde!
4b. Und die Table natürlich nicht in der gleichen Schleife updaten, in der du die serielle Schnittstelle bedienen willst!

Andere Anmerkungen:
- FP-Elemente, die mit dem ConnPane verbunden sind, sollten nicht in irgendwelchen Strukturen versteckt werden. (Beispiel: Anzeige-Referenz und "read buffer" im subVI.)
- Die Panel-Referenz muss man nicht in jeder Iteration erneut auslesen, das kann man einmal vor der Schleife erledigen.
- In der Case-Struktur, in der du die Befehle für dein VT100 erstellt: man kann natürlich aus einem U8 ein Array of U8 bauen und das dann in einen String wandeln. Man kann aber auch eine String-Konstante in \-Code- (oder Hex-)-Anzeige verwenden und einfach den gewünschten Wert eintippen…
- Zu Punkt 2: du liest anscheinend "nur" Text und Farbinformationen aus. Damit könntest du den Zwischenbuffer als 2D-Array of strings und 2D-Array of color(s) (oder als 2D-Array of cluster[string color(s)] ) organisieren…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: Verarbeiten von ESC-Sequenzen (VT100) - GerdW - 12.12.2022 19:58

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Daten verarbeiten von RS232 über USB vitjee 1 5.414 18.01.2012 07:56
Letzter Beitrag: GerdW
  Messdaten seriell einlesen, verarbeiten und speichern Ma--Mut 2 9.786 24.07.2009 12:21
Letzter Beitrag: Ma--Mut
  Serielle Komunikation mit µC (VT100) zirni13 5 14.944 24.05.2007 13:55
Letzter Beitrag: IchSelbst
  Einlesen RS232 und Daten verarbeiten Christian18 6 7.631 02.03.2007 11:00
Letzter Beitrag: Christian18
  mehrere Daten von serieller Schnittstelle verarbeiten theodrin 2 4.112 22.05.2006 17:31
Letzter Beitrag: theodrin

Gehe zu: