Touchfunktionen #T
Befehlsgruppe um Touchfunktionen zu ermöglichen. Das Modul muss mit einem Touch ausgerüstet sein (Bestellnummern: EA uniTFTxxx-ATC oder EA uniTFTxxx-ATP). Es können einfache Taster und Schalter platziert werden, sowie Radiobuttons, Schieberegler, Bargraphen und Dreh-/Zeigerinstrumente. |
Taster und Schalter definieren
Rechteckigen Taster platzieren (Touch Button Rectangle) |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
|
Rechteckigen Schalter platzieren (Touch Switch Rectangle) |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
|
Ellipsenförmigen Taster platzieren (Touch Button Ellipse) |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
|
Ellipsenförmigen Schalter platzieren (Touch Switch Ellipse) |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
|
Bild Taster platzieren (Touch Button Picture) |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
|
Bild Schalter platzieren (Touch Switch Picture) |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
|
Beschriftungsfreien Icon Taster platzieren (Touch Button Icon) |
Obj-ID, x, y, Anker, <Buttonname normal>, Breite normal (0), 'Buttonname down' (keine Änderung); Breite down (0), 'Soundname' |
|
Beschriftungsfreien Icon Schalter platzieren (Touch Switch Icon) |
Obj-ID, x, y, Anker, <Buttonname normal>, Breite normal (0), 'Buttonname down' (keine Änderung); Breite down (0), 'Soundname' |
|
Objekt in Taster umwandeln (Touch Button Object) |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; |
|
Objekt in Schalter umwandeln (Touch Switch Object) |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; |
Einstellungen von Tastern und Schaltern
Beschriftung von Taster/Schalter ändern (Touch Change Label) |
Obj-ID, "Text normal"; "Text down"; |
|
Zustand von Taster/Schalter ändern (Touch Change State) |
Zustand, Obj-ID1, ..., Obj-IDn |
|
Zustand von Taster/Schalter abfragen (Touch Query State) |
Obj-ID1, ..., Obj-IDn |
|
Taster/Schalter aktivieren/ deaktivieren (Touch Change Enable) |
Aktiv, Obj-ID1, ..., Obj-IDn |
|
Rückmeldungen von Touchereignissen festlegen (Touch Change Response) |
Event, Filter, Obj-ID1, ..., Obj-IDn |
Radiogroup
Taster/Schalter zu Radiogroup hinzufügen (Touch Radiougroup Add) |
Group-ID, Obj-ID1, ..., Obj-IDn |
|
Zustand der Radiogroup abfragen (Touch Query Radiougroup) |
Group-ID1, ..., Group-IDn |
Spezielle Touchfunktion
Interne Verarbeitung von Touchfunktionen (Touch Id Define) |
Maske, Obj-ID1, ..., Obj-IDn |
|
Zusatzgröße für Touchbereich bei Bounding Box Flag (Touch Additional Area) |
Zusatz Links/Rechts, Zusatz Oben/Unten |
|
Freien Touchbereich platzieren (Touch Area Free) |
Obj-ID, x, y, Anker, Breite, Höhe |
|
Einstellen von Gestenzeiten (Touch Configure Gesture) |
DoubleClick Zeit (30), LongClick Zeit (100) |
|
Globales touch on/off (Touch Panel Enable) |
Enable |
Taster und Schalter definieren
Taster und Schalter können auf verschiedene Events (Down, Up, Drag, DoubleClick, LongClick) reagieren. Es gibt zwei Möglichkeiten die Zustandsänderungen von Tastern und Schaltern auszuwerten:
- Änderungen werden in den Sendepuffer gestellt:
Mit dem Befehl #TCR kann angegeben werden, welche Rückmeldungen in den Sendepuffer gestellt werden sollen (kein DoubleClick und LongClick)
- Bei Änderungen wird ein Makro ausgeführt:
Mit den Befehlen #MDT und #MDG können Makros mit dem Taster/Schalter verbunden werden. Bei der jeweiligen Zustandsänderung wird das dazugehörige Makro aufgerufen.
#TBR |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
#TSR |
Mit dem Befehl wird ein rechteckiger Taster/Schalter mit dem gegebenen Anker an die Position x, y platziert. Der Parameter "Text normal" gibt die Ausgabe im ungedrückten, "Text down" im gedrückten Zustand an. Mit dem ButtonStyle wird das Aussehen des Tasters/Schalters bestimmt (ButtonStyle-Nr.). Im Unterkapitel ButtonStyle ist dies genauer erläutert. Die Breite und Höhe des Tasters/Schalters wird aus dem ButtonStyle übernommen, kann aber optional überschrieben werden.
... #TBR 1,1,"Normal";"Pressed";20,20,7 ... |
#TBE |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
#TSE |
Mit dem Befehl wird ein ellipsenförmiger Taster/Schalter mit dem gegebenen Anker an die Position x, y platziert. Der Parameter "Text normal" gibt die Ausgabe im ungedrückten, "Text down" im gedrückten Zustand an. Mit dem ButtonStyle wird das Aussehen des Tasters/Schalters bestimmt (ButtonStyle-Nr.). Im Unterkapitel ButtonStyle ist dies genauer erläutert. Die Breite (∅ X) und Höhe (∅ Y) des Tasters/Schalters wird aus dem ButtonStyle übernommen, kann aber optional überschrieben werden.
... #TBE 1,1,"Normal";"Pressed";20,20,7 ... |
#TBP |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; x, y, Anker (5), Breite(ButtonStyle Breite), Höhe(ButtonStyle Höhe) |
#TSP |
Mit dem Befehl wird ein Taster/Schalter als Bild mit dem gegebenen Anker an die Position x, y platziert. Der Parameter "Text normal" gibt die Ausgabe im ungedrückten, "Text down" im gedrückten Zustand an. Mit dem ButtonStyle wird das Aussehen des Tasters/Schalters bestimmt (ButtonStyle-Nr.). Im Unterkapitel ButtonStyle ist dies genauer erläutert. Die Breite und Höhe des Tasters/Schalters wird aus dem ButtonStyle übernommen, kann aber optional überschrieben werden.
... #TBP 1,2,"Normal";"Pressed";20,20,7 ... |
#TBI |
Obj-ID, x, y, Anker, <Buttonname normal>, Breite normal (0), 'Buttonname down' (keine Änderung); Breite down (0), 'Soundname' |
#TSI |
Mit dem Befehl wird ein Taster/Schalter als Icon mit dem gegebenen Anker an die Position x, y platziert. Ein ButtonStyle ist hierfür nicht notwendig. Die beiden Parameter 'Buttonname normal' und 'Buttonname down' geben die anzuzeigenden Bilder an. Wird keine Breite (in Pixel) oder null angegeben, so wird die Originalgröße des Bildes verwendet. Die Höhe wird intern berechnet (proportional). Der letzte Parameter 'Soundname' gibt das Soundfile an, welches bei Touchbetätigung abgespielt wird.
... #TBI 1,20,20,7,<P:button/Play.epg>,100,<P:button/Pause.epg>,100 ... |
|
... #TBI 1,20,20,7,"Play";100,"Pause";100 ... |
#TBO |
Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down"; |
#TSO |
Ein beliebiges bestehendes Objekt wird in einen Taster/Schalter gewandelt. Aus dem ButtonStyle werden Zusätzliche Informationen wie z.B. Soundname entnommen. Handelt es sich bei dem zu wandelten Objekt um eine grafische Primitive (z.B. Polygon) mit dem selben DrawSytle wie im ButtonStyle, wird für den gedrückten Zustand automatisch der DraswStyle des ButtonStyles übernommen.
... #TBO 1,1,"Normal";"Pressed"; ... |
Einstellungen von Tastern und Schaltern
In dieser Gruppe sind Befehle für die Einstellung von Tastern und Schaltern zusammengefasst.
Beschriftung von Taster/Schalter ändern
#TCL |
Obj-ID, "Text normal"; "Text down"; |
Der Befehl ändert die Beschriftung von Touchobjekten. Wird für den gedrückten Zustand ("Text down") kein Text angegeben, so wird auch hierfür "Text normal" verwendet.
... #TBR 1,... #TCL 1,"Change"; ... |
Zustand von Taster/Schalter ändern
#TCS |
Zustand, Obj-ID1, ..., Obj-IDn |
Mit dem Befehl wird der Zustand der Touchobjekte (Obj-ID1, ..., Obj-IDn) geändert:
Zustand |
|
1 |
ungedrückt |
2 |
gedrückt |
... #TBI 1,20,20,7,<P:button/Play.epg>,100,<P:button/Pause.epg>,100 #TCS 2,1 ... |
Zustand von Taster/Schalter abfragen
TQS |
Obj-ID1, ..., Obj-IDn |
Der Zustand der Touchobjekte (Obj-ID1, ..., Obj-IDn) wird in den Sendepuffer gestellt. Die Rückmeldung ist folgendermaßen aufgebaut:
# |
T |
Q |
S |
Obj-ID |
Zustand |
... |
|
$1B |
$54 |
$51 |
$53 |
16-Bit Wert |
16-Bit Wert |
... #TBR 1,... #TQS 1 ... |
Taster/Schalter aktivieren/ deaktivieren
#TCE |
Aktiv, Obj-ID1, ..., Obj-IDn |
Mit dem Befehl werden Touchobjekte (Obj-ID1, ..., Obj-IDn) aktiviert bzw. deaktiviert (Aktiv):
Aktiv |
|
0 |
nicht aktiv |
1 |
aktiv |
... #TBR 1,... #TCE 0,1 ... |
Rückmeldungen von Touchereignissen festlegen
#TCR |
Event, Filter, Obj-ID1, ..., Obj-IDn |
Jedem Touchobjekt kann zugeordnet werden ob und welche Rückmeldungen in den Sendepuffer gelangen. Es werden drei Events unterschieden: Up, down und drag. Für jedes dieser Events kann einzeln eingestellt werden, ob es eine Rückmeldung auslöst oder nicht. Dies kann mit dem Parameter Event eingestellt werden. Dieser ist gemäß nachfolgender Tabelle bitcodiert:
Event |
||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
Up |
● |
● |
● |
● |
||||
Down |
● |
● |
● |
● |
||||
Drag |
● |
● |
● |
● |
Möchte man demnach z.B nur für Up und Down Events Rückmeldungen erhalten, so stellt man den Parameter Event auf 3. Zudem kann die Rückmeldung auch davon abhängig gemacht werden, ob für das Event ein Makro definiert ist (Filter):
Filter |
|
0 |
nur senden wenn kein Makro definiert ist |
1 |
immer senden |
Bei der Definition von Tastern wird automatisch der gedrückte Zustand gesendet wenn kein Makro definiert ist (= #TCR 2,0,Obj-ID). Bei Schaltern beide Zustände (= #TCR 3,0,Obj-ID). Bei Bargraphen und Instrumenten das Loslassen (= #TCR 1,0,Obj-ID). Eine EditBox sendet den Inhalt beim Deaktivieren (=#TCR 1,0,Obj-ID). Sollen keine Ereignisse gesendet werden kann dies mit #TCR 0,0,Obj-ID eingestellt werden.
Radiogroup
Diese Gruppe umfasst Befehle zur Erstellung und Verwaltung von Radiogroups.
Taster/Schalter zu Radiogroup hinzufügen
#TRA |
Group-ID, Obj-ID1, ..., Obj-IDn |
Einer bestehenden oder neuen Radiogruppe (Group-ID) werden eine oder mehrere Schalter (Obj-ID, ..., Obj-IDn) hinzugefügt.
... #TSP 1,2,"Radio 1";"Radio 1";20,140,7 #TSP 2,2,"Radio 2";"Radio 2";20,80,7 #TSP 3,2,"Radio 3";"Radio 3";20,20,7 #TRA 4,1,2,3 ... |
Zustand der Radiogroup abfragen
#TQR |
Group-ID1, ..., Group-IDn |
Der aktive Schalter der Radiogruppe (Group-ID) wird in den Sendepuffer gestellt. Die Rückmeldung ist folgendermaßen aufgebaut:
ESC |
T |
Q |
R |
Obj-ID |
Group-ID |
... |
|
$1B |
$54 |
$51 |
$52 |
16-Bit Wert |
16-Bit Wert |
... #TRA 4,... #TQR 4 ... |
Spezielle Touchfunktion
Diese Gruppe enthält weitere spezielle Touchfunktionen.
Interne Verarbeitung von Touchfunktionen
#TID |
Maske, Obj-ID1, ..., Obj-IDn |
Jedem Objekt (Obj-ID) kann eine spezielle Touchaktion zugewiesen, bzw. Toucheingabe ermöglicht werden. Die einzelnen Bits von Maske können mit Bitveroderung zusammengefasst werden, sodass mehrere Touchaktion gleichzeitig möglich sind:
Maske |
|
1 |
Interne Verarbeitung (z.B. Bargraph/ Instrument/ EditBox) |
2 |
Objekt frei bewegen |
4 |
Objekt proportional vergrößern/verkleinern |
8 |
Um den aktiven Anker drehen |
16 |
Größenänderung mit zwei Fingern |
32 |
Rotieren mit zwei Fingern |
64 |
Nur Bounding Box des Objekts verwenden |
128 |
Objekt bleibt unverändert/ Touchmakros werden ausgeführt |
Zusatzgröße für Touchbereich bei Bounding Box Flag (ab V1.5)
#TAA |
Zusatz Links/Rechts, Zusatz Oben/Unten |
Mit dem Befehl wird die Sensitivität für Touch Flächen vergrößert. Dabei muss allerdings das Flag (Nur Bounding Box des Objekts verwenden) gesetzt sein (siehe Befehl #TID). Für die Touch Erkennung wird nur die Bounding Box und nicht die Form des Objekts verwendet. Die beiden Parameter Zusatz Links/Rechts und Zusatz Oben/Unten, geben an, um wie viel Pixel die Sensitivität der jeweiligen Touch Fläche (Bounding Box) vergrößerst werden soll.
Freien Touchbereich platzieren (ab V1.4)
#TAF |
Obj-ID, x, y, Anker, Breite, Höhe |
Mit dem Befehl wird ein freier Touchbereich mit gegebenen Anker, Breite und Höhe an die Position x, y, platziert.
Einstellen von Gestenzeiten (ab V1.4)
#TCG |
DoubleClick Zeit, LongClick Zeit |
Mit dem Befehl wird die Zeitschwelle von Gesten eingestellt. Die DoubleClick Zeit gibt in 1/100s an, wie viel Zeit maximal zwischen zwei Down Events verstreichen darf, sodass noch ein gültiger Doppelklick erkannt wird. Mit dem Parameter LongClick Zeit wird festgelegt, welche Zeitspanne (in 1/100s) mindestens verstreichen muss, damit ein LongClick detektiert wird.
Der gültige Wertebereich für Doppelcklick ist 20 (=200 ms) bis 100 (=1 sec.), beim LongClick ist er bei 30 (=300 ms) bis 1000 (=10 sec.).
Globales touch on/off (ab V1.6)
#TCE |
Enable |
Befehl, der global die Touch-Funktionalität aktiviert (Enable =1) oder deaktiviert (=0). Nach dem Neustart ist das Touchpanel immer aktiv.