当节点跟父设备断开以后,会发送给ZDO层ZDO_NWK_JOIN_REQ命令,我的配置如下:
retryCnt = 0;
devStartMode = MODE_RESUME;
_tmpRejoinState = true;
osal_cpyExtAddr( ZDO_UseExtendedPANID, _NIB.extendedPANID );
zgDefaultStartingScanDuration = BEACON_ORDER_15_MSEC; //BEACON_ORDER_60_MSEC;
ZDApp_NetworkInit( NWK_START_DELAY );
节点变成MODE_RESUME状态,然后调用ZDO_StartDevice函数里面的
NLME_OrphanJoinRequest( runtimeChannel, zgDefaultStartingScanDuration ); 发送orphan notification,
其中runtimeChannel为26信道,
测试后zgDefaultStartingScanDuration参数好像没生效,测量其瞬间的发送电流大道27mA;
由于我们的产品是单火开关设备,无法提供这么大的电流,所以将 发送ZDO层ZDO_NWK_JOIN_REQ消息做了如下修改:
retryCnt = 0;
devStartMode = MODE_REJOIN;
_tmpRejoinState = true;
osal_cpyExtAddr( ZDO_UseExtendedPANID, _NIB.extendedPANID );
zgDefaultStartingScanDuration = BEACON_ORDER_15_MSEC; //BEACON_ORDER_60_MSEC;
ZDApp_NetworkInit( NWK_START_DELAY );
测试后发现,当设备离网后会进入ZDO_StartDevice函数里面调用NLME_NetworkDiscoveryRequest,一直返回失败。
触关发开,可以看见设备发送的ON/OFF数据包。
请问如果终端设备离线不想让其发送NLME_OrphanJoinRequest,需要怎么修改。