在Apollo2_ble 中添加一个service(二)
并且将对应的头文件都包含进来:
图7
svc_hid.h里面声明了SvcHidRegister和SvcHidAddGroup,而hid_api.h里面声明了函数HidAttsWriteCback。
并不是所有的service都需要注册读写回调函数,只有当Attribute list中的Attribute settings项出现ATTS_SET_WRITE_CBACK。
或者ATTS_SET_READ_CBACK时才需要。
以fit工程为例,heart rate的Attribute list如下:
图8
最后一个attribute需要用到写回调,因此在fitstart函数中才需要注册写回调函数的入口。
看我们的service有没有添加成功,我们可以用手机打开蓝牙调试助手:
图9
下图10是未添加HID service时打开调试工具看到的服务列表,可以看见本来除了GAP(generic access profile)和GATT(generic attribute profile)外,有4个services,与我们在图5代码中所见一致,图11是我们添加代码后再打开测试工具看到的服务列表,可以看见HID service已经添加进去了。
图10
图11
参考文献:
[1] BLUETOOTH SPECIFICATION Version 4.2 [Vol 1, Part A] page 97
[2] bluetooth
推荐