微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 请问:CC2630 协调器让节点离开网络,应用层如何获取指示,并且有时间做应用处理

请问:CC2630 协调器让节点离开网络,应用层如何获取指示,并且有时间做应用处理

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

TI:

使用芯片CC2630

请问协调器让一个终端离开这个网络,需要应用层收到指示,并且有时间应用处理,比如保存数据至NV。

目前做法:

(1)在应用层的DLSApp_setupZStackCallbacks中注册

          zdoCBReq.has_leaveIndCB = true;
          zdoCBReq.leaveIndCB = true;

(2)终端处理ZDO_ProcessMgmtLeaveReq函数中增加回调,ID采用:ZDO_LEAVE_IND_CBID(ZDAPP.h),

         其原在ZStackTaskInit中就有注册,在ZDO_LeaveInd中回调,(ZDO_LeaveInd在何处会被调用?)。

        void ZDO_ProcessMgmtLeaveReq( zdoIncomingMsg_t *inMsg )
       {……………………

            // Pass the leave indication to higher layer if callback registered.
            if (zdoCBFunc[ZDO_LEAVE_IND_CBID] != NULL)
            {
                 (void)zdoCBFunc[ZDO_LEAVE_IND_CBID](&ind);
            }

           ……………………

}

实际测试问题:应用层可以收到指示,但是处理时间不够。

请问如何修改?是否需要将NLME_LeaveReq延时处理?

谢谢。

终端节点采用CC2630,需要CC2630的APP Stack 收到 Core stack的指示,谢谢

ZDO_LeaveInd是在收到leave命令后,在core stack中调用的,然后再把leave indication发送到应用层去。

请问延迟处理的目的为了什么?

目前就是想留一个接口:

想在应用层做一些指示,如LED闪亮;其次应用层可能需要保存或删除一些NV数据。

感觉ZDO_LeaveInd没有被调用,因此在ZDO_ProcessMgmtLeaveReq中增加了ZDO_LEAVE_IND_CBID回调,

但是很快退网完成复位,想做成退网完成后,延时复位。

谢谢

可以在协调器上直接调用NLME_LeaveReq应该可以的

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

网站地图

Top