Forum: Mikrocontroller und Digitale Elektronik Ansteuerung Terminal


von Frankl (Gast)


Lesenswert?

Hat jemand schon mal ein Terminal(Programm) von einem AVR angesteuert
und wie muß die die ESC Sequence aussehen um den Cursor auf eine
besimmte Position im Screen zu setzen?
ESC[?;?f. Was muß in den ? stehen. Das 1. ? ist der Pointer (Variable)
für die line und das 2. ? ist der Pointer(Variable) für colunm. Muß
vielleicht auf die Pointer noch ein Offset ?.

Im vorraus Dank

von Rufus T. Firefly (Gast)


Lesenswert?

Was Du an ein Terminal senden musst, damit das Terminal damit irgendwas
sinnvolles macht, hängt vom Terminal(-Programm) und der verwendeten
Terminalemulation ab. Da gibt es sehr viele und sehr unterschiedlicht
(DEV VT52, VT100, Cybernex, Tektronix, TeleVideo 950 ...)

Die von Dir zitierte ESC-Sequenz lässt an VT100 resp. ANSI denken; wenn
Du nach diesen Begriffen googelst, wirst Du sicherlich weitergehende
Informationen finden.

Als Einstieg schon mal das hier http://vt100.net/emu/

von Frankl (Gast)


Lesenswert?

Die Emulation ist VT100, auch habe ich ein Handbuch.

Ich gehören nicht zur RTL2 Generation und habe auch noch: gar nicht
wird gar nicht zus.... in der Schule mitbekommen.

In dem Handbuch (und auch andere) steht Curs. Pos. (CUP)-Screen
ESC[Pl;PcH leider steht diese ESCape Sequence auch in diversen anderen
WWW Infos über das VT100. Bloß sagt mir das sehr wenig, da es keine
Erklärung für: P (vielleicht Pointer), l (vielleicht line), C
(vielleicht column). Auch gibt es keine Erklärung für den Wertebereich.
Numerical für line 1(c 1... oder offset. Ich suche eigentlich den
Praktiker der schon Erfahrung damit hat. Da meine programmierte ESCape
Sequencen wie Clear screen funktioniert, die ESCape Sequence "Cursor
position" aber nicht.

von Rufus T. Firefly (Gast)


Lesenswert?

Dann befreie einfach mal den von mir zitierten Link von der Zeichenfolge
"/emu"

Dort verlinkt findest Du ein Handbuch des VT100, aus dem ich jetzt mal
zitiere:


CUP – Cursor Position
ESC [ Pn ; Pn H   default value: 1

The CUP sequence moves the active position to the position specified by
the parameters. This sequence has two parameter values, the first
specifying the line position and the second specifying the column
position. A parameter value of zero or one for the first or second
parameter moves the active position to the first line or column in the
display, respectively. The default condition with no parameters present
is equivalent to a cursor to home action.


Also:

ESC[0;0H für die linke obere Ecke

ESC[0;79H für die letzte Zeichenposition in der ersten Zeile

von Frankl (Gast)


Lesenswert?

Danke für die Mühe hatte auch mal etwas vo einem offset + 31 dez
gelesen.

Gruss Frankl

von Rufus T. Firefly (Gast)


Lesenswert?

Bei den VT100-Escape-Sequenzen wie der genannten werden numerische Werte
als Klartext übertragen. Kein Offset, schon gar nicht 31 Dezimal.

Bei meinem zweiten Beispiel also die Zeichen
ESC (0x1b)
[ (0x5b)
0 (0x30)
; (0x3b)
7 (0x37)
9 (0x39)
H (0x4b)

Das bedeutet, daß die Länge der Sequenz von der Größe der verwendeten
Zahlen abhängt; wird die Zeilennummer zweistellig, wird die Sequenz
entsprechend länger.

Für die Positionierung auf das 13. Zeichen in der 35. Zeile wird

ESC (0x1b)
[ (0x5b)
1 (0x31)
2 (0x32)
; (0x3b)
3 (0x33)
4 (0x34)
H (0x4b)

gesendet.

von Frankl (Gast)


Lesenswert?

Alle klar, mein Problem war das ich einfach die errechneten Positionen
z.B. 12 direkt gesendet habe und somit die ESC Sequence abschmierte.

Danke Gruss Frankl

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.