协调器已设置HOLD_AUTO_START,设备主动请求退网,其他节点又将其加入网络,请各位大神帮忙分析一下
rt
如果网络中没有其他的路由器,只有一个路由器和协调器,路由器主动请求退网,是可以成功退掉的,
如果有其他的路由器在,该路由器退网后又会加入到网络中,所有的路由器也同时设置了HOLD_AUTO_START
各位大神 有没有什么解决办法?
你的退网是怎么退的,退的时候Rejoin 是FALSE还TRUE
你要看入网时Associate入网,还是Rejoin入网的,你可以抓包看下。
我试了两种退网方式 一种是
zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);
一种是
NLME_LeaveReq_t tmp_LeaveReq ;
tmp_LeaveReq.removeChildren = FALSE ;
tmp_LeaveReq.rejoin = FALSE ;
tmp_LeaveReq.silent = FALSE ;
tmp_LeaveReq.extAddr = NULL ;
NLME_LeaveReq(&tmp_LeaveReq);
都是可以退掉的
抓包还没有抓 我抓好了把抓包文件发出来
你设置了HOLD_AUTO_START,初始化以后应该是hold在那边的,不会自动加网的,你是通过方式触发加网的。
你说的退网后都能加成功,只是人为的去触发加网吗?退网后自动加了?
入网是通过NLME_PermitJoiningRequest((byte)(*tmpP_8));开放网络 和 NLME_PermitJoiningRequest(0); 关闭网络的方式
我这边有做抓包 我上传您帮忙看看 能不能发现问题
VV 您好:
这个问题好像是解决了 , 通过在路由器初始化中加入NLME_PermitJoiningRequest( 0 ) ; ,其他的路由器退网之后便不会再自动加入网络 。
之前路由器有设置HOLD_AUTO_START, 但没有加上NLME_PermitJoiningRequest( 0 ) ; 。这是是设置出现问题 还是说 本来就应该这么使用 ?