藍芽 HID class descriptor 分析
一.MOUSE
0x05,0x01, /*USAGE_PAGE (Generic Desktop)*/
0x09,0x02, /*USAGE (Mouse)*/
0xa1,0x01, /*COLLECTION (Application)*/
0x09,0x01, /*USAGE (Pointer)*/
0xa1,0x00, /*COLLECTION (Physical)*/
0x85,0x02, /*report ID */
0x05,0x09, /*USAGE_PAGE (Button)*/
0x19,0x01, /*USAGE_MINIMUM (Button 1)*/
0x29,0x03, /*USAGE_MAXIMUM (Button 3)*/
0x15,0x00, /*LOGICAL_MINIMUM (0)*/
0x25,0x01, /*LOGICAL_MAXIMUM (1)*/
0x95,0x03, /*REPORT_COUNT (3)*/
0x75,0x01, /*REPORT_SIZE (1)*/
0x81,0x02, /*INPUT (Data,Var,Abs)*/
0x95,0x01, /*REPORT_COUNT (1)*/
0x75,0x05, /*REPORT_SIZE (5)*/
0x81,0x03, /*INPUT (Cnst,Var,Abs)*/
0x05,0x01, /*USAGE_PAGE (Generic Desktop)*/
0x09,0x30, /*USAGE (X)*/
0x09,0x31, /*USAGE (Y)*/
0x16,0x01,0x80, /*LOGICAL_MINIMUM (-32767)*/
0x26,0xFF,0x7F, /*LOGICAL_MAXIMUM (32767)*/
0x75,0x10, /*REPORT_SIZE (16)*/
0x95,0x02, /*REPORT_COUNT (2)*/
0x81,0x06, /*INPUT (Data,Var,Rel)*/
根據以上判斷,傳送的data應該是6個byte, 1byte ID+ 1byte(3bit button + 5bit input) + 2byte X + 2byte Y
data[0] = 0x2; 必須
data[1] = 0x1; 為滑鼠左鍵按下
data[2] data[3] 代表X的變化
data[4] data[5] 代表Y的變化
二.CONSUMER
0x05, 0x0C, // USAGE_PAGE (Consumer)
0x09, 0x01, // USAGE (Consumer Control)
0xA1, 0x01, // COLLECTION (Application)
0x85, 0x03, // Report ID 03
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x18, // REPORT_COUNT (24)
0x0A, 0x40, 0x00, // USAGE (menu):0x40
0x0A, 0x92, 0x01, // USAGE (AL Calculator):0x192
0x0A, 0x83, 0x01, // USAGE (AL Consumer Control Configuration):0x183
0x0A, 0x23, 0x02, // USAGE (AC Home):0x223
0x0A, 0x8A, 0x01, // USAGE (AL Email Reader):0x18A
0x0A, 0x82, 0x01, // USAGE (AL Programmable Button Configuration):0x182
0x0A, 0x21, 0x02, // USAGE (AC Search):0x221
0x0A, 0x24, 0x02, // USAGE (AC Back):0x224
0x0A, 0x25, 0x02, // USAGE (AC Forward):0x225
0x0A, 0x26, 0x02, // USAGE (AC Stop):0x226
0x0A, 0x27, 0x02, // USAGE (AC Refresh):0x227
0x09, 0xB6, // USAGE (Scan Previous Track)
0x09, 0xB5, // USAGE (Scan Next Track)
0x09, 0xB7, // USAGE (Stop)
0x09, 0xCD, // USAGE (Play Pause)
0x09, 0xE9, // USAGE (Volume Increment)
0x09, 0xEA, // USAGE (Volume Decrement)
0x09, 0xE2, // USAGE (Mute)
0x09, 0xB8, // USAGE (Eject)
0x09, 0x30, // USAGE (Power)
0x0A, 0xB1, 0x01, // USAGE (AL Screen Saver):0x1B1
0x81, 0x02, // INPUT (Data,Var,Abs)
0x95, 0x01, // REPORT_COUNT (1)
0x75, 0x03, // REPORT_SIZE (3)
0x81, 0x03, // INPUT (Cnst,Var,Abs)
0xC0, // END_COLLECTION
根據以上判斷,傳送的data應該是4個byte, 1byte ID+ 3byte的consumer
如果想傳送menu 的HID
data[0] = 0x3;
data[1] = 0x1;
data[2] = 0x0;
data[3] = 0x0;
如果想傳送return / back 的HID
data[0] = 0x3;
data[1] = 0x80;
data[2] = 0x0;
data[3] = 0x0;
可以定製自己想要的任何按鍵
相關文章
- 藍芽 HID 剖析(一)藍芽
- android 4.0 藍芽分析之一Android藍芽
- android 4.0 藍芽分析之二Android藍芽
- 手機藍芽硬體APP公司分析藍芽自動重連機制藍芽APP
- 藍芽藍芽
- Android藍芽使用詳解(普通藍芽)Android藍芽
- 藍芽模組藍芽模組
- iOS 藍芽iOS藍芽
- ios 藍芽iOS藍芽
- Android藍芽那點事——深入瞭解藍芽BlE藍芽 《總結篇》Android藍芽
- iOS藍芽開發 Bluetooth藍芽CoreBluetooth 藍芽中心裝置的實現 藍芽外設的實現 有DemoiOS藍芽
- Android藍芽協議-藍芽掃描 startDiscoveryAndroid藍芽協議
- 藍芽HFP 藍芽電話剖析(二) --- AT command集合藍芽
- java+藍芽Java藍芽
- iOSBluetooth(藍芽)iOS藍芽
- 藍芽4.0 BLE藍芽
- MASA MAUI Plugin 安卓藍芽低功耗(一)藍芽掃描UIPlugin安卓藍芽
- MASA MAUI Plugin IOS藍芽低功耗(三)藍芽掃描UIPluginiOS藍芽
- 熊晨灃藍芽實戰--小程式藍芽連線2.0藍芽
- 藍芽4.0技術分析1-廣播者角色藍芽
- iOS藍芽開發iOS藍芽
- 藍芽工作流程藍芽
- 藍芽之九-AT命令藍芽
- 低功耗藍芽(5)藍芽
- 低功耗藍芽(2)藍芽
- 低功耗藍芽(3)藍芽
- 藍芽學習1藍芽
- 藍芽耳機怎麼恢復中文模式 藍芽耳機調不了中文藍芽模式
- 藍芽解鎖AutoLock 1.0.2 Mac中文版 (藍芽WiFi解鎖工具)藍芽MacWiFi
- 電腦藍芽怎麼連線 電腦連線藍芽的方法藍芽
- 藍芽共享網路怎麼用 win10藍芽共享網路藍芽Win10
- Mac藍芽連線有問題該如何?教你重置Mac藍芽模組Mac藍芽模組
- 藍芽耳機怎麼按都不亮了 藍芽耳機長按無反應藍芽
- BLE藍芽那些事—深入瞭解Android藍芽Bluetooth基礎篇藍芽Android
- 藍芽小鋼炮 - Bose 博士 Revolve 藍芽音響使用感受藍芽
- 藍芽韌體升級藍芽
- 五十一、【Bluetooth藍芽模組】藍芽模組
- 藍芽耳機5.0和5.2哪個好 藍芽5.0和5.2的區別藍芽