ANSI escape Befehl gesucht

OP #5503875
Lesenswert?

Hallo Leute,
ich gebe momentan ein paar Werte über die UART raus.
Alle Werte befinden sich in einer Zeile.
Am Anfang einer Ausgabe Lösche ich erst alles per "\033[2J" und schreibe 
es dann neu im Terminal(es soll nicht jedes mal eine neue Zeile 
entstehen).

Momentan kann man sehen dass die Zeile von links nach rechts aufgebaut 
wird, was nicht so schön ist.

Nun zu meiner Frage:

Gibt es die möglichkeit den Text erst sichtbar zu machen sobald die 
Zeile fertig geschrieben ist?
Gast #5503877
Lesenswert?

> Gibt es die möglichkeit den Text erst sichtbar zu machen
> sobald die Zeile fertig geschrieben ist?

Ich glaube: nein

Zu Zeiten, als wir noch mit Modems kommunizierten, war es völlig normal, 
dass man dem Aufbau der Bildschirmseiten zuschauen konnte. Und danach 
wurde an diesen Sequenzen meines Wissens nach nichts mehr geändert.
#5503956
Lesenswert?

Es sieht wesentlich besser aus, wenn man möglichst wenig löscht sondern 
den alten Inhalt überschreibt. Im einfachsten Fall verwendet man statt 
"\033[2J" nur "\r". Man kann die Textausgabe gezielt in einer bestimmten 
Zeile und Spalte beginnen mit z.B. "\033[1;11H" für Zeile 1, Spalte 11. 
Wenn die Texte unterschiedlich lang sind, kann man (nur!) den Rest der 
Zeile mit "\033[K" löschen.

So ähnlich betreibe ich Displays mit 4800 Baud, da kann man den 
Bildaufbau natürlich beobachten, aber nur beim ersten Mal. Wenn sich 
eine Information ändert, sieht man kein Flackern. Beschleunigt wird das 
ganze, indem ich den statischen Text nur einmal schreibe und dann nur 
noch die Änderungen gezielt ausgebe.
Gast #5503995
Lesenswert?

Mathias F. schrieb:
> Gibt es die möglichkeit den Text erst sichtbar zu machen sobald die
> Zeile fertig geschrieben ist?

Theoretisch ist es möglich. Praktisch hängt es von der Funktion des 
Terminals ab - und die meisten Emulatoren können es nicht.

Schau dir die Page-Kommandos wie Next Page (NP), Page Position Absolute 
(PPA), Page Position Forward (PPF) usw. in 
http://www.ecma-international.org/publications/standards/Ecma-048.htm 
an. Dummerweise sind die richtigen Sequenzen auch noch schwierig zu 
konstruieren, weil der Standard eine übertrieben komplizierte 
Darstellung gewählt hat.
Gast #5504503
Lesenswert?

MaWin schrieb:
> Mathias F. schrieb:
>> Gibt es die möglichkeit den Text erst sichtbar zu machen sobald die
>> Zeile fertig geschrieben ist?
>
> Viele Terminals können mehrere Seiten.
> Also abwechselnd Seite 1 bzw. Seite 2 komplett aufbauen und danach mit 1
> Kommando umschalten.

Also das gleiche, was Jack schon vorgeschlagen hatte.
Nur bei ihm war ein Link dabei, in dem man nachlesen kann...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren