现有一款设备,电池供电,编译了NV_INIT , POWER_SAVING, 协议版本:HA 1.2.2
10秒定时器事件中执行以下功能
NLME_SetPollRate( 0 );
NLME_SetQueuedPollRate( 0 );
NLME_SetResponseRate( 0 ); ZDApp_StopJoiningCycle(); //停止扫描网络
唤醒后会执行
NLME_SetPollRate( 500 );
NLME_SetQueuedPollRate( 100 );
NLME_SetResponseRate( 100 );
ZDApp_StartJoiningCycle(); //开始扫描网络
问题描述:
1: 当协调在线时,此时上电节点设备(直接硬件复位),可以正常入网,然后进入PM3模式,功耗0.4UA
2:将协调断电,不再打开,此时上电节点设备(直接硬件复位),开始扫描网络,开启10秒定时器,然后超时进入PM3模式。
3:再次通过外部中断方式唤醒节点设备,继续扫描网络,同样激活10秒定时器,然后超时进入PM3模式
4:再次通过外部中断方式唤醒节点设备,继续扫描网络,同样激活10秒定时器,然后超时进入PM3模式
5:此时打开协调器,再次通过外部中断方式唤醒节点设备,此时程序进入了
case ZDO_NWK_JOIN_REQ:
if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE )
{
retryCnt = 0;
devStartMode = MODE_RESUME;
_tmpRejoinState = true;
//A点
osal_cpyExtAddr( ZDO_UseExtendedPANID, _NIB.extendedPANID );
zgDefaultStartingScanDuration = BEACON_ORDER_60_MSEC;
ZDApp_NetworkInit( 0 );
}
break;
再次进入
networkDesc_t* ZDApp_NwkDescListProcessing(void)
{
………….
if ( nwk_ExtPANIDValid( ZDO_UseExtendedPANID ) == true )
{
// If the extended Pan ID is commissioned to a non zero value
// Only join the Pan that has match EPID
因前段程序 “A点” 入已经将节点自的MAC复制到ZDO_UseExtendedPANID中去,导致以下判断出错。不能正常入网
if ( osal_ExtAddrEqual( ZDO_UseExtendedPANID, pNwkDesc->extendedPANID) == false )
continue;
}
}
但如果在上面第2-3点时,打开协调器,可以正常入网。第四次唤醒后,节点进入了“重连事件”。
不知是那里的问题,导致设备第四次唤醒后,会进入 ZDO_NWK_JOIN_REQ 模式下呢。难道是BUG,还是说其它地方问题。
望各位大佬帮忙分析解决一下。
抓包文件如下:7723.test.psd
YiKai Chen:
感覺上你這樣把協調器跟終端開開關關的、不能正常入網也是正常、建議你抓包看看狀況
zhu zhu:
回复 YiKai Chen:
注意,这并非,开开关关,而是协调不在线时,设备进入低功耗三次后不能入网,终端设备是电池供电呢,不可能不停的扫描网络
YiKai Chen:
回复 zhu zhu:
Z-Stack Home 1.2.2a 有rejoin backoff的機制,可以直接用這個機制就好,不需要像你這樣作
zhu zhu:
回复 YiKai Chen:
用rejoin backoff机制,功耗会高过我这种,而且没办法实现即时入网
YiKai Chen:
回复 zhu zhu:
你的會入不了网不是嗎
zhu zhu:
回复 YiKai Chen:
关键不知是什么原因导致进入ZDO_NWK_JOIN_REQ:事件呢
zhu zhu:
回复 YiKai Chen:
关键不知是什么原因导致进入ZDO_NWK_JOIN_REQ:事件呢
YiKai Chen:
回复 zhu zhu:
設備曾經入網過就會进入ZDO_NWK_JOIN_REQ:事件吧
zhu zhu:
回复 YiKai Chen:
你应该没有详细看我的测试过程说明,是新设备,没有入过网,连续三次进入低功耗后,第四次唤醒后,会导致设备进入ZDO_NWK_JOIN_REQ,所以这点让人很头痛,根本不知什么原因
YiKai Chen:
回复 zhu zhu:
我相信我有详细看過你的测试过程说明,你的設備在第一步驟不就先讓他入網了嗎?