VOS_VOID TAF_MMA_RegFsm( VOS_VOID  )
{
    /* 预处理注册 */
    TAF_FSM_RegisterFsm((TAF_MMA_GetPreFsmDescAddr()),
                         "TAF:FSM:MMA:PreProcess",
                         TAF_MMA_GetPreProcessStaTblSize(),
                         TAF_MMA_GetPreProcessStaTbl(),
                         VOS_NULL_PTR,
                         VOS_NULL_PTR);


    /* 注册Main状态机 */
    TAF_FSM_RegisterFsm((TAF_MMA_GetMainFsmDescAddr()),
                         "TAF:FSM:MMA:MAIN",
                         (VOS_UINT32)(TAF_MMA_GetMainStaTblSize()),
                         TAF_MMA_GetMainStaTbl(),
                         VOS_NULL_PTR,
                         VOS_NULL_PTR);

    /* 注册Sub状态机 */
    TAF_FSM_RegisterFsm((TAF_MMA_GetPhoneModeFsmDescAddr()),
                         "TAF:FSM:MMA:Phone Mode",
                         (VOS_UINT32)TAF_MMA_GetPhoneModeStaTblSize(),
                         TAF_MMA_GetPhoneModeProcessStaTbl(),
                         VOS_NULL_PTR,
                         TAF_MMA_InitFsmCtx_PhoneMode);
}
VOS_VOID TAF_MMA_RegFsm( VOS_VOID  )
{
    /* 预处理注册 */
    TAF_FSM_RegisterFsm((TAF_MMA_GetPreFsmDescAddr()),
                         "TAF:FSM:MMA:PreProcess",
                         TAF_MMA_GetPreProcessStaTblSize(),
                         TAF_MMA_GetPreProcessStaTbl(),
                         VOS_NULL_PTR,
                         VOS_NULL_PTR);

    /* 注册Main状态机 */
    TAF_FSM_RegisterFsm((TAF_MMA_GetMainFsmDescAddr()),
                         "TAF:FSM:MMA:MAIN",
                         (VOS_UINT32)(TAF_MMA_GetMainStaTblSize()),
                         TAF_MMA_GetMainStaTbl(),
                         VOS_NULL_PTR,
                         VOS_NULL_PTR);

    /* 注册Sub状态机 */
    /* 注册Phone Mode子状态机 */
    TAF_FSM_RegisterFsm((TAF_MMA_GetPhoneModeFsmDescAddr()),
                         "TAF:FSM:MMA:Phone Mode",
                         (VOS_UINT32)TAF_MMA_GetPhoneModeStaTblSize(),
                         TAF_MMA_GetPhoneModeProcessStaTbl(),
                         VOS_NULL_PTR,
                         TAF_MMA_InitFsmCtx_PhoneMode);

#if (FEATURE_IMS == FEATURE_ON)
    /* 注册IMS SWITCH子状态机 */
    TAF_FSM_RegisterFsm((TAF_MMA_GetImsSwitchFsmDescAddr()),
                         "TAF:FSM:MMA:IMS SWITCH",
                         (VOS_UINT32)TAF_MMA_GetImsSwitchStaTblSize(),
                         TAF_MMA_GetImsSwitchProcessStaTbl(),
                         VOS_NULL_PTR,
                         VOS_NULL_PTR);
#endif

    /* 注册SYS CFG SUB状态机 */
    TAF_FSM_RegisterFsm((TAF_MMA_GetSysCfgFsmDescAddr()),
                         "TAF:FSM:MMA:SYS CFG",
                         (VOS_UINT32)TAF_MMA_GetSysCfgStaTblSize(),
                         TAF_MMA_GetSysCfgProcessStaTbl(),
                         VOS_NULL_PTR,
                         TAF_MMA_InitFsmCtx_SysCfg);


}
Exemple #3
0
VOS_VOID  TAF_MMA_LoadSubFsm(
    TAF_MMA_FSM_ID_ENUM_UINT32          enFsmId,
    TAF_MMA_FSM_CTX_STRU               *pstCurFsm
)
{
    switch ( enFsmId )
    {
        case TAF_MMA_FSM_PHONE_MODE :
            pstCurFsm->ulState                  = TAF_MMA_PHONE_MODE_STA_INIT;
            pstCurFsm->pstFsmDesc               = TAF_MMA_GetPhoneModeFsmDescAddr();
            break;

        default:
            TAF_ERROR_LOG(WUEPS_PID_MMA, "TAF_MMA_LoadSubFsm:Invalid Fsm Id");
            return;
    }


    /*执行初始化sub状态机的函数*/
    pstCurFsm->pstFsmDesc->pfInitHandle();
}