有什么方法让BLE从设备在发生事件时通知主设备?
问题描述:
我正在设置一个BLE Slave/peripheral的配置,它有两个控制变量,每个变量必须可以从主控制器读/写,但每个控制变量也可以通过从控器上的按钮进行修改。我想包含一个从机的机制,让主人知道控制变量是否通过按钮在从机上本地更改。预计奴隶会经常不在主人的范围内,所以确实有两个相关的要求。一种是,当控制变量在本地发生变化时,从机通知主机,另一种情况是主机需要了解自动重新建立连接时控制变量的当前状态。我不希望Master在连接时需要轮询Slave,因为我试图将Slave的功耗降到最低,并且这种更改通常非常少见。我应该在包含两个变量的自定义配置文件的特征中设置“通知”选项,还是设置一个单独的服务(或其他)来完成通知。如果主人在收到通知发生更改时必须读取配置文件/特性,那么也可以。我认为还需要某种方式,奴隶可以告诉大师已收到通知,以便它可以在下次机会时重试。我刚刚了解BLE,似乎有很多方法可以做事,我还没有找到任何可以解释各种选项及其优点/缺点的良好参考。有什么方法让BLE从设备在发生事件时通知主设备?
答
只需在特征上设置通知属性即可。当有新值可用时,发送一个包含新值的通知。
要重新连接时“同步”数值,只需让主人读取特征。您也可以发送通知。
如果你想节省外设的电源,我可以推荐“从属延迟”,如果你仍然想要低延迟。