Touchfunktionen #T

Befehlsgruppe um Touchfunktionen zu ermöglichen. 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)

#TBR

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)

#TSR

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)

#TBE

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)

#TSE

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)

#TBP

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)

#TSP

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)

#TBI

Obj-ID, x, y, Anker, <Buttonname normal>, Breite normal (0), 'Buttonname down' (keine Änderung); Breite down (0), "SoundString"

Beschriftungsfreien Icon Schalter platzieren

(Touch Switch Icon)

#TSI

Obj-ID, x, y, Anker, <Buttonname normal>, Breite normal (0), 'Buttonname down' (keine Änderung); Breite down (0), "SoundString"

Objekt in Taster umwandeln

(Touch Button Object)

#TBO

Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down";

Objekt in Schalter umwandeln

(Touch Switch Object)

#TSO

Obj-ID, ButtonStyle-Nr., "Text normal"; "Text down";

Einstellungen von Tastern und Schaltern

Beschriftung von Taster/Schalter ändern

(Touch Change Label)

#TCL

Obj-ID, "Text normal"; "Text down";

Zustand von Taster/Schalter ändern

(Touch Change State)

#TCS

Zustand, Obj-ID1, ..., Obj-IDn

Zustand von Taster/Schalter abfragen

(Touch Query State)

#TQS

Obj-ID1, ..., Obj-IDn

Taster/Schalter aktivieren/ deaktivieren

(Touch Change Enable)

#TCE

Aktiv, Obj-ID1, ..., Obj-IDn

Rückmeldungen von Touchereignissen festlegen

(Touch Change Response)

#TCR

Event, Filter, Obj-ID1, ..., Obj-IDn

Radiogroup

Taster/Schalter zu Radiogroup hinzufügen

(Touch Radiougroup Add)

#TRA

Group-ID, Obj-ID1, ..., Obj-IDn

Zustand der Radiogroup abfragen

(Touch Query Radiougroup)

#TQR

Group-ID1, ..., Group-IDn

Spezielle Touchfunktion

Interne Verarbeitung von Touchfunktionen

(Touch Id Define)

#TID

Maske, Obj-ID1, ..., Obj-IDn

Zusatzgröße für Touchbereich bei Bounding Box Flag

(Touch Additional Area)

#TAA

Zusatz Links/Rechts, Zusatz Oben/Unten

Freien Touchbereich platzieren

(Touch Area Free)

#TAF

Obj-ID, x, y, Anker, Breite, Höhe

Einstellen von Gestenzeiten

(Touch Configure Gesture)

#TCG

DoubleClick Zeit (30), LongClick Zeit (100)

Globales touch on/off

(Touch Panel Enable)

#TPE

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.

       


Rechteckigen Taster/Schalter platzieren


#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

...


Ellipsenförmigen Taster/Schalter platzieren


#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

...


Bild Taster/Schalter platzieren


#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

...


Beschriftungsfreien Icon Taster/Schalter platzieren


#TBI

Obj-ID, x, y, Anker, <Buttonname normal>, Breite normal (0), 'Buttonname down' (keine Änderung); Breite down (0), "SoundString"

#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 "SoundString" gibt die Töne an, welche bei Touchbetätigung abgespielt werden.


...

#TBI 1,20,20,7,<P:button/Play.epg>,100,<P:button/Pause.epg>,100

...

...

#TBI 1,20,20,7,"Play";100,"Pause";100

...


Objekt in Taster/Schalter umwandeln


#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.1)

#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

#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

#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.2)

#TCE

Enable

Befehl, der global die Touch-Funktionalität aktiviert (Enable =1) oder deaktiviert (=0). Nach dem Neustart ist das Touchpanel immer aktiv.