nRF 连接服务,发送有关值更改的通知

Posted

技术标签:

【中文标题】nRF 连接服务,发送有关值更改的通知【英文标题】:nRF Connect Service that sends notifications on value change 【发布时间】:2021-10-15 08:53:41 【问题描述】:

我在三星 S21 上使用BToolTI LaunchpadnRF 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 连接服务,发送有关值更改的通知的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 后台运行服务以接收本地通知?

如何发送有关数据库中数据更改的通知

在服务器事件上从服务器向客户端发送通知

如何调试对象发送 KVO 通知的原因?

通知 ember-data 有关服务器更改

未发送有关可用应用更新的 Google Play 推送通知。我错过了啥吗?