微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > Z-Stack中终端状态机存在不合理的地方,希望TI能够修改。

Z-Stack中终端状态机存在不合理的地方,希望TI能够修改。

时间:10-02 整理:3721RD 点击:

VV给出了Z-stack终端设备状态机的变化,但是这个状态机存在几个不合理的地方。

http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/104629.aspx

1,DEV_INIT只是一个初始化的状态,状态机中缺少一个IDLE的状态。倒是有很多其它状态,可以切换到DEV_NWK_DISC。

2,DEV_NWK_DISC状态由ZDApp_NetworkInit来触发,触发时就意味着调用了NLME_NetworkDiscoveryRequest,这时候需要等待ZDO_NWK_DISC_CNF,否则连续调用NLME_NetworkDiscoveryRequest会导致返回错误。

3,调用ZDApp_StopJoiningCycle应该在什么时候调用?ZDApp_StartJoiningCycle呢?低功耗节点在无可用父节点的时候,应该ZDApp_StopJoiningCycle关闭扫描网络,但是这样会导致停留在DEV_NWK_DISC。如果程序仅仅判断在DEV_NWK_DISC时调用ZDApp_StartJoiningCycle,是否又会导致NLME_NetworkDiscoveryRequest重复调用?

另外还有一个不合理,EndDevice在Parent的Child Ageing超时时,再向父节点发一个MAC DataRequest,父节点会回复一个LeaveReq,EndDevice会离开网络,重新Associate一次。合理的做法应该是EndDevice应该寻找新的父节点,并用Rejoin的方式再加一次。

非常感谢发表你的意见

1, 如果设置idel状态话,那么idle状态做什么事情?是休眠,还是唤醒?

2, 协议栈设计就是调用discovery以后等待cnf,会为什么会有连续调用

3,这里可以加个条件判断,防止误操作。

对的,这个你说的是对的,只要在Leave req里面,把rejoin=true就可以了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top