我现在想实现一个功能,如果终端上电周围没有网络可以加入,就进入休眠,下次上电再继续加入网络,如果没有网络还是继续休眠。
Viki Shi:
可以实现的,程序里设定一个限时,此时间段内未搜索到可用网络就进入休眠
bo qin1:
回复 Viki Shi:
能具体给我说说在什么地方加那个限时吗。
VV:
回复 bo qin1:
/********************************************************************* * @fn ZDApp_StartJoiningCycle() * * @brief Starts the joining cycle of a device. This will only * continue an already started (or stopped) joining cycle. * * @param none * * @return TRUE if joining stopped, FALSE if joining or rejoining */uint8 ZDApp_StartJoiningCycle( void ){ if ( devState == DEV_INIT || devState == DEV_NWK_DISC ) { continueJoining = TRUE; ZDApp_NetworkInit( 0 );
return ( TRUE ); } else return ( FALSE );}
/********************************************************************* * @fn ZDApp_StopJoiningCycle() * * @brief Stops the joining or rejoining process of a device. * * @param none * * @return TRUE if joining stopped, FALSE if joining or rejoining */uint8 ZDApp_StopJoiningCycle( void ){ if ( devState == DEV_INIT || devState == DEV_NWK_DISC || devState == DEV_NWK_BACKOFF ) { continueJoining = FALSE; return ( TRUE ); } else return ( FALSE );}
bo qin1:
回复 VV:
这个两个函数我已经用过了,确实是没有搜索网络了,但是终端电流还是有10mA左右,没有进入休眠。还有我协议栈用的是2.5那个,会不会是协议栈的问题啊?
yuejie zhu:
回复 bo qin1:
10MA是外设耗电.检查最小系统. 比如拔掉核心板,看外设耗电量
bo qin1:
回复 yuejie zhu:
这个是我做的一个核心板,如果能正常入网电流就在10uA左右(我还有一个芯片外设是低功耗)。