Forum: PC-Programmierung Terminalcodierung


von Tilo (Gast)


Lesenswert?

Guten morgen.

Ich will einen uC über RS232 mit einem Terminalprogramm ansprechen.
Ich kann Text senden und empfangen, die Kommunikation klappt also.

Ich will Verschiedene Parameter in einer Tabelle ausgeben.
Die Parameter sollen jede Sekunde aktualisiert werden.
Die neuen Werte der Parameter sollen genau dort stehen, wo die
alten Parameter standen.

Wie kann man so etwas realisieren?

Als nächstes habe ich noch eine Frage zum Zeichensatz.
Ich arbeite mit deutschen Windows XP. Das Programm des uC
schreibe ich mit Programmers Notepad. Als Terminalemulation
wird ANSI verwendet.
Wie sind die Ascii-Zeichen über 127 definiert?
Welche Codepage?

Vielen Dank, Tilo

von Johnny (Gast)


Lesenswert?

Ich würde z.B. einen VT100 Terminal-Emulator nehmen. Für das verschieben 
des Cursors und noch 100 andere Funktionen, sind ESC Sequenzen 
zuständig:
http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlvt100.html

Grüsse
Johnny

von Tilo (Gast)


Lesenswert?

Super, genau so etwas wollte ich.

Kannst du mit das mit den ESC Sequenzen nochmal genauer erklären?
Beispiel: ESC[nA
Sende ich den String "ESC[nA" oder den Ascii-Code für ESC plus [nA,
also 0x1B + [nA ?

Bis dann, Tilo

von irgendein Rahul (Gast)


Lesenswert?

vt100.com

von Tilo (Gast)


Lesenswert?

Danke, auf vt100.net, nicht auf vt100.com, habe ich ein paar
Infos gefunden.

von Bartli (Gast)


Lesenswert?

> Wie sind die Ascii-Zeichen über 127 definiert?

Äh gar nicht ? Der ASCII-Code definiert nur 128 Zeichen, und die haben 
die Codes 0..127...

von Karl H. (kbuchegg)


Lesenswert?

Tilo Lutz wrote:
> Super, genau so etwas wollte ich.
>
> Kannst du mit das mit den ESC Sequenzen nochmal genauer erklären?
> Beispiel: ESC[nA
> Sende ich den String "ESC[nA" oder den Ascii-Code für ESC plus [nA,
> also 0x1B + [nA ?
>

Das n ersetzt du durch die Zahl die du brauchst.
Ich weiss jetzt nicht auswendig was ESC[nA macht.
Mal angenommen es verschiebt den Cursor n Zeilen
nach oben.
Wenn du also den Cursor 5 Zeilen nach oben haben
willst, schickst du   ESC[5A, wenn es nur 3 Zeilen
sein sollen: ESC[3A

Und ja ESC steht für ein ASCII Zeichen, nämlich das
ASCII Zeichen 0x1B. Für ESC[4A geht also
über die Leitung  0x1B  0x34  0x65

von Johnny (Gast)


Lesenswert?

> Und ja ESC steht für ein ASCII Zeichen, nämlich das
> ASCII Zeichen 0x1B. Für ESC[4A geht also
> über die Leitung  0x1B  0x34  0x65

Stimmt fast:
0x1B (ESC)
0x5B ([)
0x34 (4)
0x41 (A)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.