免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回復 發帖

USB 開發參考

再請教一下,因為我不需要Volume,因此我拿掉了,HID Descriptor 修改成下面這樣,但就認不出裝置了,請問改的這個Descriptor 有不合理的地方嗎?
udi_hid_telephony_report_desc_t udi_hid_kbd_report_desc = {
{
0x05, 0x0B,        /*USAGE_PAGE (Telephony Devices)*/
0x09, 0x01,        /*USAGE (Phone)*/
0xA1, 0x01,        /*COLLECTION (Application)*/
0x09, 0x06,        /*USAGE (Telephony Key Pad)*/
0xA1, 0x02,        /*COLLECTION (Logical)*/
0x19, 0xB0,        /*USAGE_MINIMUM (Phone Key 0)*/
0x29, 0xBB,        /*USAGE_MAXIMUM (Phone Key Pound)*/
0x15, 0x00,        /*LOGICAL_MINIMUM (0)*/
0x25, 0x0C,        /*LOGICAL_MAXIMUM (12)*/
0x75, 0x04,        /*REPORT_SIZE (4)*/
0x95, 0x01,        /*REPORT_COUNT (1)*/
0x81, 0x00,        /*INPUT (Data,Ary,Abs)*/
0xC0,        /*END_COLLECTION*/
//HOOK SWITCH
0x09, 0x20,        /*USAGE (Hook Switch)*/
0x15, 0x00,        /*LOGICAL_MINIMUM (0)*/
0x25, 0x01,        /*LOGICAL_MAXIMUM (1)*/
0x75, 0x01,        /*REPORT_SIZE (1)*/
0x95, 0x01,        /*REPORT_COUNT (1)*/
0x81, 0x02,        /*INPUT (Data,Var,Abs)*/
0x09, 0x20,        /*USAGE (Hook Switch)*/
0x15, 0x00,        /*LOGICAL_MINIMUM (0)*/
0x25, 0x01,        /*LOGICAL_MAXIMUM (1)*/
0x75, 0x01,        /*REPORT_SIZE (1)*/
0x95, 0x01,        /*REPORT_COUNT (1)*/
0xB1, 0x02,        /*FEATURE (Data,Var,Abs)*/
//PAD
0x75, 0x01,        /*REPORT_SIZE (1)*/
0x95, 0x01,        /*REPORT_COUNT (1)*/
0x81, 0x03,        /*INPUT (Cnst,Var,Abs)*/
0x95, 0x07,        /*REPORT_COUNT (7)*/
0x75, 0x01,        /*REPORT_SIZE (1)*/
0xB1, 0x07,        /*FEATURE (Cnst,Var,Rel)*/
0xC0        /*END_COLLECTION*/
}
};


------------------------------------------------------------
我修改成這樣就可以認到了,測試的結果是,report size 全部加起來若不滿1個byte,好像必須要把它填滿,所以多加了
"0x75, 0x03, // REPORT_SIZE (3)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x01, // INPUT (Cnst,Ary,Abs)"
另外我用Bus hound抓取report in的資料,看起來是有送出,但是keypad 的功能似乎不像原預想的一樣可以直接印出"0~9,*,#",這邊還是有點奇怪,看文件,結果應該會像keyboard一樣可以印出"字"
udi_hid_telephony_report_desc_t udi_hid_kbd_report_desc = {
{
0x05, 0x0b, // USAGE_PAGE (Telephony Devices)
0x09, 0x01, // USAGE (Phone)
0xa1, 0x01, // COLLECTION (Application)
0x09, 0x06, // USAGE (Telephony Key Pad)
0xa1, 0x02, // COLLECTION (Logical)
0x19, 0xb0, // USAGE_MINIMUM (Phone Key 0)
0x29, 0xbb, // USAGE_MAXIMUM (Phone Key Pound)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x0c, // LOGICAL_MAXIMUM (12)
0x75, 0x04, // REPORT_SIZE (4)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x00, // INPUT (Data,Ary,Abs)
0x75, 0x03, // REPORT_SIZE (3)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x01, // INPUT (Cnst,Ary,Abs)
0xc0, // END_COLLECTION
0x09, 0x20,        /*USAGE (Hook Switch)*/
0x15, 0x00,        /*LOGICAL_MINIMUM (0)*/
0x25, 0x01,        /*LOGICAL_MAXIMUM (1)*/
0x75, 0x01,        /*REPORT_SIZE (1)*/
0x95, 0x01,        /*REPORT_COUNT (1)*/
0x81, 0x02,        /*INPUT (Data,Var,Abs)*/
0xc0 // END_COLLECTION
}
};

--------------------------------------------------------------
https://blog.csdn.net/u012328159/article/details/81094436

https://github.com/tz28/Chinese-number-gestures-recognition
返回列表