smagi 发表于 2018-2-9 00:00:30

实现BLE 按键通知

本帖最后由 smagi 于 2018-2-25 10:51 编辑

实现按键通知的步骤如下,
1. 搭建一个普通的GATT server, 如果没有完成这一步,请先学习 GATT Users Guide以及相关的blog.
2. 修改server GATT db接口文件 xx_server.dbi
2.1 修改characteristic 属性
properties: [ read, notify ],
2.2 增加 client_config 字段
      client_config      {
            name    : "XXX_CLIENT_CONFIG",
            flags : [ FLAG_IRQ ]
      }

3. 编写 clientConfigAccess 函数, 参考已有的服务程序
对ATT_ACCESS_WRITE的处理中需要记录 access_ind->cid以及 access_ind->value

4. 按键处理,编写发送通知的函数
4.1 检查记录的 cid 以及 client_config 值,确定此连接需要接受通知
4.2 发送通知,调用
GattNotificationRequest(gattManagerDataGetTask(), cid, HANDLE_XXX,1, &skPressed);

此处 HANDLE_XXX需要使用 sink_gatt_db.h中的定义,uint8 skPressed 记录按键值。

手机应用修改就不说了。记得修改dbi之后修改设备地址或者重启手机以涮新记录。

BITOZ老张 发表于 2018-2-27 10:00:39

帮顶,:victory::victory::victory::victory::victory:

Wney 发表于 2018-2-27 13:44:25

谢谢楼主分享,有需要时测试一下。

TAB 发表于 2018-4-9 16:13:42

mark , thanks!

今天星期一 发表于 2018-5-21 15:42:46

66666666666666666

sping 发表于 2020-3-2 15:52:58

:):):):):):)
页: [1]
查看完整版本: 实现BLE 按键通知