Sélection des modes de signalement de paquets dans les appareils multipoint
À compter de Windows 8, le signalement de données multipoint au système est pris en charge de deux manières : en mode parallèle ou en mode hybride. Le descripteur de rapport IHM fourni par le fournisseur diffère d’après le mode sélectionné.
Remarque Le mode série est sélectionné uniquement par les appareils hérités. À compter de Windows 8, les nouveaux appareils utilisant le mode série n’obtiendront pas la certification.
Mode parallèle
En mode parallèle, les appareils signalent toutes les informations de contact dans un seul paquet. Chaque contact physique est représenté par une collection logique incorporée dans la collection de niveau supérieur. Cette collection logique contient tous les usages pris en charge par l’appareil pour chaque contact (par exemple, X, Y et Pression). Lorsque vous tirez parti du mode parallèle, chacune des collections logiques doit être identique. Étant donné que l’appareil signale généralement moins de contacts que le nombre maximal, le nombre de contacts signalés dans un paquet parallèle doit être communiqué soit dans l’usage Nombre de contacts, soit en définissant des valeurs NULL pour tous les contacts non valides d’un paquet.
Prenons l’exemple d’un appareil qui prend en charge trois contacts. Si l’utilisateur n’a que deux doigts sur le numériseur, le paquet parallèle n’a que deux données de contact valides dans un rapport qui peuvent contenir des données pour trois contacts. Dans ce cas, le Nombre de contacts doit être défini sur deux pour que l’application cliente sache que les informations sur plus de deux contacts ne sont pas valides.
L’appareil peut également définir les valeurs des usages des contacts au-delà de la deuxième entrée sur des valeurs NULL . Compte tenu de la surcharge liée à la prise en charge et au signalement de valeurs NULL, l’utilisation du nombre réel est recommandée.
L’inconvénient de signaler plusieurs contacts dans un même rapport est que de l’espace est gaspillé par rapport chaque fois qu’il y a moins de contacts que le nombre maximal de contacts possible. Les appareils peuvent utiliser le mode hybride pour réduire cette inefficacité.
Mode hybride
En mode hybride, le nombre de contacts pouvant être signalés dans un rapport est inférieur au nombre maximal de contacts pris en charge par l’appareil. Par exemple, un appareil qui prend en charge un maximum de 48 contacts physiques simultanés peut configurer sa collection de niveau supérieur pour fournir un maximum de douze contacts dans un même rapport. Si 48 points de contact sont présents, l’appareil peut les décomposer en quatre rapports série qui fournissent chacun 12 contacts.
Lorsqu’un appareil fournit des données de cette manière, la valeur d’usage Nombre de contacts dans le premier rapport doit refléter le nombre total de contacts remis dans les rapports hybrides. Les autres rapports de la série doivent avoir un nombre de contacts de 0. Dans l’exemple précédent, l’usage Nombre de contacts dans le premier rapport a la valeur 48, tandis que les trois derniers rapports ont un nombre d’usage de contacts de 0. En raison de ce protocole de remise de données, l’usage du décompte réel doit être présent dans le rapport d’entrée du descripteur de rapport pour l’appareil.
Valeurs Null
Les valeurs Null doivent être spécifiées comme indiqué dans la spécification IHM. Le bit NULL doit être défini sur tous les éléments principaux du descripteur de rapport. N’oubliez pas qu’un appareil peut utiliser l’usage Nombre de contacts ou des valeurs NULL pour informer l’hôte du nombre réel de contacts valides dans un paquet.
Contacts dans un rapport
Lors de l’envoi de données en mode hybride ou parallèle, un contact remis dans un rapport doit être remis dans tous les rapports suivants jusqu’à ce qu’il soit retiré de l’écran. Si du temps est nécessaire pour déterminer correctement si le contact a été retiré de la surface, l’appareil doit signaler la dernière position connue du contact, puis remettre l’état « UP » du contact dans un rapport ultérieur. Les appareils ne doivent pas envoyer de rapport sans les informations relatives à ce contact pendant qu’ils tentent de déterminer son état actuel.