/*状态1的动作表*/
ACT_TABLE_T state1ActTable[] = {
{EVENT1,state1Event1Fun},
{EVENT3,state1Event3Fun},
};
/*状态2的动作表*/
ACT_TABLE_T state2ActTable[] = {
{EVENT2,state2Event2Fun},
};
/*状态表*/
STATE_TABLE_T FsmTable[] = {
{STATE1,state1ActTable},
{STATE2,state2ActTable},
};
/*客户端提供的状态处理函数*/
void state1Event1Fun(void* pFsm)
{
FSM_MoveState((FSM_T*)pFsm,STATE2);
return;
}
void state1Event3Fun(void* pFsm)
{
FSM_MoveState((FSM_T*)pFsm,STATE3);
return;
}
void state2Event2Fun(void* pFsm)
{
FSM_MoveState((FSM_T*)pFsm,STATE3);
return;
}
FSM_Regist(&fsm,FsmTable);
...