Quantcast
Channel: Zigbee 和 Thread
Viewing all articles
Browse latest Browse all 16972

帖子: NLME_OrphanJoinRequest发送时功耗过大

$
0
0

当节点跟父设备断开以后,会发送给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,需要怎么修改。



Viewing all articles
Browse latest Browse all 16972

Trending Articles