藍芽 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;
可以定製自己想要的任何按鍵
相關文章
- 手機藍芽硬體APP公司分析藍芽自動重連機制藍芽APP
- 藍芽藍芽
- Android藍芽使用詳解(普通藍芽)Android藍芽
- iOS藍芽開發 Bluetooth藍芽CoreBluetooth 藍芽中心裝置的實現 藍芽外設的實現 有DemoiOS藍芽
- ESP32藍芽學習--藍芽概念學習藍芽
- java+藍芽Java藍芽
- 藍芽模組藍芽模組
- MASA MAUI Plugin IOS藍芽低功耗(三)藍芽掃描UIPluginiOS藍芽
- SKYLAB:藍芽閘道器應用場景案例分析藍芽
- MASA MAUI Plugin 安卓藍芽低功耗(一)藍芽掃描UIPlugin安卓藍芽
- iOS藍芽開發iOS藍芽
- 白色藍芽耳機藍芽
- BLE低功耗藍芽藍芽
- Android藍芽子系統"BlueFrag"漏洞分析(CVE-2020-0022)Android藍芽
- 藍芽解鎖AutoLock 1.0.2 Mac中文版 (藍芽WiFi解鎖工具)藍芽MacWiFi
- 藍芽共享網路怎麼用 win10藍芽共享網路藍芽Win10
- 電腦藍芽怎麼連線 電腦連線藍芽的方法藍芽
- 藍芽韌體升級藍芽
- Android Ble藍芽入門Android藍芽
- Android開發--藍芽操作Android藍芽
- Android-藍芽聊天demoAndroid藍芽
- 藍芽Beacon格式詳解藍芽
- 怎麼更新電腦藍芽驅動 win10藍芽驅動更新藍芽Win10
- 藍芽耳機怎麼恢復中文模式 藍芽耳機調不了中文藍芽模式
- Mac藍芽連線有問題該如何?教你重置Mac藍芽模組Mac藍芽模組
- omthing TWS藍芽耳機怎麼樣?omthing TWS藍芽耳機全面評測藍芽
- 藍芽win10如何開啟_w10系統藍芽怎麼開藍芽Win10
- 2.4g和藍芽哪個好 2.4g和藍芽的區別藍芽
- 藍芽耳機5.0和5.2哪個好 藍芽5.0和5.2的區別藍芽
- 藍芽耳機怎麼按都不亮了 藍芽耳機長按無反應藍芽
- Android 傳統藍芽開發Android藍芽
- android藍芽BLE(一) —— 掃描Android藍芽
- 富芮坤藍芽學習藍芽
- 藍芽解鎖Mac工具 - BLEUnlock藍芽Mac
- 藍芽音樂之歌詞同步藍芽
- iOS 藍芽開發 - swift版iOS藍芽Swift
- android藍芽BLE(三) —— 廣播Android藍芽
- 小程式之藍芽的使用藍芽
- android藍芽BLE(二) —— 通訊Android藍芽