就是Home 1.2.2a这个版本存在bug,应用层函数无法通过消息ZDO_STATE_CHANGE来正确获取当前状态。
1,任何一个状态都无法切回到DEV_INIT状态,因为在执行ZDApp_ChangeState( DEV_INIT )后又立即执行ZDO_StartDevice,状态不会切回DEV_INIT。
2,DEV_NWK_DISC状态如果没有扫描到网络,会无止境的扫描下去,状态是连续的DEV_NWK_DISC。如果ZDApp_StopJoiningCycle后再ZDApp_StartJoiningCycle,是不是应该回到DEV_INIT一次?
3,REJOIN时,不会进入DEV_NWK_SEC_REJOIN_CURR_CHANNEL状态。该版本协议栈中,rejoin的四种方式,由prevDevState的值决定。虽然这样做实现了四种rejoin模式的切换,但是应用层通过ZDO_STATE_CHANGE并不能获得当前的rejoin状态。