Custom HID device HID report descriptor

Ich habe ein bisschen ein problem mit dem erzeugen der HID-descriptor.
Ich will einfache Berichte mit ID1 für die Eingabe und ID2 für die Ausgabe mit 64 Byte Daten.

Erkannte ich, dass trotz rtfming und googeln habe ich immer noch keine Ahnung haben, über einige Felder, die in der HID-descriptor.

Kann bitte jemand mir einen Tipp geben oder eine Anleitung, wo finde ich die Bedeutung von all-Deskriptor Felder? Alle, die ich finden konnte, war die Beispiele für HID-Maus/joistick/Tastatur.

Beispielsweise - REPORT_SIZE - ist es die Größe in bytes oder bits? Und warum gibt es auch REPORT_COUNT?
Wenn ich 64 bytes in dem Bericht, LOGICAL_MAXIMUM werden müssen, 255 oder 255*64?

Soll ich schreiben LOGICAL_MAX und MIN für jeden Bericht oder nicht?

Oder vielleicht dieses hier (generiert, sondern durch raten) ausreichen wird?

char ReportDescriptor[39] = {
    0x05, 0x01,                    //USAGE_PAGE (Generic Desktop)
    0x09, 0x00,                    //USAGE (Undefined)
    0xa1, 0x01,                    //COLLECTION (Application)
    0x85, 0x01,                    //  REPORT_ID (1)
    0x09, 0x00,                    //  USAGE (Undefined)
    0x15, 0x00,                    //  LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x00,              //  LOGICAL_MAXIMUM (255)
    0x75, 0x40,                    //  REPORT_SIZE (64)
    0x96, 0x00, 0x02,              //  REPORT_COUNT (512)
    0x81, 0x82,                    //  INPUT (Data,Var,Abs,Vol)
    0x85, 0x02,                    //  REPORT_ID (2)
    0x09, 0x00,                    //  USAGE (Undefined)
    0x15, 0x00,                    //  LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x00,              //  LOGICAL_MAXIMUM (255)
    0x75, 0x40,                    //  REPORT_SIZE (64)
    0x96, 0x00, 0x02,              //  REPORT_COUNT (512)
    0x91, 0x82,                    //  OUTPUT (Data,Var,Abs,Vol)
    0xc0                           //END_COLLECTION
};
  • Ich weiß, du hast gesagt, du RTFM, aber auch gebeten, ein Handbuch eh - haben Sie überprüft, die HID-Spezifikation von usb.org, insbesondere Abschnitt 6.2.2 auf Bericht Deskriptoren?
  • Berichts-Größe wird in bytes. Bericht count ist die Anzahl der Berichte, die Sie unterstützen. In Abschnitt 5.8 beschrieben, das logische minimum und maximum. Wenn Sie möchten, dass etwas weniger "spec"-y, dann schauen Sie unter Jan Axelson ' s USB Komplett, es hat einen tollen HID-Beschreibung.
  • eigentlich ja, habe ich. Und alles, was ich sehen kann, ist die Beschreibung einiger Felder. DIE NUTZUNG, ERHEBUNG, EINGABE, AUSGABE. Und ein Beispiel für eine HID-Maus. Das ist nützlich, aber wohl kaum genug. Wenn der Berichts-count ist die Anzahl der reports - warum es drei von Ihnen in eine HID-Maus descriptor? Vielen Dank für das Buch, ich guck hinein!
  • Bericht size in bits statt bytes. Es ist korrekt angegeben in der akzeptierten Antwort.
InformationsquelleAutor Amomum | 2014-02-06
Schreibe einen Kommentar