Steuerbefehl für das Löschen des Display (C-Code)

Gast #4038778
Lesenswert?
• ▲
▼
Hallo zusammen,

ich sende per UART jede Sekunde die aktuelle Raumtemperatur. Nun möchte 
ich, dass die Ausgabe über ein Terminalprogramm einmalig erscheint und 
nicht nacheinander. Das heisst nach der Ausgabe soll das Display 
gelöscht werden.

Mit dem Terminalprogramm PuTTy funktioniert das auch mit dem 
Steuerbefehl "\x1B[2J\x1B[;H". Jedoch nicht mit dem Terminalprogramm 
HTerm oder in einer Terminal-App wie z.B. Bluetooth Terminal am 
Smartphone (Temperatur wird über ein Bluetooth-Modul an das Smartphone 
gesendet).

Kann mir jemand eine Lösung für das Problem nennen bzw. weitere 
Steuerbefehle?

Beispiel:
1
void send_uart_message()
2
{
3
  if (uart_tx_flag == 1)
4
  {
5
    Puffer_output[0]='\0';
6
    Puffer_temp[0]='\0';
7
    
8
    dtostrf(temperatur, 3, 1, Puffer_temp);    
9
    
10
    put_string("\x1B[2J\x1B[;H");
11

12
    while (uart_tx_flag != 1)
13
    {
14
    }
15
        
16
    strcat(Puffer_output, "T: ");
17
    strcat(Puffer_output, Puffer_temp);
18
    strcat(Puffer_output, "'C");
19
        
20
    put_string(Puffer_output);
21
    
22
    messung_1s = 0;
23
  }
24
}
#4038787
Lesenswert?
• ▲
▼
Timmy schrieb:

> Kann mir jemand eine Lösung für das Problem nennen

Du musst dein Terminalprogramm studieren (bzw. die Doku dazu), welche 
Emulation es anbietet. Viele unterstützen die sog. VT100 Emulation. Aus 
der stammt auch die von dir benutze Sequenz.

http://www.ccs.neu.edu/research/gpc/MSim/vona/terminal/VT100_Escape_Codes.html

Wenn das Terminalprogramm, das du benutzt, in den Konfigurationsoptionen 
dazu gebracht werden kann, VT100 zu 'sprechen', bist du aus dem 
Schneider. Wenn nicht, kannst du nur versuchen rauszufinden, was 
unterstützt wird. Im schlimmsten Fall kannst du noch einen Formfeed (das 
ist ein ASCII Zeichen http://de.wikipedia.org/wiki/Steuerzeichen) 
versuchen. Wenn das auch nicht klappt, dann hast du schlechte Karten.
#4038793
Lesenswert?
• ▲
▼
@Timmy (Gast)

>Mit dem Terminalprogramm PuTTy funktioniert das auch mit dem
>Steuerbefehl "\x1B[2J\x1B[;H".

Ist doch super!

> Jedoch nicht mit dem Terminalprogramm
>HTerm

Das ist auch kein normales Terminalprogramm! Das ist eins zum Debuggen! 
Das kann das nicht.

> oder in einer Terminal-App wie z.B. Bluetooth Terminal am
>Smartphone (Temperatur wird über ein Bluetooth-Modul an das Smartphone
>gesendet).

Die Steuercodes oben funktionieren nur, wenn das Termiinal eine VT100 
Emulation oder ähnliches beherrscht.

>Kann mir jemand eine Lösung für das Problem nennen bzw. weitere
>Steuerbefehle?

Dazu müste man die Eigenschaften deines Bluetooth Terminals kennen.
Gast #4038820
Lesenswert?
• ▲
▼
>Im schlimmsten Fall kannst du noch einen Formfeed ... versuchen.

Der schlimmste Fall findet sich als Kommentar in der alten termcap.

# There are known to be at least three flavors of the tty40
# The 40-1 is a half duplex terminal and is hopeless.  The 40-2 is
# braindamaged but has hope and is described here. The 40-4 is a 3270
# lookalike and beyond hope.
Gast #4039296
Lesenswert?
• ▲
▼
./. schrieb:
> (VT100-)Bildschirm loeschen geht auch mit:

Damit das funktioniert, muss das Terminalprogamm zumindest über eine 
VT100-Emulation verfügen.

Heutzutage ist für solche Spielereien eher üblich, einen kleinen 
Web-Server laufen zu lassen, der die Datenanzeige als HTML-Page für 
beliebige Web-Browser zur Verfügung stellt.
Gast #4039352
Lesenswert?
• ▲
▼
> (VT100-)Bildschirm loeschen geht auch mit:

Damit das funktioniert, muss das Terminalprogamm zumindest über eine
VT100-Emulation verfügen.

Aaah, Captain Obvious,

Du solltest Deinen Parser auch auf Text in Klammern erweitern.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.