3.0.2,ZC 2538,ZED 2530
终端入网后,1小时后对终端执行bdb_resetLocalAction
但是终端又自动加入协调器了,协调器并没有permit join
同时协调器里在permit join 180秒后执行了如下程序,结果终端恢复出厂后还是能自动加入
终端执行bdb_resetLocalAction后自动加入协调器的抓包文件见附件,帮忙看一下是不是协调器的permit join一直打开的着?
具体是什么原因导致终端bdb_resetLocalAction后依然能自动加入协调器
AddrType_t dstAddr;
dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVZCZR;
dstAddr.addrMode = AddrBroadcast;
NLME_PermitJoiningRequest(0);
ZDP_MgmtPermitJoinReq( &dstAddr, 0, TRUE, FALSE );
终端恢复出厂又自动加入.psd
Viki Shi:
数据包无法解析,请把key的交换过程也抓进去:
user5367314:
回复 Viki Shi:
对终端执行bdb_resetLocalAction后自动加入协调器这个过程不是有key的交换过程吗?
对终端执行bdb_resetLocalAction后为什么自动入网了?
YiKai Chen:
你的sniffer log顯示协调器permit join是打开的
user5367314:
回复 YiKai Chen:
@YiKai Chen
我的修改如下:
时间由180秒改为60秒如下
#define BDBC_MIN_COMMISSIONING_TIME60// 180 seconds
协调器每次permit join后开开启个定时器,65秒后再次关闭permit join
bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING);
osal_start_timerEx(zclSampleSw_TaskID,SAMPLEAPP_PERMIT_JOIN_EVT1,65000);//65S后关闭允许入网
定时器里的程序如下:
程序如下,是否有问题?还有没有什么好的建议?怎么协调器的permit join就关不掉呢?if ( events & SAMPLEAPP_PERMIT_JOIN_EVT1 ){zAddrType_t dstAddr;dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVZCZR;dstAddr.addrMode = AddrBroadcast;// Trust Center significance is always trueNLME_PermitJoiningRequest(0);ZDP_MgmtPermitJoinReq( &dstAddr, 0, TRUE, FALSE );return ( events ^ SAMPLEAPP_PERMIT_JOIN_EVT1 );}
YiKai Chen:
回复 user5367314:
你確定SAMPLEAPP_PERMIT_JOIN_EVT1有被執行到嗎
user5367314:
回复 YiKai Chen:
仿真来看,确实进了SAMPLEAPP_PERMIT_JOIN_EVT1,
这个现象也不是必现的(期间没有permit join)
能否周期性的执行SAMPLEAPP_PERMIT_JOIN_EVT1吗?
这样会导致已入网的终端加不进来吗?双方都开启了NV
YiKai Chen:
回复 user5367314:
可以周期性的执行SAMPLEAPP_PERMIT_JOIN_EVT1,不会导致已入网的终端加不进来
user5367314:
回复 YiKai Chen:
1.终端的BDBC_MIN_COMMISSIONING_TIME需要修改吗?默认的是180
2.终端执行bdb_resetLocalAction后会每隔一段时间重启一次是怎么回事?类似leave了,但实际上也没入网啊
YiKai Chen:
回复 user5367314:
1. 不用
2. bdb_resetLocalAction裏頭會設置ZDApp_ResetTimerStart或是發出NLME_LeaveReq,NLME_LeaveReq後也會reset
user5367314:
回复 YiKai Chen:
bdb_resetLocalAction裏頭會設置ZDApp_ResetTimerStart或是發出NLME_LeaveReq,NLME_LeaveReq後也會reset
我这边的现象是终端bdb_resetLocalAction后会每隔十几秒自动复位一次,一直这样,把网关断电了也是这样的
这可能是什么原因?