终端设置POLL_RATE=3000后,在休眠状态下每隔3000ms就会唤醒一次。但还是有些不懂的地方
1、设置POLL_RATE=3000,终端设备每个三秒唤醒监听是否有消息未处理,唤醒的时候有没有给协调器或者父节点发送消息?
2、如果唤醒时有给父节点发送消息成立,父节点发送给休眠节点的消息是不是先缓存起来,等父节点接收到终端设备唤醒的消息后在发送给终端折别?
3、在休眠期间,父节点可以缓存多少消息?缓存的太多是否会覆盖?
4、我想知道这些源码在哪,能否告知下函数是哪些/
YiKai Chen:
1&2. 唤醒的时候只有對父节点作polling
3. 缓存的太多会覆盖,相關缓存大小設置在nwk_globals.c
// Maximums for the data buffer queue
#define NWK_MAX_DATABUFS_WAITING8// Waiting to be sent to MAC
#define NWK_MAX_DATABUFS_SCHEDULED5// Timed messages to be sent
#define NWK_MAX_DATABUFS_CONFIRMED5// Held after MAC confirms
#define NWK_MAX_DATABUFS_TOTAL12// Total number of buffers4. 源码在協議棧里,是不公開的
user4711142:
回复 YiKai Chen:
那比如我想每隔5分钟发送一次数据,来降低功耗。可是我的POLL_RATE最大为65536ms.
这样相当于设备最大每隔65536就会AF发送一次polling。这个对功耗的影响大么?
YiKai Chen:
回复 user4711142:
你的協議棧是什麼版本?
user4711142:
回复 YiKai Chen:
2.5.1
这个跟协议栈版本也有有关系么?
YiKai Chen:
回复 user4711142:
是的Z-Stack Home 1.2.2a可以設置到uint32,所以早就建議你不要用這麼舊的协议栈版本
user4711142:
回复 YiKai Chen:
我尝试将我的程序移植到Zstack 3.0 ,发现看不懂,网上的资料也不多
Zstack-Home 1.2.2a 协议栈和Zstack有什么区别?
YiKai Chen:
回复 user4711142:
Zstack-Home 1.2.2a 协议栈是基於Zigbee HA profile 1.2的spec,基本上大約是套用在2013-2017這個時間的spec,Zstack 3.0.x是基於最新的Zigbee 3.0的spec,基本上是在2018年之後主要的Zigee spec版本
Viki Shi:
回复 user4711142:
可以看下这边的ZSTACK3.0新特性介绍: www.ti.com/…/swra615.pdf