J'essaie de me renseigner un peu sur la création d'un descripteur USB HID en C pour un projet USB PIC32 que je veux essayer.
J'ai téléchargé le document HID Usage Tables sur http://www.usb.org/developers/hidpage/ et j'essaie de comprendre où les valeurs réelles sont indiquées pour différents éléments dans le descripteur HID.
Je m'explique avec un extrait de l'échantillon que je regarde:
ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={{
0x05,0x01, // USAGE_PAGE (Generic Desktop)
0x09,0x05, // USAGE (Game Pad)
0xA1,0x01, // COLLECTION (Application)
0x15,0x00, // LOGICAL_MINIMUM(0)
0x25,0x01, // LOGICAL_MAXIMUM(1)
0x35,0x00, // PHYSICAL_MINIMUM(0)
0x45,0x01, // PHYSICAL_MAXIMUM(1)
// ...
D'après l'exemple ci-dessus, il est clair que le tableau BYTE est constitué de paires clé / valeur, si je peux l'appeler ainsi. Par exemple, la 2ème ligne: 0x05,0x01 indique la clé 0x05, qui est la page d'utilisation , et 0x01 est la valeur indiquant Generic Desktop
J'essaie de comprendre où ces valeurs sont indiquées dans le document PDF HID Usage Table. Par exemple, je ne trouve aucune référence
USAGE_PAGE == 0x05
et par exemple
COLLECTION == 0xA1
J'ai essayé de chercher dans le PDF 0xA1, aucun résultat. La seule façon dont je peux découvrir quelles sont les valeurs, c'est en regardant les commentaires de l'exemple, ou en utilisant l' outil de description USB à partir du lien ci-dessus.
Je me demande simplement, suis-je totalement stupide d'avoir manqué cette documentation de référence clé / valeur?
Il existe de nombreux exemples en ligne, comme par exemple le lien suivant: http://www.frank-zhao.com/cache/hid_tutorial_1.php
Mais même cela fait référence à des charges de valeurs de chaîne comme END_COLLECTION == 0xc0
Où puis-je trouver la référence pour ces valeurs? Qu'est-ce que je rate?