mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ansteuerung Terminal


Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frankl (Gast)
Datum:

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

Gruss Frankl

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.