我使用的是2.5.1.a的协议栈。
我调试的时候发现, 未入网重启的时候POWER SAVE是没打开的。 做了一下处理之后可以正常的进入休眠了。
static uint16 networkReadState(uint16 events)
[
if(events &MANGETIC_READ_NETWORK_EVENT)
[
if(m_gAppNwkState != DEV_END_DEVICE)
[
osal_pwrmgr_device( PWRMGR_BATTERY );
ZDApp_StopJoiningCycle();
HalLedSet(HAL_LED_3,HAL_LED_MODE_OFF);
osal_pwrmgr_task_state(s_cTaskID,PWRMGR_CONSERVE );
if(c_nJoiningCnt++ < MAGNETIC_JOINING_MAX_CNTS)
[
osal_start_timerEx( s_cTaskID, MAGNETIC_JOINING_EVENT,100);
]
else
[
c_nJoiningCnt = 0;
osal_stop_timerEx(s_cTaskID,MANGETIC_READ_NETWORK_EVENT);
osal_stop_timerEx(s_cTaskID,MAGNETIC_JOINING_EVENT);
]
]
else
[
osal_start_timerEx( s_cTaskID, MANGETIC_READ_NETWORK_EVENT,MAGNETIC_READ_NETWORK_DELAY);
]
return (events ^ MANGETIC_READ_NETWORK_EVENT);
]
return events;
]
非常感谢您的回复!
我使用的是2.5.1.a的协议栈。
我调试的时候发现, 未入网重启的时候POWER SAVE是没打开的。 做了一下处理之后可以正常的进入休眠了。
static uint16 networkReadState(uint16 events)
[
if(events &MANGETIC_READ_NETWORK_EVENT)
[
if(m_gAppNwkState != DEV_END_DEVICE)
[
osal_pwrmgr_device( PWRMGR_BATTERY );
ZDApp_StopJoiningCycle();
HalLedSet(HAL_LED_3,HAL_LED_MODE_OFF);
osal_pwrmgr_task_state(s_cTaskID,PWRMGR_CONSERVE );
if(c_nJoiningCnt++ < MAGNETIC_JOINING_MAX_CNTS)
[
osal_start_timerEx( s_cTaskID, MAGNETIC_JOINING_EVENT,100);
]
else
[
c_nJoiningCnt = 0;
osal_stop_timerEx(s_cTaskID,MANGETIC_READ_NETWORK_EVENT);
osal_stop_timerEx(s_cTaskID,MAGNETIC_JOINING_EVENT);
]
]
else
[
osal_start_timerEx( s_cTaskID, MANGETIC_READ_NETWORK_EVENT,MAGNETIC_READ_NETWORK_DELAY);
]
return (events ^ MANGETIC_READ_NETWORK_EVENT);
]
return events;
]
非常感谢您的回复!
1
举报