(只占用2字节RAM)节点在线心跳维护与管理解决办法
父节点管理所有子节点时只占用协议栈2个字节的RAM内存,不占用任何FLASH空间。
对协议栈版本有要求:Z-Stack Core 2.6.2及以上使用,比如目前Mesh1.0.0或者Z-Stack Home 1.2.1或者Z-Stack 3.0.0都可以正常使用。查看自己的协议栈内核版本请到安装目录下查看Release Notes的声明。
如有意愿可以添加QQ:326575140进行咨询,如果你正在浏览的是Internet of Things的网站,请猛戳屏幕右侧的QQ交谈与我联系。
实现功能:
1、 协调器、路由器可以各自管理各自的子节点是否在线。
2、 设备掉线后该设备的父节点会自动删除掉掉线设备的信息,留出RAM给其他设备加入。
3、 查看设备已经连接了多少个子节点。
4、 查询设备是否为自己的子节点。
5、 节点掉线自动通知应用层掉线设备的网络地址。
下面是使用方法:
1、 在tasksArr和osalInitTasks中添加任务Heartbeat_ProcessEvent和Heartbeat_Init( taskID ):(记得预编译HEARTBEAT)
2、 如果需要获取掉线设备的网络地址,请调用HeartbeatNoticeBackFuncSet函数设置自己的回调函数地址,如果不需要也可以不设置。
到此为止,节点管理已经可以正常运行了,无需关心过程,路由和协调器会自动维护在线设备和删除掉线设备。
下面是API介绍:
1、 如果想查询设备是否是自己的子设备,可以调用AssociatedDevListSearchRequest进行查看。
2、 如果想查看当前路由一共有多少个在线子节点,可以调用AssociatedDevListActiveTotalAsk进行查看,返回值为在线子节点数量
其他封装库:
【信道、PANID动态更换,beacon request次数与速率控制库文件&源码】
【ZigBee白名单方案库文件或源码出售】
2个字节?可以管理?一个节点的网络地址都有2个字节了,一个路由20个节点的时候也只需要两个字节的内存还是每个节点需要2个字节的内存呢?
是的,只需要消耗2字节,和节点数量没关系