BLE-HID
📎 原始文档:https://www.kdocs.cn/l/ciTFUyiGWDtX BLE-HID控制抖音
HYPERLINK "https://kdocs.cn/l/crozABFlHvcx" 【金山文档】 le_smartbox_module.c
HYPERLINK "https://kdocs.cn/l/csf4p2Q92rPu" 【金山文档】 le_smartbox_module.h
hid介绍科参考该网址: HYPERLINK "https://gitee.com/jieli-tech_fae/IOT-AC630N/blob/master/doc/software/%E8%93%9D%E7%89%99/%E8%93%9D%E7%89%99HID.md#https:/gitee.com/jieli-tech_fae/IOT-AC630N/blob/master/doc/software/%E8%93%9D%E7%89%99/BLE%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B.md" hid介绍
1.移植过程及开发介绍
1.在对应的版极配置文件中添加抖音神器控制宏,开启该功能时设为ENABLE,关闭则DISABLE。
2.将le_smartbox_module.c和le_smartbox_module.h文件中带有该宏的代码添加进原工程文件。
`




2.下面简述一下ble的开发流程,首先打开profile文件生成工具文件夹,用Notepad++代开gatt_profile.cfg文件编辑自己需要使用到的服务

下面为配置示例
PRIMARY_SERVICE, 0x1800
CHARACTERISTIC, 2A00, READ | WRITE | DYNAMIC,
PRIMARY_SERVICE, AE00
CHARACTERISTIC, AE01, WRITE_WITHOUT_RESPONSE | DYNAMIC,
CHARACTERISTIC, AE02, NOTIFY,
PRIMARY_SERVICE, 1801
CHARACTERISTIC, 2A05, INDICATE,
//设备信息
PRIMARY_SERVICE, 180A
CHARACTERISTIC, 2A29, READ | DYNAMIC,
CHARACTERISTIC, 2A23, READ | DYNAMIC,
CHARACTERISTIC, 2A24, READ | DYNAMIC,
CHARACTERISTIC, 2A25, READ | DYNAMIC,
CHARACTERISTIC, 2A26, READ | DYNAMIC,
CHARACTERISTIC, 2A27, READ | DYNAMIC,
CHARACTERISTIC, 2A28, READ | DYNAMIC,
CHARACTERISTIC, 2A2A, READ | DYNAMIC,
CHARACTERISTIC, 2A50, READ | AUTHENTICATION_REQUIRED | DYNAMIC,
//HID
PRIMARY_SERVICE, 1812
CHARACTERISTIC, 2A4E, READ | WRITE_WITHOUT_RESPONSE,
CHARACTERISTIC, 2A4D, READ | WRITE | NOTIFY | DYNAMIC,
REPORT_REFERENCE,01,01
CHARACTERISTIC, 2A4D, READ | WRITE | NOTIFY | DYNAMIC,
REPORT_REFERENCE,02,01
CHARACTERISTIC, 2A4D, READ | WRITE | WRITE_WITHOUT_RESPONSE | DYNAMIC,
REPORT_REFERENCE,01,02
CHARACTERISTIC, 2A4D, READ | WRITE | NOTIFY | DYNAMIC,
REPORT_REFERENCE,03,01
CHARACTERISTIC, 2A4D, READ | WRITE | NOTIFY | DYNAMIC,
REPORT_REFERENCE,04,01
CHARACTERISTIC, 2A4D, READ | WRITE | NOTIFY | DYNAMIC,
REPORT_REFERENCE,05,01
CHARACTERISTIC, 2A4D, READ | WRITE | NOTIFY | DYNAMIC,
REPORT_REFERENCE,06,01
CHARACTERISTIC, 2A4B, READ | DYNAMIC,
CHARACTERISTIC, 2A33, READ | WRITE | NOTIFY,
CHARACTERISTIC, 2A4A, READ | DYNAMIC,
CHARACTERISTIC, 2A4C, WRITE_WITHOUT_RESPONSE | DYNAMIC,
PRIMARY_SERVICE, AE40
CHARACTERISTIC, AE41, WRITE_WITHOUT_RESPONSE | DYNAMIC,
CHARACTERISTIC, AE42, NOTIFY,
需要注意的是,1812为HID服务,是必须要生成profile文件的,不然无法使用HID控制。
将上述配置示例写进cfg文件后,运行gatt_inc_generator.exe生成工具即可生成profile文件。
3.下图为安卓和ios的report_map,是对发的数值含义的解析,会在read_callback函数中uuid为2a4b中读取


4.用户在自己定义服务之后,要在att_write_callback和att_read_callback函数中swith语句中添加相应的回调,具体的服务含义可查看文件中的UUID文件手册。

5 .示例中只给出了上下左右滑动以及点赞功能,文件中还有其他操作,比如音量增减,拍照等等。客户可以根据自己需要去使用。需要添加功能,只需要在keypage_app_key_deal_test函数下添加要发送的数组即可实现hid的其他功能。



6.当在其他文件中需要调用hid操作时,比如在ui界面或按键按下发送,只需在响应的ontouch函数或onkey函数中声明该函数,然后发送对应的值即可发送数据。