Multi-Touch

Zusätzlich zur regulären Automatisierung bieten wir eine erweiterte Multi-Touch-Schnittstelle, mit der Sie komplexe Fingeroperationen implementieren können. Sie verfügt über Funktionen wie Hardware-Aufzeichnung von Bewegungsabläufen, Wiedergabe, Erstellung und Speicherung.

Achtung

Die Multi-Touch-Schnittstelle erfordert ein Upgrade des Clients auf mindestens Version 9.22. Für die beste Kompatibilität wird empfohlen, auch den Server zu aktualisieren.

Damit Sie die Verwendung schnellstmöglich verstehen, empfehlen wir Ihnen, in den Entwickleroptionen -> Eingabe die Funktionen „Berührungen anzeigen“ und „Zeigerposition“ zu aktivieren (wenn diese nicht aktiviert sind, sehen Sie möglicherweise kein Feedback). Der folgende Beispielcode zeigt Ihnen, wie Sie ein X-Symbol in der oberen linken Ecke des Bildschirms zeichnen.

touch = d.touch()
finger0 = touch.contact(0)
finger1 = touch.contact(1)

# --- 1. Am Startpunkt drücken ---
finger0.down(150, 320)
finger1.down(450, 320)
touch.wait(20)

# --- 2. Bewegung entlang des Pfades (10 Koordinatenpunkte) ---
finger0.move(180, 350)
finger1.move(420, 350)
touch.wait(20)

finger0.move(210, 380)
finger1.move(390, 380)
touch.wait(20)

finger0.move(240, 410)
finger1.move(360, 410)
touch.wait(20)

finger0.move(270, 440)
finger1.move(330, 440)
touch.wait(20)

finger0.move(300, 470) # Kreuzungspunkt in der Mitte
finger1.move(300, 470)
touch.wait(20)

finger0.move(330, 500)
finger1.move(270, 500)
touch.wait(20)

finger0.move(360, 530)
finger1.move(240, 530)
touch.wait(20)

finger0.move(390, 560)
finger1.move(210, 560)
touch.wait(20)

finger0.move(420, 590)
finger1.move(180, 590)
touch.wait(20)

finger0.move(450, 620) # Endpunkt
finger1.move(150, 620)
touch.wait(20)

# --- 3. Finger anheben ---
finger0.up()
finger1.up()

# Aktion ausführen
touch.perform()

Bewegungsablauf aufzeichnen

Um Ihnen die Erstellung von Bewegungsabläufen zu erleichtern, bieten wir auch eine Aufzeichnungsfunktion an. Die Aufzeichnungsfunktion erfordert, dass Sie das physische Gerät bedienen.

# Eine Multi-Touch-Sitzung erhalten
touch = d.touch()

# Bewegungsablauf aufzeichnen. Nach dem Aufruf wird innerhalb des Zeitlimits (120 Sekunden) auf eine Bedienung des physischen Gerätebildschirms gewartet. Die Funktion kehrt zurück, nachdem Sie Ihren Finger angehoben haben.
touch.record()

# Sie können den Bewegungsablauf als Binärdatei speichern
touch.save("/sdcard/touch/bin")

# Sie können den Bewegungsablauf auch direkt wiedergeben
touch.perform()

Bewegungsablauf speichern

Um zu vermeiden, dass der Bewegungsablauf jedes Mal per Code neu erstellt werden muss, bieten wir eine Speicherfunktion an, mit der Sie die Bewegungsablaufdaten auf der Festplatte persistieren können.

# Eine Multi-Touch-Sitzung erhalten
touch = d.touch()

# Sie können den gerade erstellten Bewegungsablauf zum späteren Laden speichern
touch.save("/sdcard/track0.bin")

Bewegungsablauf laden

Sie können einen Bewegungsablauf direkt aus einer auf der Festplatte gespeicherten Datei in die Sitzung laden.

# Eine Multi-Touch-Sitzung erhalten
touch = d.touch()

# Bewegungsablauf aus einer Datei laden
touch.load("/sdcard/track0.bin")

Bewegungsablauf erstellen

Neben der Erstellung von Bewegungsabläufen durch Aufzeichnung können Sie diese auch selbst per Code erstellen. Im Folgenden stellen wir Ihnen die manuelle Erstellung und weitere verfügbare Funktionen vor. Eine gültige Touch-Operation umfasst drei Arten von Ereignissen: Drücken (down), Bewegen (move) und Anheben (up). Sie können für Ereignisse wie Drücken und Bewegen Druckparameter festlegen.

# Eine Multi-Touch-Sitzung erhalten
touch = d.touch()

# Zwei (oder mehr) Fingereingaben erhalten
finger0 = touch.contact(0)
finger1 = touch.contact(1)

# Finger 0 wird an den Koordinaten 150 320 aufgesetzt
# Der Parameter z steht für den Fingerdruck, gültige Werte sind 1-255, Standard ist 128
finger0.down(150, 320, z=128)

# Finger 0 bewegt sich von 150 320 nach 180 350
finger0.move(180, 350, z=128)

# 20 Millisekunden warten (entspricht finger0.wait(20))
touch.wait(20)

# Finger 0 anheben
finger0.up()

# Alle Bewegungsabläufe löschen
touch.reset()

# Aktion ausführen (wait gibt an, ob auf den Abschluss gewartet werden soll)
touch.perform(wait=True)