TI中文支持网
TI专业的中文技术问题搜集分享网站

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

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延时处理?

谢谢。

xin dong:

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

VV:

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

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

xin dong:

回复 VV:

目前就是想留一个接口:

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

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

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

谢谢

VV:

回复 xin dong:

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

user4958201:

回复 xin dong:

您好,最近经常遇到协调器给终端发送leave指令,怎么获知什么时候发送leave

赞(0)
未经允许不得转载:TI中文支持网 » 请问:CC2630 协调器让节点离开网络,应用层如何获取指示,并且有时间做应用处理
分享到: 更多 (0)