Gestes multi-touch¶
En plus de l'automatisation standard, nous fournissons une interface multi-touch avancée qui vous permet de réaliser des opérations complexes avec les doigts. Elle inclut des fonctionnalités telles que l'enregistrement de trajectoires matérielles, la relecture, la construction et la sauvegarde.
Attention
Pour vous familiariser rapidement avec son utilisation, il est conseillé d'activer les options « Afficher les actions tactiles » et « Position du pointeur » dans les Options pour les développeurs - Entrée (si elles ne sont pas activées, vous pourriez ne voir aucun retour visuel). L'exemple de code suivant montre comment dessiner un symbole X dans le coin supérieur gauche de l'écran.
touch = d.touch()
finger0 = touch.contact(0)
finger1 = touch.contact(1)
# --- 1. Appui au point de départ ---
finger0.down(150, 320)
finger1.down(450, 320)
touch.wait(20)
# --- 2. Mouvement de la trajectoire (10 points de coordonnées) ---
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) # Point d'intersection central
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) # Point final
finger1.move(150, 620)
touch.wait(20)
# --- 3. Relâchement des doigts ---
finger0.up()
finger1.up()
# Exécuter l'action
touch.perform()
Enregistrement de trajectoire¶
Pour faciliter la construction de trajectoires, nous proposons également une fonction d'enregistrement. Cette fonction nécessite que vous interagissiez avec l'appareil physique.
# Obtenir une session multi-touch
touch = d.touch()
# Enregistrer la trajectoire. Après l'appel, le système attendra que vous interagissiez avec l'écran de l'appareil physique pendant le délai d'attente (120 secondes). La fonction retournera une fois que vous aurez levé le doigt.
touch.record()
# Vous pouvez sauvegarder la trajectoire dans un fichier binaire
touch.save("/sdcard/touch/bin")
# Vous pouvez également relire directement la trajectoire
touch.perform()
Sauvegarde de trajectoire¶
Pour éviter de reconstruire la trajectoire par code à chaque fois, nous offrons une fonction de sauvegarde qui vous permet de persister les données de la trajectoire sur le disque.
# Obtenir une session multi-touch
touch = d.touch()
# Vous pouvez sauvegarder la trajectoire que vous venez de construire pour un chargement ultérieur
touch.save("/sdcard/track0.bin")
Chargement de trajectoire¶
Vous pouvez charger directement une trajectoire dans la session à partir d'un fichier de trajectoire stocké sur le disque.
# Obtenir une session multi-touch
touch = d.touch()
# Charger la trajectoire depuis un fichier
touch.load("/sdcard/track0.bin")
Construction de trajectoire¶
En plus de la construction de trajectoires par enregistrement, vous pouvez également choisir de construire des trajectoires tactiles par code. Nous allons maintenant vous présenter la construction manuelle et d'autres fonctionnalités disponibles. Une opération tactile valide comprend trois types d'événements : appui, déplacement et relâchement. Vous pouvez définir des paramètres de pression pour les événements d'appui, de déplacement, etc.
# Obtenir une session multi-touch
touch = d.touch()
# Obtenir deux (ou plusieurs) entrées de doigt
finger0 = touch.contact(0)
finger1 = touch.contact(1)
# Le doigt 0 appuie aux coordonnées 150 320
# Le paramètre z représente la pression du doigt, les valeurs valides sont de 1 à 255, la valeur par défaut est 128
finger0.down(150, 320, z=128)
# Le doigt 0 se déplace de 150 320 à 180 350
finger0.move(180, 350, z=128)
# Attendre 20 millisecondes (équivalent à finger0.wait(20))
touch.wait(20)
# Le doigt 0 est relâché
finger0.up()
# Effacer toutes les trajectoires
touch.reset()
# Exécuter l'action (wait indique s'il faut attendre la fin de l'opération)
touch.perform(wait=True)