Re: USB HID Telephony Device

作者 misteryao 於 2017年07月07日 18:02:14
我修改成這樣就可以認到了,測試的結果是,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
}
};

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=7&topic_id=21078&post_id=75867