最近做了一个项目,设备需要用ble进行组网。由于以前没有搞过组网,苦思冥想画了这么一个想法,恳请大佬指点和探讨。
隔。。。。下边是具体方案
1.用小程序选定所有加入网络的设备,对所有设备进行编号,暂定最大255台设备。
2.所有设备和自身编号加一和加二编号的设备连接,并且首尾相连。这样,每台设备要扮演两主两从角色。
3.发送到网络的消息包含以下部分:a.起始mac地址(或者自身编号,以下统称mac),b.目标mac地址或编号,可以是多个,c.消息id,一字节,d.消息内容。
4.当某个节点需要发送消息到网络时,需要向自己的两个下位机发送消息。生成并保存消息id。当收到相同起始mac和消息id两次或超时时,认为本次传输结束,删除保存的消息信息。
5.当节点收到上位机消息,且自身为目标节点中其一,则从目标mac中剔除自身,若还有目标节点,则继续发送到自己的两个下位机。每一个新的消息,不管是接收还是路由,都要保存消息的起始mac和消息id。当收到相同起始mac和消息id两次或超时时,认为本次传输结束,删除保存的消息信息。第二次接收不会触发发送。
6.假设有n个节点,n大于2。每次从起始节点到起始节点,路径为n/2次发送。相邻编号的两台设备同时失效时,网络就会失效。比较关心的是功耗,稳定性,抗节点失效。时间这块儿倒还好。 |