Befehlssyntax

Alle Befehle sind gleich aufgebaut:


Start

Befehlscode

Parameter

Abschluss

Hinweis

#

XXX

123, $52, %01101010, "Hello"; R0

LF

Nach Strings mit ; trennen, sonst mit , oder ;

ASCII :    35 (0x23)

UniCode: 35 (0x23 0x00)

3-stellige Buchstabenfolge

Angabe der Parameter

ASCII :    10 (0x0A)

UniCode: 10 (0x0A 0x00)

CR 13 (0x0D) ist optional


Alle Befehle beginnen mit "#", gefolgt von Buchstaben, Ziffern und Kommas bzw. Semikolon. Übertragen werden diese als ASCII- or Uni-Codes.

Manchmal ist es sinnvoll einzelne Parameter hexadezimal oder binär zu übertragen (siehe "Parameter").

Auf jeden Fall werden alle Befehle und Daten zusätzlich in ein ShortProtokoll bzw.SmallProtokoll verpackt. Für erste "Gehversuche" empfiehlt es sich dieses vorübergehend abzuschalten (Pin DPROT auf GND).


Parameter

Zahlen



123

dezimale Übergabe als ASCII-Zeichen


$5A

hexadezimale Übergabe als ASCII Zeichen


%1010001

binäre Übergabe als ASCII Zeichen


5-8

Übergabe eines Bereichs. Befehle die Eigenschaften mehrerer Objekte beeinflussen können als Objektbereich übergeben werden. In diesem Fall Objekt-ID 5,6,7,8


?x

Code von einem Zeichen (Unicode/ASCII)


R0 ... R499

Übergabe des Registerwertes


Q0 ... Q499

Indizierte Übergabe des Registerwertes (Pointer) R (R0 ... R499)


(....)

Kalkulationsstring Ergebnis übernehmen


G len32 data....

Übergabe von binären Daten: len32 gibt die Datenlänge an (bereits als binärer 32-Bit Wert)


!index!

Werte des Indexes aus einem Stringfile übernehmen


A0..A499I0..maxindex

Zugriff auf Array: A3I42 or A(R0)I(R5+1)

Strings



"string" oder 'string'

normale Stringübergabe


"str" 32 "str"

Normaler String mit beliebigen Codes, welche mit in den Gesamtstring eingetragen werden


"str1"; "str2"

Semikolon bildet den Stringabschluss, wichtig bei der Übergabe zweier Strings oder wenn andere Parameter folgen.


S0 ... S499

Stringregister übernehmen


T0 ... T499

Stringregister aus Registernummer übernehmen S(R0 ... R499)


U"Hello"

