51822 主从机分析2

解决第三个问题:如何使能从机上的特征值的notify功能,使其能通过notify方式发送数据

使能从机的notify功能是通过写0x0001到从机的那个具有notify功能的特征的CCCD描述符中来实现的。既然要写那就要先有服务发现过程,服务发现就是找到从机里我们需要的服务以及下面的特征值,描述符等。

因为服务发现过程SDK已经做好了,我们不需要去处理,我们要做的就是注册自己需要找的那个服务,该服务只包含一个具有notify功能的特征值,以用来发送数据给主机,可以再从机的service_init函数中看到,

对于主机端来说,主机端只要找到我们需要的服务以及它下面的那个具有notify功能的特征值和CCD就可以了,然后直接写0x0001到CCCD,就使能从机的notify功能了

前面说到主机工程中的SDK已经做好了服务发现的相关流程,也就是主从连接上从机后会自动开始查找从机里面我们需要的服务,特征值等信息,所以我们需要做的就是直接指明自己想要找的那个服务就行,SDK提供的机制就是注册机制,也就是SDK在执行完服务发现过程前会有个初始化,在这个初始化中注册自己想要的服务,以及对应的回调处理函数。之后会自动进行服务查找,并且查到会调用之前注册的回调函数

所以最终当主机连接完成后,主机执行服务发现过程中,开始查找我们调用ble_db_discovery_evt_register函数注册过要找的服务,当找到了从机上的而服务,然后调用

一同注册回调函数db_discovery_evt_handler.

 

再来看一下这个回调函数的实现:

回调函数的目的就是找到从机上那个服务下面的具有notify特性的特征值,并且记录下是第几个,然后调用写函数,写特征值 附属描述符CCCD来实现使能notify功能,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值