Я намагаюся трохи навчити себе створювати дескриптор USB HID в C для проекту PIC32 USB, який я хочу спробувати.
Я завантажив документ із таблиць користування HID з http://www.usb.org/developers/hidpage/ і намагаюся з'ясувати, де в дескрипторі HID вказані фактичні значення для різних елементів.
Дозвольте пояснити з уривком зі зразка, який я переглядаю:
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)
// ...
З вищенаведеного прикладу видно, що масив BYTE складається з пар ключів / значень, якщо я можу це так назвати. Наприклад, другий рядок: 0x05,0x01 вказує ключ 0x05, який є сторінкою використання , а 0x01 - значення, що вказує на загальний робочий стіл
Я намагаюся з’ясувати, де ці значення вказані в документі PDF HID таблиці використання. Наприклад, я не можу знайти посилання на це
USAGE_PAGE == 0x05
і, наприклад
COLLECTION == 0xA1
Я спробував пошукати PDF в 0xA1, результатів немає. Єдиний спосіб, коли я можу з’ясувати, що таке значення, - це або переглянувши коментарі прикладу, або використовуючи інструмент USB Descriptor за посиланням вище.
Мені просто цікаво, чи я цілком готовий пропустити цю довідкову документацію про ключ / значення?
В Інтернеті є безліч прикладів, як-от, наприклад, наступне посилання: http://www.frank-zhao.com/cache/hid_tutorial_1.php
Але навіть це посилання навантажує рядкові значення, такі як END_COLLECTION == 0xc0
Де я можу знайти посилання на ці значення? Що я пропускаю?