Collections de niveau supérieur HID requises (required-hid-top-level-collections)
Cette rubrique décrit les collections de niveau supérieur IHM requises qui sont utilisées pour la création de rapports sur le stylet dans les systèmes d’exploitation Windows 10 et ultérieurs.
Un appareil de stylet Windows intégré doit exposer, au minimum, la collection de niveau supérieur obligatoire unique pour la création de rapports de stylet. Une collection facultative (mais recommandée) pour les mises à jour du microprogramme peut également être implémentée. Et sur les systèmes d’exploitation antérieurs à Windows 10, une collection facultative (factice) de souris pour la prise en charge du curseur de stylet peut également être implémentée.
Le diagramme suivant montre les collections HID pour un appareil de stylet Windows intégré.
Mouse Collection (Dummy)
Un appareil de stylet Windows intégré peut utiliser le protocole HID pour fournir une collection de niveau supérieur qui apparaît en tant que bureau/souris générique (Page 0x01, Utilisation 0x02).
La collection de souris (factice) d’un appareil Windows Pen intégré sert à fournir à l’hôte un appareil de souris compatible HID, à des fins d’affichage d’un curseur sur les systèmes d’exploitation antérieurs à Windows 10. Aucun rapport de souris réel n’est requis à partir de cette collection ; seule la présence de la collection de souris dans le descripteur. Si vous n’avez pas besoin de prendre en charge les systèmes d’exploitation antérieurs à Windows 10, cette collection peut être omise.
Collection de stylets Windows intégrée
Un appareil de stylet Windows intégré doit utiliser le protocole HID sur un système Windows 10 de telle façon que l’appareil fournit une collection de niveau supérieur qui apparaît comme un numériseur/stylet intégré (Page 0x0D, Utilisation 0x02).
La collection de stylets Windows intégrée sert à fournir des rapports de contact, de pression, d’effacement et de bouton enrichis à l’hôte. La collection peut éventuellement prendre en charge un rapport de fonctionnalité pour obtenir l’état de certification de l’appareil. Le rapport d’entrée obligatoire est spécifié en détail dans la section Rapports d’entrée de stylet Windows intégré de cette rubrique. Un rapport de fonctionnalité facultatif (mais fortement recommandé) peut être implémenté pour obtenir des indicateurs de mode de latence de l’hôte. Cette fonctionnalité facultative peut aider à atteindre une consommation d’alimentation minimale sur les périphériques USB armés pour le réveil en mode veille.
Signalement de fonctionnalité sur l’état de certification du périphérique
Si vous implémentez le rapport de fonctionnalité d’état de certification de l’appareil, l’hôte de l’appareil Windows Pen intégré peut l’utiliser pour récupérer l’objet blob de 256 octets de l’appareil.
Les 256 octets doivent être spécifiés via une utilisation HID spécifique au fournisseur, dans une page d’utilisation définie par le fournisseur (Page 0xFF, Utilisation 0xC5) dans le rapport de fonctionnalités d’état de certification de l’appareil.
Avant qu’un appareil reçoive un objet blob de 256 octets qui indique son état de certification, il doit implémenter un objet blob par défaut comme suit :
0xfc, 0x28, 0xfe, 0x84, 0x40, 0xcb, 0x9a, 0x87, 0x0d, 0xbe, 0x57, 0x3c, 0xb6, 0x70, 0x09, 0x88, 0x07, 0x97, 0x2d, 0x2b, 0xe3, 0x38, 0x34, 0xb6, 0x6c, 0xed, 0xb0, 0xf7, 0xe5, 0x9c, 0xf6, 0xc2, 0x2e, 0x84, 0x1b, 0xe8, 0xb4, 0x51, 0x78, 0x43, 0x1f, 0x28, 0x4b, 0x7c, 0x2d, 0x53, 0xaf, 0xfc, 0x47, 0x70, 0x1b, 0x59, 0x6f, 0x74, 0x43, 0xc4, 0xf3, 0x47, 0x18, 0x53, 0x1a, 0xa2, 0xa1, 0x71, 0xc7, 0x95, 0x0e, 0x31, 0x55, 0x21, 0xd3, 0xb5, 0x1e, 0xe9, 0x0c, 0xba, 0xec, 0xb8, 0x89, 0x19, 0x3e, 0xb3, 0xaf, 0x75, 0x81, 0x9d, 0x53, 0xb9, 0x41, 0x57, 0xf4, 0x6d, 0x39, 0x25, 0x29, 0x7c, 0x87, 0xd9, 0xb4, 0x98, 0x45, 0x7d, 0xa7, 0x26, 0x9c, 0x65, 0x3b, 0x85, 0x68, 0x89, 0xd7, 0x3b, 0xbd, 0xff, 0x14, 0x67, 0xf2, 0x2b, 0xf0, 0x2a, 0x41, 0x54, 0xf0, 0xfd, 0x2c, 0x66, 0x7c, 0xf8, 0xc0, 0x8f, 0x33, 0x13, 0x03, 0xf1, 0xd3, 0xc1, 0x0b, 0x89, 0xd9, 0x1b, 0x62, 0xcd, 0x51, 0xb7, 0x80, 0xb8, 0xaf, 0x3a, 0x10, 0xc1, 0x8a, 0x5b, 0xe8, 0x8a, 0x56, 0xf0, 0x8c, 0xaa, 0xfa, 0x35, 0xe9, 0x42, 0xc4, 0xd8, 0x55, 0xc3, 0x38, 0xcc, 0x2b, 0x53, 0x5c, 0x69, 0x52, 0xd5, 0xc8, 0x73, 0x02, 0x38, 0x7c, 0x73, 0xb6, 0x41, 0xe7, 0xff, 0x05, 0xd8, 0x2b, 0x79, 0x9a, 0xe2, 0x34, 0x60, 0x8f, 0xa3, 0x32, 0x1f, 0x09, 0x78, 0x62, 0xbc, 0x80, 0xe3, 0x0f, 0xbd, 0x65, 0x20, 0x08, 0x13, 0xc1, 0xe2, 0xee, 0x53, 0x2d, 0x86, 0x7e, 0xa7, 0x5a, 0xc5, 0xd3, 0x7d, 0x98, 0xbe, 0x31, 0x48, 0x1f, 0xfb, 0xda, 0xaf, 0xa2, 0xa8, 0x6a, 0x89, 0xd6, 0xbf, 0xf2, 0xd3, 0x32, 0x2a, 0x9a, 0xe4, 0xcf, 0x17, 0xb7, 0xb8, 0xf4, 0xe1, 0x33, 0x08, 0x24, 0x8b, 0xc4, 0x43, 0xa5, 0xe5, 0x24, 0xc2
L’hôte peut demander le rapport de fonctionnalité d’état de certification de l’appareil d’un appareil de stylet Windows intégré à tout moment, après avoir lu le descripteur de rapport.
Signalement de fonctionnalité du mode de latence
Remarque
Les systèmes d’exploitation Windows 10, version 1511 et antérieure n’émettent actuellement pas ce rapport de fonctionnalités HID sur les appareils stylet ou écran tactile qui prennent en charge cette fonctionnalité. Toutefois, l’ajout de la prise en charge du signalement de fonctionnalité du mode de latence à un périphérique permet de s’assurer que celui-ci sera prêt le jour où Windows le prendra en charge sur les périphériques Stylet et Écran tactile.
Le rapport de fonctionnalités du mode de latence est envoyé par l’hôte à un appareil de stylet Windows intégré, pour indiquer quand une latence élevée est souhaitable pour l’économie d’énergie et à l’inverse, lorsque la latence normale est souhaitée pour l’opération. Dans le cas d’un appareil de stylet Windows intégré connecté à USB, cela permet à l’appareil de différencier l’interruption de l’inactivité (runtime INACTIF) et d’être suspendu, car le système entre S3 ou Connecter ed Standby.
Le mode de latence doit être indiqué par le biais de la valeur de l’usage du mode de latence (Page 0x0D, Usage 0x60) dans le signalement de fonctionnalité du mode de latence.
Valeur du mode de latence | Mode de latence |
---|---|
0 | Normal |
1 | Forte |
Rapports d’entrée Windows Pen intégrés
Les utilisations du tableau suivant sont utilisées par l’hôte pour extraire des données de stylet à partir d’un rapport d’entrée, via la collection de stylets Windows intégrée. Le tableau affiche toutes les utilisations obligatoires et les utilisations facultatives prises en charge par Windows pour la création de rapports sur le stylet.
Membre | Description | Page | id | Obligatoire/facultatif | Obligatoire pour HLK |
---|---|---|---|---|---|
X | Coordonnée X de la position de contact | 0x01 | 0x30 | Obligatoire | Oui |
O | Coordonnée Y de la position de contact | 0x01 | 0x31 | Obligatoire | Oui |
Conseil | Définir si le stylet se trouve sur la surface du numériseur | 0x0D | 0x42 | Obligatoire | Oui |
Dans la plage | Indique si le stylet est dans la plage du numériseur | 0x0D | 0x32 | Obligatoire | Oui |
Bouton barillet | État du bouton situé sur le côté du stylet | 0x0D | 0x44 | Obligatoire | Oui |
Inverser | Indique que l’orientation du stylet implique une intention d’effacer | 0x0D | 0x3C | Facultatif | Oui |
Gomme | Indique que le stylet est en cours d’effacement | 0x0D | 0x45 | Facultatif | Oui |
Pression sur la pointe | Pression exercée sur l’extrémité du stylet | 0x0D | 0x30 | Facultatif | Oui |
Temps d’analyse | Temps d’analyse relatif par frame | 0x0D | 0x56 | Facultatif | Non |
X-Tilt | Angle d’inclinaison du stylet le long de l’axe x | 0x0D | 0x3D | Facultatif | Non |
Y-Tilt | Angle d’inclinaison du stylet le long de l’axe y | 0x0D | 0x3E | Facultatif | Non |
Tournant | Rotation dans le sens des aiguilles d’une montre du stylet | 0x0D | 0x41 | Facultatif | Non |
Numéro de série du transducteur | Identificateur persistant unique pour le transducteur | 0x0D | 0x5B | Facultatif | Non |
Numéro de série du transducteur - Partie 2 | Utilisé pour étendre le numéro de série du transducteur par un nombre supplémentaire de 32 bits | 0x0D | 0x6E | Facultatif | Non |
ID du fournisseur du transducteur | Identificateur attribué pour le fournisseur du transducteur | 0x0D | 0x91 | Facultatif | Non |
Le tableau suivant présente les utilisations obligatoires au niveau du rapport pour les rapports d’entrée de stylet Windows intégrés.
Membre | Description | Page | id | Obligatoire/facultatif |
---|---|---|---|---|
ID du rapport | ID de rapport Windows Pen intégré | 0x0D | 0x02 | Obligatoire |
Utilisations facultatives obligatoires et prises en charge par Windows
Tout appareil qui ne signale pas toutes les utilisations obligatoires au niveau du contact ou du rapport sera non fonctionnel en tant qu’appareil de stylet Windows intégré. Les utilisations obligatoires sont strictement appliquées par l’hôte Windows. Lorsqu’une valeur maximale logique n’a pas été définie, la valeur peut être optimisée pour réduire la taille du descripteur.
Les sections suivantes fournissent plus d’informations sur les utilisations facultatives obligatoires et prises en charge par Windows qui ont été présentées dans un tableau précédent.
X, Y
X et Y signalent les coordonnées du stylet intégré. Les éléments globaux suivants doivent être spécifiés pour les utilisations X et Y :
Minimum physique & Maximum physique
Exposant d’unité &unité
Minimum logique & Maximum logique (garantissant une résolution >d’entrée = 150DPI)
Notez que l’ensemble de la plage de coordonnées logiques doit être reportable sur l’axe X et Y .
Conseil du stylet
Utilisé pour indiquer quand la pointe du stylet est sur la surface ou a laissé la surface du numériseur. Cela est indiqué par un élément principal avec une taille de rapport de 1 bit. Lors de la remise d’un rapport d’entrée, le bit doit être défini lorsque le stylet se trouve sur la surface du numériseur et effacé lorsque le stylet a quitté la surface.
Lorsqu’un stylet est signalé pour la première fois dans un flux de rapports avec le commutateur de conseil clair, l’emplacement X/Y signalé doit être identique à la dernière position signalée avec le jeu de commutateurs de conseil.
Dans la plage
Utilisé pour indiquer quand la pointe du stylet (ou gomme de fin) est comprise dans la plage du numériseur. Cela est indiqué par un élément principal avec une taille de rapport de 1 bit. Lors de la remise d’un rapport d’entrée, le bit doit être défini lorsque la pointe du stylet (ou gomme de fin) se trouve sur la surface du numériseur ou dans la plage détectable du numériseur, et effacée lorsque le stylet n’est plus détectable. Il convient de noter que dans la plage ne doit être signalé que lorsque l’emplacement X/Y du stylet peut être signalé de manière fiable et dans les paramètres définis par les exigences du HLK de stylet pour Windows 10.
Lorsqu’un stylet est signalé avec le commutateur en plage effacé, l’emplacement X/Y signalé doit être identique à la dernière position signalée lorsque le commutateur dans la plage a été défini.
Bouton barillet
Utilisé pour indiquer quand le bouton sur le côté du stylet est enfoncé. Cela est indiqué par un élément principal avec une taille de rapport de 1 bit. Lors de la remise d’un rapport d’entrée, le bit doit être défini lorsque ce bouton est enfoncé et effacé lorsque le bouton est relâché.
Inverser
Utilisé pour indiquer quand l’orientation du stylet implique une intention d’effacement. Cela est indiqué par un élément principal avec une taille de rapport de 1 bit. Voici quelques instructions de création de rapports d’entrée pour les différentes implémentations de gomme :
Implémentations de gomme de fin
Lors de la remise d’un rapport d’entrée, le bit doit être défini chaque fois que le stylet est inversé et effacé lorsque le stylet n’est pas inversé.
Implémentations de boutons de gomme
Lors de la remise d’un rapport d’entrée, le bit doit être défini chaque fois que le bouton gomme est enfoncé et que le stylet est dans la plage du numériseur et effacé autrement.
Gomme
Permet d’indiquer quand le stylet est en cours d’effacement. Cela est indiqué par un élément principal avec une taille de rapport de 1 bit. Voici quelques instructions de création de rapports d’entrée pour les différentes implémentations de gomme :
Implémentations de gomme de fin
Lors de la remise d’un rapport d’entrée, le bit doit être défini chaque fois que le stylet est inversé et en contact avec l’écran, et effacé autrement.
Implémentations de boutons de gomme
Lors de la remise d’un rapport d’entrée, le bit doit être défini chaque fois que le bouton gomme est enfoncé et que la pointe du stylet est en contact avec l’écran, et effacée autrement.
Pour éviter d’activer ou d’annuler accidentellement la fonctionnalité d’effacement dans cette implémentation, il est vivement recommandé qu’une fois que la pointe du stylet est en contact avec l’écran, la décompression ou la libération du bouton effacer ne doit pas avoir d’impact sur la création de rapports du bit de gomme.
Lorsqu’un stylet est signalé pour la première fois dans un flux de rapports avec le commutateur d’effacement effacé, l’emplacement X/Y signalé doit être identique à la dernière position signalée lorsque le commutateur d’effacement a été défini.
Temps d’analyse
Le temps d’analyse indique le temps relatif du numériseur en unités de 100 μs. Lorsqu’un appareil commence à signaler des données par la suite d’une période d’inactivité, l’heure d’analyse représente l’intervalle de temps entre la première image signalée jusqu’au moment du rapport. L’heure de la première analyse reçue est traitée comme une heure de base pour les heures signalées suivantes. Le temps écoulé entre les heures d’analyse signalées doit refléter la fréquence d’analyse du numériseur. Il est important de noter que contrairement à d’autres utilisations, l’hôte n’autorise aucune flexibilité pour l’unité pour l’utilisation du temps d’analyse, s’il est implémenté. Il doit être en unités de 100 μs. La valeur est censée être remplacée, car seuls 2 octets sont alloués au compteur.
Pression sur la pointe
Utilisé pour indiquer la pression appliquée à la pointe du stylet. Cela est indiqué par un élément principal avec une taille de rapport d’au moins 8 bits, pour prendre en charge un minimum de 256 niveaux de pression distincts. Pour signaler une granularité supplémentaire, vous devez utiliser une plus grande taille de rapport.
Les valeurs logiques de la pression signalée doivent adhérer aussi étroitement que possible à la courbe logarithmique idéale indiquée dans le diagramme suivant. Les tests de pression fournis par la suite de tests Pen HLK pour Windows 10 sont conçus pour garantir que la courbe de pression signalée se situe dans les limites supérieures et inférieures indiquées dans le diagramme. Bien que la courbe idéale dans le diagramme et ses équations associées soient décrites pour un appareil signalant 256 niveaux, elles peuvent être mises à l’échelle pour prendre en charge un nombre quelconque de niveaux discrets.
Bien que le commutateur de gomme soit actif sur les stylos avec des gommes de fin de fin sans capacités de détection de pression, la pression de l’extrémité du stylet doit signaler 127 (50 % de la pression maximale). Cette valeur a été choisie pour prendre en charge les stylos et les applications qui peuvent consommer une pression réelle du stylet de fin de fin pendant que le commutateur de gomme est actif.
X-Tilt
X-Tilt représente l’angle du plan entre le plan Y-Z, le plan contenant l’axe du transducteur du stylet et l’axe Y.
La plage physique et la plage logique doivent être spécifiées. La plage physique peut être d’un maximum de -90 à 90 deg, mais le minimum/maximum physique signalé dans le descripteur doit correspondre au minimum/maximum réalisable X-Tilt réel du stylet, dans l’unité correcte (0x14, Degrés). La plage logique doit être suffisamment grande pour fournir des données précises, à au moins deux décimales. Radians peut également être utilisé pour la plage physique. X-Tilt est positif à droite de l’utilisateur dans l’orientation native du numériseur.
Y-Tilt
Y-Tilt représente l’angle du plan entre le plan X-Z, le plan contenant l’axe du transducteur du stylet et l’axe Y.
La plage physique et la plage logique doivent être spécifiées. La plage physique peut être d’un maximum de -90 à 90g, mais le minimum/maximum physique signalé dans le descripteur doit correspondre à la valeur Y-Tilt minimale/maximale réalisable réelle du stylet dans l’unité correcte (0x14, Degrés). La plage logique doit être suffisamment grande pour fournir des données précises, à au moins deux décimales. Radians peut également être utilisé pour la plage physique. Y-Tilt est positif pour l’utilisateur dans l’orientation native du numériseur.
Tournant
Twist spécifie la rotation au niveau de l’horloge du stylet autour de son propre axe principal.
La plage physique et la plage logique doivent être spécifiées. La plage physique doit être comprise entre 0 et 360. La plage logique doit être suffisamment grande pour fournir des données précises, à au moins deux décimales. Radians peut également être utilisé pour la plage physique. Dans ce cas, la plage logique doit être suffisamment grande pour signaler des valeurs exactes à au moins quatre décimales.
Numéro de série du transducteur
Le numéro de série du transducteur est un identificateur persistant unique pour le transducteur utilisé dans l’accessoire de stylet qui communique avec le numériseur de stylet. Il doit être de 32 bits et il est défini par le fournisseur ou l’entité identifié par l’ID du fournisseur du transducteur. Dans les circonstances où le numéro de série transducteur est inconnu du numériseur, soit parce que l’accessoire de stylet ne prend pas en charge la transmission de cette valeur ou que la transmission n’a pas été reçue en intégralité, le numériseur doit signaler 0 à l’hôte. La position Null n’est pas prise en charge par l’hôte.
Numéro de série du transducteur – Partie 2
Numéro de série du transducteur : la partie 2 permet de spécifier un nombre supplémentaire de 32 bits dans le cadre de l’identificateur persistant unique du transducteur utilisé dans un accessoire de stylet. Dans les circonstances où le numéro de série transducteur – La partie 2 est inconnue du numériseur, soit parce que l’accessoire de stylet ne prend pas en charge la transmission de cette valeur ou que la transmission n’a pas été reçue en intégralité, le numériseur doit signaler 0 à l’hôte. La position Null n’est pas prise en charge par l’hôte.
ID du fournisseur du transducteur
L’ID du fournisseur du transducteur est un champ permettant de communiquer le fabricant du transducteur utilisé dans l’accessoire de stylet qui communique avec le numériseur de stylet. Il doit s’agir d’un ID de fournisseur USB-IF de 2 octets attribué par le fabricant ou celui de l’IHV/OEM autorisant l’utilisation de leur ID de fournisseur USB-IF à cette fin.