Saya mencoba sedikit mendidik diri saya tentang cara membuat deskriptor USB HID di C untuk proyek USB PIC32 yang ingin saya coba.
Saya telah mengunduh dokumen HID Usage Tables dari http://www.usb.org/developers/hidpage/ dan mencoba mencari tahu di mana nilai aktual diindikasikan untuk elemen berbeda di deskriptor HID.
Biarkan saya jelaskan dengan kutipan dari sampel yang saya lihat:
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)
// ...
Dari contoh di atas, jelas bahwa array BYTE terdiri dari pasangan kunci / nilai, jika saya boleh menyebutnya begitu. Misalnya baris ke-2: 0x05,0x01 menunjukkan kunci 0x05, yang merupakan Halaman Penggunaan , dan 0x01 adalah nilai yang menunjukkan Generic Desktop
Saya mencoba mencari tahu di mana nilai-nilai ini ditunjukkan dalam dokumen PDF Tabel Penggunaan HID. Misalnya, saya tidak dapat menemukan referensi itu
USAGE_PAGE == 0x05
dan misalnya
COLLECTION == 0xA1
Saya mencoba mencari PDF untuk 0xA1, tanpa hasil. Satu-satunya cara saya bisa mengetahui nilai-nilainya, adalah dengan melihat komentar pada contoh, atau dengan menggunakan Alat Descriptor USB dari tautan di atas.
Saya hanya ingin tahu, apakah saya benar-benar bodoh karena melewatkan dokumentasi referensi kunci / nilai ini?
Ada banyak contoh online, seperti misalnya tautan berikut: http://www.frank-zhao.com/cache/hid_tutorial_1.php
Tetapi bahkan referensi ini memuat banyak nilai string seperti END_COLLECTION == 0xc0
Di mana saya menemukan referensi untuk nilai-nilai ini? Apa yang saya lewatkan?