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
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/
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.
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
Danke für die Mühe hatte auch mal etwas vo einem offset + 31 dez gelesen. Gruss Frankl
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.