大家好,
我最近用Z-Stack1.2.2a协议栈在做情景面板,发现面板在Rejoin backoff, silent period期间无法进入低功耗,虽然抓包发现停止发beacon去搜索重入网,但是电流一直保持在28mA。有谁遇到这样的情况,或者谁能告诉一下这个情况该怎样做才能让面板进到低功耗去吗?谢谢
if( events & ZDO_REJOIN_BACKOFF )
{
if( devState == DEV_NWK_BACKOFF )
{
ZDApp_ChangeState(DEV_NWK_DISC);
// Restart scan for rejoin ZDApp_StartJoiningCycle();
osal_start_timerEx( ZDAppTaskID, ZDO_REJOIN_BACKOFF, zgDefaultRejoinScan );
}
else
{
// Rejoin backoff, silent period
ZDApp_ChangeState(DEV_NWK_BACKOFF);
ZDApp_StopJoiningCycle();
osal_start_timerEx( ZDAppTaskID, ZDO_REJOIN_BACKOFF, zgDefaultRejoinBackoff ); }
return ( events ^ ZDO_REJOIN_BACKOFF);
Susan Yang:
您现在是想在节点没有加入网络时也能实现低功耗?节点在未加入网络时一直在搜索网络,发送beacon request寻找网络。
如果需要实现低功耗,则需要控制搜索网络的频率,或者间歇性的搜索网络。
您可以尝试以下两种方式
1)手动的使能网络扫描,可以通过使能MANAGED_SCAN
2)停止和启动网络扫描,您可以开启一段时间扫描,如果没有扫描到,那么可以停止一段时间。关于这种方式您可以参考Z-Stack Home 1.2.2a里面针对Rejoin的处理。