Ich versuche, mich ein wenig über das Erstellen eines USB-HID-Deskriptors in C für ein PIC32-USB-Projekt zu informieren, das ich versuchen möchte.
Ich habe das Dokument HID Usage Tables von http://www.usb.org/developers/hidpage/ heruntergeladen und versucht herauszufinden, wo die tatsächlichen Werte für verschiedene Elemente im HID-Deskriptor angegeben sind.
Lassen Sie mich mit einem Auszug aus dem Beispiel erklären, das ich mir ansehe:
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)
// ...
Aus dem obigen Beispiel geht hervor, dass das BYTE-Array aus Schlüssel / Wert-Paaren besteht, wenn ich es so nennen darf. Zum Beispiel gibt die 2. Zeile: 0x05,0x01 den Schlüssel 0x05 an, der die Verwendungsseite ist , und 0x01 ist der Wert, der den generischen Desktop angibt
Ich versuche herauszufinden, wo diese Werte im PDF-Dokument der HID-Verwendungstabelle angegeben sind. Zum Beispiel kann ich keinen Hinweis darauf finden
USAGE_PAGE == 0x05
und zum Beispiel
COLLECTION == 0xA1
Ich habe versucht, das PDF nach 0xA1 zu durchsuchen, kein Ergebnis. Die einzige Möglichkeit, die Werte herauszufinden, besteht darin, entweder die Kommentare des Beispiels zu lesen oder das USB-Deskriptor-Tool über den obigen Link zu verwenden.
Ich frage mich nur, bin ich total dumm, diese Schlüssel- / Wertreferenzdokumentation zu verpassen?
Es gibt viele Beispiele online, wie zum Beispiel den folgenden Link: http://www.frank-zhao.com/cache/hid_tutorial_1.php
Aber auch dies verweist auf viele Zeichenfolgenwerte wie END_COLLECTION == 0xc0
Wo finde ich die Referenz für diese Werte? Was vermisse ich?