杰理695X之BLE应用开发

独自空忆成欢 提交于 2020-03-12 13:53:35

    首先是确定与APP通信的BLE服务,这个服务如果不是公共服务,就定义私有服务,比如SDK里面的0X1800为公共服务,为显示电池电量等来用的。定义一个与APP通信的私有服务为0X2020。至于哪些为公共服务,可以查看BLE协议相关手册,除了公共服务以外其余皆为私有服务。平时我们在手机搜索到的BLE图标显示为键盘,手柄等等,就是因为搜索到的蓝牙定义的服务有公共服务,有什么公共服务,就显示为什么样的图标。

    确定好私有服务0X2020,剩下的就是特征值了,一般定义3个特征值,一个用来写(0xa0a0),一个读(0xa0a1),一个Notify(0xa0a2),之后用gatt工具生成profile表格,替换掉sdk里面表格,到这里特征值和服务的工作已经做完。

    接下去是sdk的读写回调,里面代码已经实现,需要做的是把自己定义的读写notify三个通道替换掉原来的。读回调,即app读蓝牙端数据后蓝牙给出怎样的结果,通道替换成0xa0a1即可。举例:用APP读取蓝牙端的音量,是通过0xa0a1这个通道来读取的,只要在回调中把音量放进去,APP即可读回蓝牙端音量。写回调:同理,在app发一个0x01过来,就会调用一次写回调函数。至于发送怎样的数据,跟读回调一个道理。接下去是notify,这个比较重要,这个通道是APP用来监听的通道,也是蓝牙端最常用的通道,蓝牙端想要主动发送数据到APP端就是通过这个通道来实现的,相关的代码在sdk里面都已经实现了,这里就不再赘述。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!