|
|
- Modi
zur Schreibweise von ESC-Sequenzen
-
Zur Angabe
von ESC-Sequenzen kennt die Anzeige zwei Verfahren, die mit
Binärmodus und ASCII-Modus bezeichnet werden. Im
Binärmodus, werden die Zeichen der ESC-Sequenz mit ihren
hexadezimalen Werten zur Anzeige gesendet, jeder Parameter ist
ein Byte lang.
-
-
Beispiel:
-
Zum Zeichnen
eine Rechtecks auf der Grafikanzeige wird im Datenblatt die
nachfolgende ESC-Sequenz genannt. ESC G
R x1 y1 x2 y2. Bei ihr sind (x1,y1) und (x2,y2) die
Koordinaten zweier Punkte zwischen denen das Rechteck
aufgespannt werden soll. Hier mögen ihre konkreten Werte
(10,20) sowie (50,80) lauten. Im Binärmodus würde
hieraus ..
-
-
Binär-Modus: 1B
47 52 0A 14 32 50
-
-
Im
ASCII-Modus kann anstelle des ESC-Codes (1Bh), das Zeichen '#'
verwendet werden. Es folgen die Buchstaben, welche die
ESC-Sequenz kennzeichnen. Parameter einer # -Sequenz werden als
ASCII-Codefolgen angehängt, und müssen deswegen durch
das Trennzeichen Komma ',' voneinander separiert werden. Für
das obigen Beispiel ergäbe sich der String ..
-
-
ASCII-Modus:
#GR 10,20,50,80
-
-
Eine der
beiden Versionen von ESC-Sequenzen muss bei der Programmierung
des Touchdisplays in der EA-Kit IDE oder beim Schreiben von
Programmen verwendet werden.
-
-
In der
Sprache C könnte man zur Bildung des ESC-Strings also
schreiben ..
-
char*
kommando ="#GR10,20,50,80";
-
-
oder unter
Verwendung von Ersatzzeichen und einem Array.
-
char
kommando[]= "\x1B""GR""\x0A\x14\x32\x50";
-
-
Bei der
zuletzt vorgestelleten Schreibweise ist es sinnvoll, und aus
Gründen die hier nicht weiter verfolgt werden sollen,
Folgen von Ersatzzeichen und Folgen von ASCII-Zeichen durch
Gänsefüsschen einzuschliessen und
aneinanderzureihen. Der Vorteil der letzten Schreibweise liegt
darin, dass auf die Bytes des Arrays programmiertechnisch
einfach zugegriffen werden kann und somit Werte in den
Parametern änderbar sind. Eine Änderung des
Wertes 0Ah könnte lauten,
-
kommando[3]
= 0x00;
-
-
Damit wäre der Parameter von x1 auf 0
gesetzt. Das ist einfacher, als die zwei Bytes der ASCII-Folge
10 (31h und 30h) zu überschreiben. Da Zeichenfolgen
(Strings) in C durch einen 0h Eintrag abgeschlossen werden, also
nullterminiert sind, sollte dem Treiberprogramm, welches den
Array-String senden soll, besser dessen Länge mitgeteilt
werden. Die Nullterminierung ist kein guter Anhalt für das
Ende des Strings, wie aus obigem Beispiel hervorgeht. Ein Byte
welches eine 0 enthält, kann durchaus ein Parameter sein
und nicht die Endekennung des Strings.
|
|
|
|
Koordinatenangaben
beim EA eDIP240
Die Anzeige
verfügt über 240 Bildpunkte (Pixel) in horizontaler
Richtung und 128 Bildpunkte in vertikaler Richtung. Da der
Ursprung des Koordinatensystems, wie bei Bildschirmen üblich,
(oben, links)=(x,y)=(0,0) liegt und die Koordinaten mit (0,0)
beginnen, sind für die x-Koordinaten Werte zwischen 0 und
239 und für die y-Koordinaten Werte zwischen 0 und 127
möglich. Dies gilt für alle ESC-Sequenzen, in denen
Koordinaten angegeben werden müssen. Die Koordinatenangaben
haben anders als im Terminalmodus keinen Bezug zu dem gewählten
Zeichensatz. Sie benennen immer absolute Pixelpositionen der
Anzeige.
Der oben festgestellte
Koordinatenursprung bleibt auch bei der Drehung der Ausgabe um
90° nach rechts erhalten. Andere Drehungen sind nicht
möglich.
|
|