Sto cercando di istruirmi un po 'sulla creazione di un descrittore HID USB in C per un progetto USB PIC32 che voglio tentare.
Ho scaricato il documento Tabelle di utilizzo HID da http://www.usb.org/developers/hidpage/ e ho cercato di capire dove sono indicati i valori effettivi per diversi elementi nel descrittore HID.
Lasciatemi spiegare con un estratto del campione che sto guardando:
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)
// ...
Dall'esempio sopra, è chiaro che l'array BYTE è costituito da coppie chiave / valore, se posso chiamarlo così. Ad esempio la seconda riga: 0x05,0x01 indica la chiave 0x05, che è la pagina di utilizzo , e 0x01 è il valore che indica Desktop generico
Sto cercando di capire dove sono indicati questi valori nel documento PDF Tabella utilizzo HID. Ad esempio, non riesco a trovare alcun riferimento
USAGE_PAGE == 0x05
e per esempio
COLLECTION == 0xA1
Ho provato a cercare il PDF per 0xA1, nessun risultato. L'unico modo in cui sono in grado di scoprire quali sono i valori è guardando i commenti dell'esempio o utilizzando lo strumento di descrizione USB dal link sopra.
Mi sto solo chiedendo, sono totalmente stupido per aver perso questa documentazione di riferimento chiave / valore?
Ci sono molti esempi online, come ad esempio il seguente link: http://www.frank-zhao.com/cache/hid_tutorial_1.php
Ma anche questo fa riferimento a un sacco di valori stringa come END_COLLECTION == 0xc0
Dove trovo il riferimento per questi valori? Cosa mi sto perdendo?