nRF 连接服务,发送有关值更改的通知
Posted
技术标签:
【中文标题】nRF 连接服务,发送有关值更改的通知【英文标题】:nRF Connect Service that sends notifications on value change 【发布时间】:2021-10-15 08:53:41 【问题描述】:我在三星 S21 上使用BTool
、TI Launchpad
和nRF Connect
移动应用程序。我很好奇,可以使用什么类型的服务 nRF Connect,只要它们的值发生变化,就会向我的 TI Launchpad 发送通知。不是周期性的。只有在它们的值改变之后。
我尝试使用Battery Level
服务,但我不确定如何从BTool
“订阅”该服务(如何启用通知)。
有什么建议吗?
【问题讨论】:
澄清一下:您想将 nRF Connect 用作外围设备并使用 BTool 连接到它,而不是相反,对吧? @MichaelKotzjan 是的。没错。我正在使用 nRF Connect 从我的手机上做广告 【参考方案1】:根据BTool User Guide这个BTool User Guide发现开启通知的流程如下:
为了启用通知,客户端设备必须将值 0x0001 写入特定特征的客户端特征配置描述符 (CCCD)。 CCCD 的句柄紧跟特征值的句柄。因此,必须将值 0x0001 写入“句柄 + 1”。
您创建的电池服务的 UUID 为 0x180F,您必须获取此特征的句柄。关于reading a characteristic by UUID的部分描述了一种方法。
为此,您首先需要单击 BTool 中的“读/写”选项卡。在屏幕顶部的“Characteristic Read”部分的“sub-procedure”选项下选择“Read Using Characteristic UUID”选项。在“Characteristic UUID”框中输入UUID(注意先输入LSB,最后输入MSB),然后点击“Read”按钮。
您现在可以使用“handle + 1”访问 CCCD,如前所述。要启用通知,只需将0x0001
写入该句柄即可。
【讨论】:
以上是关于nRF 连接服务,发送有关值更改的通知的主要内容,如果未能解决你的问题,请参考以下文章