CH573使用Mesh组网,如何更新App_Key呢,有没有相关例程,谢谢!!
您好,需要做到什么样的效果呢,配网方式是怎样的。
如果是配网器配网方案,可以通过配网器的客户端接口来更新app key(bt_mesh_cfg_app_key_update)。
如果是自配网方案/手机配网方案,在代码中增加客户端模型,再调用上述接口也可以实现。
自配网方案中另有管理本地app key的方案:将bt_mesh_app_key_set、bt_mesh_store_mod_bind接口配合使用,除了“添加”的功能,也可以实现“更新”。 比如说在vnd_models[0].keys[0]已经被配置好一个app key序号的情况下,将其赋值为另一个已有app key的序号,再调用bt_mesh_store_mod_bind即可更新为另一个app key。
好的,谢谢解答。目前我是用自配网的方式,想要达到的效果:可以同时更新处于一个组网下的所有APP_KEY
如果所有节点都只持有一个KEY1,且是走其他协议来更新APP KEY,比如说走BLE/2.4G射频来交互新KEY,那没问题,每个节点走交互一遍,人为保障所有节点都更新完毕。
如果走mesh消息包去更新KEY,更新所有节点的APP KEY是可以的,前提是所有节点都要持有2个KEY(比如KEY0合KEY1)且至少一个相同的APP KEY比如说KEY0,然后用KEY0去发包来更新另一个KEY1。
如果所有节点都只持有一个KEY,那么一定要保证①发送mesh消息命令的节点是最后一个更新KEY的,②节点数量多的情况下,中继节点不能收到命令后立即更新KEY,否则后续的包,周围需要转发功能才能收到的节点会收不到命令。总之要确保所有节点都收到命令,而KEY一旦更新就无法再通信了。
好的,谢谢解答,我再去看一下。