协调器终端组成1对1的网络,终端通过
NLME_LeaveReq_t leaveReq;
osal_memset( &leaveReq, 0, sizeof( NLME_LeaveReq_t ) );
leaveReq.rejoin = TRUE;
leaveReq.extAddr = NULL;
if ( NLME_LeaveReq( &leaveReq ) != ZSuccess )
{
ZDApp_LeaveReset( FALSE );
}
退网,为啥协调器通过
HalUARTWrite(0,Array_data(AssociatedDevList[len].shortAddr),4 );
APSME_LookupExtAddr(AssociatedDevList[len].shortAddr,MyIEEE );
HalUARTWrite(0,MyIEEE,8 );
查询终端的IEEE还在呢?
以前做的终端的程序(协调器不变)同样的组网后退网协调器查询就没有了,通过Beyond Compare比较两个程序退网部分都是一样的,旧程序(退网后IEEE还在的程序)只是多了串口通信和PoLL唤醒机制
Tianhao Wang:
重新移植协议栈就没有问题了,不过又有新的问题,入网成功后不跳转到ZDO_STATE_CHANGE
Tianhao Wang:
回复 Tianhao Wang:
这个问题恢复的就更奇怪了,重启了协调器就解决了。我发现终端程序在退组网的时候可能影响到协调器,有时会使协调器死机。协调器也会影响到终端。具体的情况还需要研究。
VV:
终端在退网的时候,协调器知道么? 如果不知道的话,在关联表和地址表中肯定还存在的。