Funktionen und Kalkulationen
Die EA uniTFT-Serie kann zur Laufzeit kleine mathematische Aufgaben lösen. Zusätzlich bieten logische Operatoren die Möglichkeit, Entscheidungen zu treffen (ähnlich einer if-Anweisung). Um Benutzereingaben auswerten oder das Layout optimieren zu können, sind ebenso Kalkulationsbefehle vorhanden, die Objekteigenschaften auslesen können (wie zum Beispiel Bargraphwert, letzte Touchposition oder aber Objektbreite und -position). Die meisten Funktionen sind sowohl als Integer- als auch als Fließkommaberechnung vorhanden. Es muss darauf geachtet werden im jeweiligen Zahlenbereich zu bleiben, bzw. mit dem cast-Operator (float bzw. int) zu wandeln. Das Modul arbeitet mit little-endian (Intel-Format), das kleinstwertige Byte wird also zuerst übertragen. Hinweis: Kalkulationen müssen immer innerhalb von Klammern (...) ausgeführt werden. Siehe Parameterübergaben für weitere Informationen. |
signed Integer (32 Bit) |
Float IEEE 754 (32-Bit) |
Mathematische Funktionen
Arithmetische Funktionen |
+, -, * , /, () |
● |
● |
Betrag |x| |
● |
● |
|
Vorzeichen von x (-1, 0, 1): x<0, x==0, x>0 |
● |
● |
|
Modulo x%y (ab V1.4) |
● |
● |
|
Potenz x^y |
● |
● |
|
Wurzel |
● |
||
n-te Wurzel (ab V.1.5) |
sqrt(var,n) |
● |
|
Kommastellen abschneiden (ab V1.4) |
● |
||
Kommastellen runden (ab V1.4) |
● |
||
Logarithmus (Basis n) (ab V1.5) |
log(var,n) |
● |
|
Logarithmus (Basis 10) |
● |
||
Natürlicher Logarithmus (ln, Basis e) |
● |
||
Exponentialfunktion mit Basis e (ab V1.4) |
● |
||
Kommastellen abschneiden (ab V1.4) |
trunc(var) |
● |
|
Runden (ab V1.4) |
round(var) |
● |
|
Grad in Rad |
● |
||
Rad in Grad |
● |
||
Sinus |
● |
||
Kosinus |
● |
||
Tangens |
● |
||
Arkussinus |
● |
||
Arkuskosinus |
● |
||
Arkustangens |
● |
||
Arkustangens, Quadranten-richtig |
atan(y,x) |
● |
|
Minimum |
● |
● |
|
Maximum |
● |
● |
|
Durchschnitt |
● |
● |
|
Zufallswert sv <= x <= ev (max 65535) |
● |
● |
|
Zufallswert 0 <=x <= ev (max 65535) |
rand(ev) |
● |
● |
Zufallswert 0<= x<=1000 |
rand() |
● |
● |
Register increment / decrement
pre-/post- increment |
++Rx, Rx++ |
● |
● |
pre-/post- decrement |
--Rx, Rx-- |
● |
● |
Cast Integer ↔ Float
Integer Kalkulation ausführen, Float zurückgeben |
● |
||
Float Kalkulation ausführen, Integer zurückgeben |
● |
Bit Operatoren
Low Byte |
● |
||
High Byte |
● |
||
Low Word |
● |
||
High Word |
● |
||
Low Byte von High Word |
● |
||
High Byte von High Word |
● |
||
AND |
& |
● |
|
OR |
| |
● |
|
NOT |
~ |
● |
|
XOR |
^ |
● |
|
Shift links / rechts |
<<, >> |
● |
|
Bit setzen (Bit-Nr. 0..31) |
● |
||
Bit löschen (Bit-Nr. 0..31) |
● |
||
Exor Bit (Bit-Nr. 0..31) |
● |
||
Test Bit (Bit-Nr. 0..31) returns true or false |
● |
Logische Operatoren
UND |
&& |
● |
● |
ODER |
|| |
● |
● |
NICHT |
! |
● |
● |
Gleich, Ungleich |
==, != |
● |
● |
Kleiner, Kleiner gleich |
<, <= |
● |
● |
Größer, Größer gleich |
>, >= |
● |
● |
Entscheidung
If-Then-Else-Funktion |
● |
● |
|
Wert zwischen L1 und L2 (inklusive Grenzen) (ab V1.5) |
insideE(Wert,L1,L2) |
● |
● |
Wert zwischen L1 und L2 (ab V1.5) |
insideU(Wert,L1,L2) |
● |
● |
Breite (ohne Transformationen) |
● |
● |
|
Höhe (ohne Transformationen) |
● |
● |
|
Breite des Kindes (ab V1.7) |
objW(id, Child-ID) |
● |
● |
Höhe des Kindes (ab V1.7) |
objH(id, Child-ID) |
● |
● |
Position X (Aktueller Anker, bei Gruppen: relativ zum Elternobjekt) |
● |
● |
|
Position Y (Aktueller Anker, bei Gruppen: relativ zum Elternobjekt) |
● |
● |
|
Screen-Position X (angegebener Anker, auch bei Gruppen: Screenkoordinaten) |
objX(id, Anker) |
● |
● |
Screen-Position Y (angegebener Anker, auch bei Gruppen: Screenkoordinaten) |
objY(id, Anker) |
● |
● |
Screen-Position X des Kindes (angegebener Anker, auch bei Gruppen: Screenkoordinaten) (ab V1.7) |
objX(id, Anker, Child-ID) |
● |
● |
Screen-Position Y des Kindes (angegebener Anker, auch bei Gruppen: Screenkoordinaten) (ab V1.7) |
objY(id, Anker, Child-ID) |
● |
● |
Skalierung Breite |
● |
● |
|
Skalierung Höhe |
● |
● |
|
Scherung X |
● |
● |
|
Scherung Y |
● |
● |
|
Rotation |
● |
● |
|
Transparenz |
● |
● |
|
Layer |
● |
● |
|
Obj-ID anhand Gruppen-ID oder Screenweit (id=0) und Layer bekommen (ab V1.6) |
objLI(id, layer) |
● |
● |
Aktuellen Style auslesen |
● |
● |
|
Aktuellen Anker auslesen |
● |
● |
|
Testen ob Objekt existiert |
● |
● |
|
Testen ob Objekt sichtbar (ab V1.4) |
● |
● |
|
Erhalten der Obj-ID an Screenkoordinate (ab V1.4) |
● |
● |
|
Erhalten der Obj-ID an Screenkoordinate. Nur das Objektrechteck wird beachtet (schneller, Transparenzen werden ignoriert) (ab V1.4) |
● |
● |
Objektbefehle Menü
Letztes gültiges MenüItem auslesen |
● |
● |
|
Aktuell angezeigtes MenüItem (0=geschlossen) |
● |
● |
|
Check state von MenüItem (1=checked, 0=unchecked) |
● |
● |
|
Enable state von MenüItem (1=enabled, 0=disabled) |
● |
● |
Objektbefehle ComboBox
Letztes gültiges Item auslesen |
● |
● |
|
Aktuell angezeigtes Item (0=geschlossen, -1=kein item sichtbar) |
● |
● |
|
Enable state von Item (1=enabled, 0=disabled) |
● |
● |
Objektbefehle SpinBox
Letzte gültige Items auslesen |
● |
● |
|
Letzte gültiges Item aus Box der Spin-Gruppe auslesen |
objBL(id, boxnr) |
● |
● |
Aktuell angezeigte Items auslesen |
● |
● |
|
Aktuell angezeigtes Item aus Box der Spin-Gruppe auslesen |
objBV(id, boxnr) |
● |
● |
Enable state von Item (1=enabled, 0=disabled) |
● |
● |
Objektbefehle StringBox
Sichtbare Zeilen |
● |
● |
|
Absatzanzahl (=Zeilenanzahl ohne AutoWrap) |
● |
● |
|
Zeilenanzahl (nach AutoWrap) |
● |
● |
|
Stringzeilenanzahl (nach AutoWrap) |
objTN(id, Absatz nr) |
● |
● |
Sichtbare oberste Zeile |
● |
● |
|
Stringzeilenstart (nach AutoWrap) |
objTL(id, Absatz nr) |
● |
● |
Absatz aus Zeilennummer |
● |
● |
Objektbefehle PictureBox (ab V1.6)
Letztes gültiges Item auslesen |
● |
● |
|
Aktuell angezeigtes Item |
● |
● |
|
Enable state von Item (1=enabled, 0=disabled) |
● |
● |
Objekteigenschaften
Objekteigenschaften Bargraph/Instrument
Eingestellter Wert |
● |
● |
|
Auf dem Screen gezeichneter Wert (bei Animationen nicht zwingend gleich mit objIV(id)) |
● |
● |
|
EndWert |
● |
● |
|
StartWert |
● |
● |
Objekteigenschaften Pfade
Länge |
● |
● |
|
X-Koordinate anhand der Länge |
● |
● |
|
Y-Koordinate anhand der Länge |
● |
● |
|
Tangentenwinkel eines Punktes |
● |
● |
Touchfunktionen
Touchbutton / Touchtaste Zustand =1 ungedrückt =2 gedrückt |
● |
● |
|
Radiogroup: Aktiver Touchswitch (id) |
● |
● |
|
Letzte Touchtaste |
● |
● |
|
Letzter Keyboard code |
● |
● |
|
Anzahl der Touchpunkte (Down-Event) |
● |
● |
|
Letzte Touchposition X (Down- oder Drag-Event) |
● |
● |
|
Letzte Touchposition Y (Down- oder Drag-Event) |
● |
● |
|
Touchposition X von Punktnummer nr (Down- oder Drag-Event) |
touchX(nr) |
● |
● |
Touchposition Y von Punktnummer nr (Down- oder Drag-Event) |
touchY(nr) |
● |
● |
Zerlegungsfunktionen Menü
RootItem von Item |
● |
● |
|
Menü von Item |
● |
● |
|
Submenü von Item |
● |
● |
|
Item von Root, Menü, Submenü |
● |
● |
Zerlegungsfunktionen SpinBox
Eintrag Box 1 (8 Bit value) |
● |
||
Eintrag Box 2 (8 Bit value) |
● |
||
Eintrag Box 3 (8 Bit value) |
● |
||
Eintrag Box 4 (8 Bit value) |
● |
||
Item aus individuellen SpinBox Werten ((e4<<24) | (e3<<16) | (e2<<8) | e1) |
● |
||
Item from decimal number (only for spinbox with numeric entries 0-9) (from V1.7) |
spinD(Zahl, Dezimalstellen) |
● |
Diagramm (ab V1.5)
Diagramfenster seit letztem Touch-Ereignis geändert 0=keine Änderung 1=Verschiebung in x-Richtung 2=Verschiebung in y-Richtung 3=Zoom in x-Richtung 4=Zoom in y-Richtung |
diaWC(id) |
● |
● |
Automatisches Scrollen (0=aus, 1=an) |
diaWS(id) |
● |
● |
x-Offset des Diagramms (aktive Fläche) |
diaWX(id) |
● |
● |
y-Offset des Diagramms (aktive Fläche) |
diaWY(id) |
● |
● |
Gesamtbreite (aktive Fläche) |
diaWW(id) |
● |
● |
Gesamthöhe (aktive Fläche) |
diaWH(id) |
● |
● |
Segmentlänge x-Richtung |
diaPX(id) |
● |
● |
Segmentlänge y-Richtung |
diaPY(id) |
● |
● |
Verschiebung in x-Richtung |
diaMX(id) |
● |
● |
Verschiebung in y-Richtung |
diaMY(id) |
● |
● |
Zoom in x-Richtung |
diaZX(id) |
● |
● |
Zoom in y-Richtung |
diaZY(id) |
● |
● |
Startwert der Achse |
diaAS(id,Achsen-Nr.) |
● |
● |
Aktueller Startwert der Achse |
diaAA(id,Achsen-Nr.) |
● |
● |
Aktueller Wert der Achse von Koordinate |
diaAV(id, Achsen-Nr.,x,y) |
● |
● |
Aktueller Achsenintervall |
diaAP(id,Achsen-Nr.) |
● |
● |
1/100 Zeitwert von Koordinate (nur Zeitformat der x-Achse) |
diaAT(id,Achsen-Nr.,x) |
● |
● |
Nächstgelegene Linien-Nr. |
diaLN(id,x,y) |
● |
● |
Nächstgelegene Linien-Nr. (begrenzt auf eine maximale Entfernung) |
diaLN(id,x,y,max. Entfernung) |
● |
● |
Nächstgelegener Array Index |
diaLI(id,Linien-Nr.,x,y) |
● |
● |
Nächstgelegener Array Index (begrenzt auf eine maximale Entfernung) |
diaLI(id,Linien-Nr.,x,y,max. Entfernung) |
● |
● |
Erster sichtbarer Array Index der x-Achse |
diaLF(id,Linien-Nr.) |
● |
● |
Letzter sichtbarer Array Index der x-Achse |
diaLL(id,Linien-Nr.) |
● |
● |
x-Koordinate von Linienindex (relativ zur aktiven Fläche) |
diaIX(id,Linien-Nr.,index) |
● |
● |
y-Koordinate von Linienindex (relativ zur aktiven Fläche) |
diaIY(id,Linien-NR,index) |
● |
● |
x-Koordinate von Linienindex (absolut) |
diaSX(id,Linien-Nr.,index) |
● |
● |
y-Koordinate von Linienindex (absolut) |
diaSY(id,Linien-Nr.,index |
● |
● |
x-Wert von Linienindex |
diaVX(id,Linien-Nr.,index) |
● |
● |
y-Wert von Linienindex |
diaVY(id,Linien-Nr.,index) |
● |
● |
1/100s Zeit Wert von Linienindex (nur Zeitformat der x-Achse) |
diaVT(id,Linien-Nr.,index) |
● |
● |
I/O Ports
Analogeingang
RS232 Masterschnittstelle
Timer
Startwert setzen (10 ms Timer) (ab Firmware V1.1) |
● |
||
Auslesen (10 ms Timer) |
timer() |
● |
Datum/ Uhrzeit
Datum und Uhrzeit wird ab dem 1.1.2000 um 00:00:00 Uhr in Sekunden mit SINT32 berechnet (=Datumszeitwert). So ist der maximale vom Modul verwendbare Zeitraum von 1932 - 2067. Das Basisdatum kann mit dem Befehl #WDY geändert werden. Um Zeiträume zu berechnen muss das Datum oder die Uhrzeit immer erst in Sekunden bzw. dem Datumszeitwert gewandelt werden, danach wird die Berechnung ausgeführt. Am Ende kann wieder in Minuten, Stunden, Tag, Monat und Jahr zurückgewandelt werden. |
Aktuelles Datum in Datumszeitwert wandeln |
● |
||
Anzahl Tage in Sekunden wandeln |
date(D) |
● |
|
Tag + Monat + Jahr (1932 - 2067) in Datumszeitwert wandeln |
date(D,M,Y) |
● |
|
aktuelle Uhrzeit in Sekunden wandeln (berechnet ab 0:00:00 Uhr) |
● |
||
Anzahl Stunden in Sekunden wandeln (≙ h·3600) |
time(h) |
● |
|
Stunden und Minuten in Sekunden wandeln (≙ h·3600 + m·60) |
time(h, m) |
● |
|
Stunden, Minuten und Sekunden in Datumszeitwert wandeln (≙ h·3600 + m·60 + s) |
time(h, m, s) |
● |
|
aktuelle Zeit und Datum in Datumszeitwert wandeln |
● |
||
Stunde+Minute+Sekunde+Tag+Monat+Jahr in Datumszeitwert wandeln |
datetime(h,m,s,D,M,Y) |
● |
|
aktuelles Jahr |
● |
||
Aus dem Datumszeitwert das Jahr berechnen |
year(a) |
● |
|
aktueller Monat |
● |
||
Aus dem Datumszeitwert den Monat berechnen |
month(a) |
● |
|
aktueller Tag |
● |
||
Aus dem Datumszeitwert den Tag berechnen |
day(a) |
● |
|
aktueller Wochentag (0-6=Sonntag..Samstag) |
● |
||
Aus dem Datumszeitwert den Wochentag berechnen |
weekday(a) |
● |
|
aktuelle Stunde |
● |
||
Aus dem Datumszeitwert die Stunde berechnen |
hour(a) |
● |
|
aktuelle Minute |
● |
||
Aus dem Datumszeitwert die Minute berechnen |
minute(a) |
● |
|
aktuelle Sekunde |
● |
||
Aus dem Datumszeitwert die Sekunde berechnen |
second(a) |
● |
Stringfunktionen
Länge Stringregister |
● |
||
ASCII-Code aus Stringregister |
● |
||
Unitcode aus Stringregister |
● |
||
Nummerische Zeichenkette in SINT32 bzw. float wandeln |
● |
● |
|
Vergleich zweier Stringregister =0 beide Strings sind gleich >0 erste ungleiche Zeichen in n1 ist größer als in n2 <0 erste ungleiche Zeichen in n1 ist kleiner als in n2 |
● |
||
Vergleich zweier Stringregister von Anfang bis len |
strC(n1, n2, len) |
● |
|
Vergleich zweier Stringregister von offset mit Anzahl len Codes (ab V1.1) |
strC(n1, n2, len, offset) |
● |
|
Vergleich zweier Stringregister von offset1 und offset 2 mit Anzahl len Codes (ab V1.1) |
strC(n1, n2, len, offset1, offset2) |
● |
|
Von links nach einem Code suchen =-1 nicht gefunden >=0 Offset des ersten gefunden Codes |
● |
||
Von links nach einem Code suchen (ab offset) (ab V1.1) |
strFL(nr, code, offset) |
● |
|
Von rechts nach einem Code suchen |
● |
||
Von rechts nach einem Code suchen (ab offset) (ab V1.1) |
strFR(nr, code, offset) |
● |
|
Im Stringregister nach einem anderen String eines Stringregister suchen |
● |
||
Im Stringregister nach einem anderen String eines Stringregister suchen (ab offset) (ab V1.1) |
strFS(n1, n2, offset) |
● |
|
Prüfung ob Code ein Buchstabe ist |
● |
||
Prüfung ob Code ein Buchstabe oder Ziffer ist |
● |
||
Prüfung ob Code ein kleiner Buchstabe ist |
● |
||
Prüfung ob Code ein großer Buchstabe ist |
● |
||
Prüfung ob Code ein White-Space-Code ist |
● |
||
Prüfung ob Code eine dezimale Ziffer ist |
● |
||
Prüfung ob Code eine hexadezimale Ziffer ist |
● |
||
Prüfung ob Code eine binäre Ziffer ist |
● |
Bei allen Befehlen, die das RegEx betreffen, wird das Ergebnis auch in zehn speziellen RegExp-Registern mit direktem Zugriff gespeichert, und zwar über X? (alle X0,Container X1..X9, siehe Befehlssyntax).
Suche nach RegEx in StringRegister; Rückgabe des Indexes des ersten Suchergebnisses (-1 nichts gefunden) |
● |
||
Suche nach RegEx in StringRegister beginnend von Offset |
strXF(RegExp, String, Offset) |
● |
|
RegEx-Suche von StringRegister n1 bis n2; Rückgabewert ist die String-ID des ersten Treffers (-1 kein Treffer) |
● |
||
RegEx-Suche von StringRegister n1 bis n2, beginnend von Offset |
strXS(RegExp, String-ID n1, String-ID n2, Offset) |
● |
|
RegEx in StringArray[index]; Rückgabe ist der ArrayIndex des ersten Ergebnisses (-1 kein Treffer) |
● |
||
RegEx in StringArray[index] Suchbeginn bei Offset; |
strXI(RegExp, Array-ID, index, Offset) |
● |
|
RegEx in StringArray von StartIndex (si) bis zum ArrayEnde; Rückgabe ist der ArrayIndex des ersten Ergebnisses (-1 kein Treffer) |
● |
||
RegEx in StringArray von StartIndex (si) bis zum EndIndex (ei) |
strXA(RegExp, Array-ID, si, ei) |
● |
|
RegEx in StringArray von StartIndex (si) bis zum EndIndex (ei); Suchbeginn bei Offset; |
strXA(RegExp, Array-ID, si, ei, Offset) |
● |
|
Letzte RegEx-Suchcontainer-Stringlänge ermitteln (0=vollständig, Container 1..9) |
● |
||
Letzten RegEx-Suchcontainer-Startoffset ermitteln |
● |
Array-Funktionen
Maximale Elemente für neuen Array (ab V1.4) |
● |
● |
|
Maximale Elemente für neues StringArray mit einer Stringlänge strlen (ab V1.6) |
arE(-1, strlen) |
● |
● |
Anzahl an Array Einträge (0= Array existiert nicht) (ab V1.4) |
arE(id) |
● |
● |
Array-Eintrag Wert (ab V1.4) |
● |
● |
|
Unicode-Wert aus StringArray von offset (ab V1.6) |
arV(id, index, offset) |
● |
● |
Nächsten Array-Eintrag Wert von Lese-Pointer (Inkrement Lese-Pointer) (ab V1.4) |
arV(id) |
● |
● |
Lese-Pointer Index (ab V1.4) |
● |
● |
|
Schreib-Pointer Index (ab V1.4) |
● |
● |
|
Höchster verwendete Schreib-Pointer Index (ab V1.5) |
arW(id,1) |
● |
● |
Erster Array Index (bei Autowrap, sonst 0) (ab V1.5) |
arF(id) |
● |
● |
Letzter Array Index (bei Autowrap, sonst arW(id,1)) (ab V1.5) |
arL(id) |
● |
● |
Anzahl an verwendeten Array Einträgen (ab V1.5) |
arU(id) |
● |
● |
Minimum aller Array Elemente (ab V1.5) |
arMIN(id) |
● |
● |
Maximum aller Array Elemente (ab V1.5) |
arMAX(id) |
● |
● |
Summe aller Array Elemente (ab V1.5) |
arSUM(id) |
● |
● |
Mittelwert aller Array Elemente (ab V1.5) |
arAVG(id) |
● |
● |
Minimum aller Array Elemente aus Bereich (ab V1.5) |
arMIN(id,Start,Ende) |
● |
● |
Maximum aller Array Elemente aus Bereich (ab V1.5) |
arMAX(id,Start,Ende) |
● |
● |
Summe aller Array Elemente aus Bereich (ab V1.5) |
arSUM(id,Start,Ende) |
● |
● |
Mittelwert aus Bereich (ab V1.5) |
arAVG(id,Start,Ende) |
● |
● |
Farbbefehle
Aus einem RGB 24 Bit-Farbwert den roten Kanal extrahieren |
● |
||
Aus einem RGB 24 Bit-Farbwert den grünen Kanal extrahieren |
● |
||
Aus einem RGB 24 Bit-Farbwert den blauen Kanal extrahieren |
● |
||
Aus einzelnen RGB-Bytes eine 24 Bit-Farbwert berechnen |
● |
||
RGB 24 Bit-Farbwert aus einem Farb-Rampen / Farbverlauf auslesen |
● |
||
Opacity aus einem Farb-Rampen / Farbverlauf auslesen |
● |
||
RGB 24 Bit-Farbwert von einem dargestellten Pixel auf dem Display auslesen (ab V1.4) |
● |
||
RGB 16 Bit-Farbwert (RGB565) von einem dargestellten Pixel auf dem Display auslesen (ab V1.5) |
tftRGB(x,y,1) |
● |
SD-Card (Ordner- und Dateibefehle)
Datei vorhanden? (<Pfad/Dateiname> in Stringregister nr) |
● |
||
Dateigröße abfragen (<Pfad/Dateiname> in Stringregister nr) |
● |
||
Dateiattribut abfragen (<Pfad/Dateiname> in Stringregister nr) |
● |
||
FatTime der Datei abfragen (<Pfad/Dateiname> in Stringregister nr) |
● |
||
FatDate der Datei abfragen (<Pfad/Dateiname> in Stringregister nr) |
● |
||
Datumszeitwert in FatTime wandeln |
● |
||
Datumszeitwert in FatDate wandeln |
● |
||
Fat-Zeitstempel in Datumszeitwert umrechnen |
● |
||
Aktuellen Read-Pointer (#FRO) abfragen (ab V1.1) |
● |
||
Aktuellen Read-Pointer vom Fileende aus abfragen (=negativ) (ab V1.1) |
fposR(-1) |
● |
|
Aktuelle Filegröße des offenen Lese-Files abfragen (ab V1.4) |
fposR(1) |
● |
|
Aktuellen Write-Pointer (#FWO) abfragen (ab V1.1) |
● |
||
Aktuellen Write-Pointer vom Fileende aus abfragen (=negativ) (ab V1.1) |
fposW(-1) |
● |
|
Aktuelle Filegröße des offenen Schreib-Files abfragen (ab V1.4) |
fposW(1) |
● |
|
Aktuelle maximale Filegröße (ab V1.4) |
fposW(2) |
● |
|
Maximale Filegröße des Files aus dem Stringregister nr (ab V1.4) |
● |
||
Gesamtspeicherplatz abfragen (ab V1.4) |
● |
||
Freien Gesamtspeicherplatz abfragen (ab V1.4) |
● |
||
Objektramspeicherplatz abfragen (ab V1.4) |
● |
||
Freien Objektramspeicherplatz abfragen (ab V1.4) |
● |
||
Maximalen Block im Objektramspeicherplatz abfragen (ab. V1.4) |
● |
Modulbefehle
Firmware Version (ab V1.1) |
● |
||
Letzte Framrate (fps) auslesen |
● |
● |
|
Touchtyp abfragen (=0 kein, =1 resistiv, =2 PCAP) |
● |
● |
|
Screen Breite (#XCV) |
● |
● |
|
Screen Höhe (#XCV) |
● |
● |
|
Screen Breite der Hardware, unabhängig von (#XCV) |
scrW(1) |
● |
● |
Screen Höhe der Hardware, unabhängig von (#XCV) |
scrH(1) |
● |
● |
Video Breite |
● |
● |
|
Video Höhe |
● |
● |
|
Anzahl Video Objekte |
● |
● |
|
Aktuelle LED Helligkeit |
● |
● |
|
LED Helligkeit von Status (automatische Dimmung) (status 0..2) |
ledB(status) |
● |
● |
LED Status (automatische Dimmung) (status 0..2) |
● |
● |
|
Error-String vorhanden? |
● |
● |
|
Error-String vorhanden? String wird in das Stringregister nr kopiert (#VSL) |
error(nr) |
● |
● |
Error-String vorhanden? String wird in das Stringregister nr kopiert und der Error-String gelöscht |
error(nr,1) |
● |
● |
Liste der Operatoren nach Priorität
12 |
() |
Klammern / Funktionsaufruf (höchste) |
11 |
++ |
Register Inkrement |
- - |
Register Dekrement |
|
+ |
Vorzeichen |
|
- |
Vorzeichen |
|
! |
logisches NICHT |
|
~ |
bitweises NICHT |
|
10 |
* |
Multiplikation |
/ |
Division |
|
9 |
+ |
Addition |
- |
Subtraktion |
|
8 |
<< |
Linksshift |
>> |
Rechtsshift |
|
7 |
< |
kleiner |
<= |
kleiner gleich |
|
> |
größer |
|
>= |
größer gleich |
|
6 |
== |
gleich |
!= |
ungleich |
|
5 |
& |
bitweises UND |
4 |
^ |
bitweises exklusives ODER |
3 |
| |
bitweises ODER |
2 |
&& |
logisches UND |
1 |
|| |
logisches ODER (niedrigste) |