Zeichen nach dem U als 16 Bit Unicode (bis zum nächsten # oder V auch CR + LF)


V"Hello"

Zeichen nach dem V als 8 Bit ASCII (bis zum nächsten # oder U auch CR + LF)


!index!

String des Indexes aus einem Stringfile übernehmen


A0..A499I0..maxindex

Zugriff auf Array: A3I42 or A(R0)I(R5+1)


X0..X9

X0 = Zuletzt gefundene RegEx; X1..X9 =Subranges der Regular Expressions


Die einzelnen Parameter werden mit Leerzeichen (' '), Komma (','), Semikolon (';') oder Punkt ('.') getrennt. Für die Trennung von Strings ist ein Semikolon zwingend erforderlich.


Befehlsabschluss

Der Befehlsabschluss ist immer ein LF (0x0A). Ein vorangestelltes CR (0x0D) ist erlaubt und wird ignoriert.


Kommentare

  • Display/direkte Kommunikation
    In Makrofiles können Kommentarzeilen eingefügt werden. Ein Kommentar beginnt mit #- und gilt bis zum Zeilenende / Befehlsabschluss (LF). Gilt für die direkte Kommunikation über eine der seriellen Schnittstellen zur Laufzeit.
  • uniTFTDesigner
    Hier beginnt ein Kommentar mit /** und gilt bis zum Ende der Zeile. Um Speicherplatz im Display zu sparen, werden diese Kommentare nicht im Display abgelegt. Kommentar erscheinen im uniTFTDesigner in grau.


Kalkulationen

Jeder numerische Parameter kann durch eine Kalkulation ersetzt werden. Die Kalkulation muss in Klammern () eingeschlossen als Parameter übergeben werden. Unter den Kalkulationsbefehle finden Sie eine Auflistung aller Operationen, darunter mathematische und logische, aber auch Modul-bezogene, wie zum Beispiel Uhrzeit oder Objekteigenschaften auslesen sowie Portfunktionen.


Pfadangaben

Es gibt drei Arten eine Datei mit/ohne Pfadangabe zu lokalisieren. Achtung: Die Groß- und Kleinschreibung ist bei der Pfad- und Dateiangabe zu berücksichtigen.



Absolute Pfadangabe

</Ordner/Ordner/Ordner/Projekt/picture/Test.epg>

#PPP 1,</Ordner/Ordner/Ordner/Projekt/picture/Test.epg>,100,100


Relative Pfadangabe

<p:/picture/Test.epg>

#PPP 1,<p:/picture/Test.epg>,100,100


Standard Pfad

"Test.epg"

#PPP 1,"Test.epg";100,100 (Achtung: Semikolon nach dem Text)


  • Die absolute Pfadangabe sollte verwendet werden, um mit Dateien außerhalb des gesetzten Projektpfades zu arbeiten.
  • Der Projektpfad, welcher durch den Befehl #XPS definiert wird, dient der Vereinfachung. Es entfällt die Angabe der übergeordneten Verzeichnisse. Durch die Eingabe von "p:" vor der Pfadangabe wird der Projektpfade automatisch eingefügt.
  • Weiterhin gibt eine Reihe von Standard Ordner, die automatisch unterhalb des Projektordners erstellt werden und nie verändert werden dürfen. Sonst kann es passieren, dass Befehlsparameter, die automatisch auf diese Ordner zugreifen, nicht mehr funktionieren! Unterordner sind in diesem Bereich nicht erlaubt.



Winkel, Definition

Winkel werden im mathematischen Drehsinn angegeben, d.h. gegen den Uhrzeigersinn.

Die Eingabe von negativen Winkeln ist möglich.




Objektbereich, Ansprechen von mehreren Objekten gleichzeitig

Bei Befehlen, welche die Eigenschaft besitzen ein oder mehrere Objekte (gekennzeichnet durch: Object-id...) zu beeinflussen, kann die Angabe des Objektbereichs durch einen Bindestrich "-" angegeben werden. So löscht z.B. der Befehl #ODI 1-99 alle Objekte mit den IDs 1 bis 99.

Alternativ kann auch eine Liste mehrerer Objekte im Befehl übergeben werden. z.B. #ODI 1,2,5,100


Übergabe von binäre Daten

Normalerweise erwartet das Display alle Daten/Parameter als ASCII Zeichen, also z.B. für den Wert 4242 die 4 Ziffern 0x34 0x32 0x34 0x32.

Für Mikrokontrolleranwendungen bedeutet es jedoch einen erhöhten Aufwand, 8-, 16- oder 32-Bit Werte für die Übertragung in ASCII-Darstellung umzuwandeln. Mit der Anweisung "G len32 data...." können diese Werte direkt übergeben werden. Im folgenden Beispiel soll das Register 27 auf den Wert 4242 gesetzt werden.

Nach den Befehlsbuchstaben (in gelb) folgt die Kennung "G" für binäre Daten. Die Länge errechnet sich wie folgt: Register ID (16 Bit) + Registerinhalt (32 Bit) = 6 Byte. Die Übertragung der Daten erfolgt jeweils im little-endian Format (Intel):



Da zusammen mit dem Schalter "G" eine Längenangabe der binären Daten erfolgt, kann danach die Übertragung in ASCII fortgesetzt werden.