协议栈:Z-Stack3.0.2
协调器处理器:CC2538
终端处理器:CC2530
问题描述:
请问在Z-Stack3.0.2中父节点为终端保存非直接信息的时间怎么调节?
在“nwk_globals.c”文件中有关于终端缓存功能的宏定义:
// 1-255 (0 -> 256) X RTG_TIMER_INTERVAL
// A known shortcoming is that when a message is enqueued as "hold" for a
// sleeping device, the timer tick may have counted down to 1, so that msg
// will not be held as long as expected. If NWK_INDIRECT_MSG_TIMEOUT is set to 1
// the hold time will vary randomly from 0 – CNT_RTG_TIMER ticks.
// So the hold time will vary within this interval:
// { (NWK_INDIRECT_MSG_TIMEOUT-1)*CNT_RTG_TIMER, NWK_INDIRECT_MSG_TIMEOUT*CNT_RTG_TIMER }
这里表明父节点为终端缓存消息的时间为: { (NWK_INDIRECT_MSG_TIMEOUT-1)*CNT_RTG_TIMER, NWK_INDIRECT_MSG_TIMEOUT*CNT_RTG_TIMER }
将“f8wConfig.cfg”中的“-DNWK_INDIRECT_MSG_TIMEOUT”设为1,然后将“CNT_RTG_TIMER ”设为3,那么协调器为直连睡眠终端保存信息的时间就为0-3秒吗?
我按照上面的设置将协调器为直连睡眠终端保存信息的时间改为0-3秒,然后使用按键将终端进入深睡眠,再让协调器发送读取属性命令给终端,5秒后通过按键将终端从深睡眠中唤醒“data request”父节点中的数据还是成功接收到了,这证明我的保存信息时间没有修改成功?
YiKai Chen:
保存信息的时间到了,如果沒有新的信息塞到缓存,那信息是不會拉掉的
Jesse Huang:
回复 YiKai Chen:
hi,YiKai Chen!
Thank you for your reply.
我按照你的说明测试到的结果跟你预测的有点不一样。
1、首先我将协调器为直连睡眠终端保存信息条数改为4条(#define NWK_MAX_DATABUFS_TOTAL 4)。
2、将保存信息的时间改为3-4秒(将-DNWK_INDIRECT_MSG_TIMEOUT=4; #define CNT_RTG_TIMER 1)。
3、然后使用按键将终端1进入深睡眠,再让协调器发送6条“读取属性命令”给终端1。
4、7秒后再让协调器发送6条“读取属性命令”给在线的终端2。结果是协调器没有发出任何消息。
5、通过按键将终端1从深睡眠中唤醒“data request”父节点中的数据还是成功接收到了5条。
从这个逻辑看来应该是在发送完5条“读取属性命令”给终端1后,再调用发送函数“zcl_SendCommand”发送数据时,返回的status是“ZBufferFull”而不是“SUCCESS”了。在过了保存时间后的7秒依旧无法发出任何消息,直到终端1从协调器中读取了缓存协调器才能正常发送数据。或者到了20多秒才会自动恢复,才能正常发送数据,我想修改的就是这个“自动恢复的时间”。
Jesse Huang:
回复 YiKai Chen:
hi,YiKai Chen!
请问为什么“f8wConfig.cfg”中也有默认的holding timeout:
/*Default indirect message holding timeout value:*1-65535 (0 -> 65536) X CNT_RTG_TIMER X RTG_TIMER_INTERVAL*/
-DNWK_INDIRECT_MSG_TIMEOUT=7
它与上述的“nwk_globals.c”文件中的holding timeout有什么关系吗?
YiKai Chen:
回复 Jesse Huang:
你要設置NWK_INDIRECT_MSG_TIMEOUT的話應該要從f8wConfig.cfg
Jesse Huang:
回复 YiKai Chen:
是的,可是还是没有达到预期的效果,请问您测过这个参数吗?
YiKai Chen:
回复 Jesse Huang:
我沒像你这樣测过、你可以發個貼子上英文版E2E 看看TI AE怎麼回應
Jesse Huang:
回复 YiKai Chen:
好的,感谢你的回复,有了结果我会贴出来的!
Jesse Huang:
问题发到英文版的e2e了:e2e.ti.com/…/759798
可是国外放假,有TI的中国员工可以解答下吗?谢谢!
YiKai Chen:
回复 Jesse Huang:
国外放假應該結束了、估計晚点会有人回應