蓝牙mesh组网实战(朋友节点和低功耗节点篇)
朋友节点和低功耗节点可以说是蓝牙mesh组网中的Feature了。
低功耗节点的低功耗,一部分要归功于朋友节点,朋友节点可以说是包揽了低功耗节点的“接收”功能。就像“菜鸟驿站”和“收件人”,在数据包传递给与朋友节点相连的低功耗节点时,朋友节点会先代收(菜鸟驿站收到包裹),低功耗节点定时询问朋友节点是否有数据,有则接收(收件人去取件),没有就下次再说。这就给低功耗节点节省了功耗,不用时刻去抓取广播层中的数据,查看是否是发给自己的(收件人有自己的学习工作,不用不停地查询是否有包裹)。若我魔改协议栈,我就是不想要朋友节点,我就是要赌其他节点发包的一瞬间,低功耗节点恰好开启每分钟、每小时乃至每天一次的数据接收状态,那……所以ch582单片机的蓝牙mesh协议栈做了处理,当低功耗节点周围有朋友节点可以支持它时,就会自动与朋友节点相连,之后才能进行收数据。每个朋友节点最多支持4个低功耗节点,默认开启转发功能。对于低功耗节点的发送数据,低功耗节点就不用考虑对方是否有能力收到数据,配网成功后直接通过广播层发出去就好了(甚至可以砍掉收数据功能,不用连接朋友节点就可以发数据,但是如肉夹馍不要馍一样有点奇怪,不推荐这么用)。
小贴士:①蓝牙mesh网络中所有的数据包最终都通过BLE广播承载层传输。配网流程和工作流程是分开的,朋友节点和低功耗节点都需要先行配网再工作。对于低功耗节点来说,比如说采集环境温度是它的工作;对于朋友节点来说,支持低功耗节点的接收数据是它的本职工作,转发数据是例程中默认开启的“转发”功能的兼职工作(可以在app_mesh_cfg.h中开启或关闭相关功能,由于硬件限制,除了转发功能外不建议复用其他功能);故低功耗节点在配网后发数据能够不依赖朋友节点,直接发出去(反正是广播,谁抓到包了谁就往外转发至目标节点)。
-----------------------------------更多图文介绍待更新-----------------------------------