diff --git a/main.c b/main.c index 9c566fd..6504b26 100644 --- a/main.c +++ b/main.c @@ -9,7 +9,7 @@ Please send email to lijunshi2015@163.com if you have any question. //#include //windows #include //linux -//比如我们定义了小明一天的状态如下 +//姣斿鎴戜滑瀹氫箟浜嗗皬鏄庝竴澶╃殑鐘舵佸涓 enum { GET_UP, @@ -19,7 +19,7 @@ enum SLEEP, }; -//我们定义的事件有以下几个 +//鎴戜滑瀹氫箟鐨勪簨浠舵湁浠ヤ笅鍑犱釜 enum { EVENT1 = 1, @@ -30,22 +30,22 @@ enum typedef struct FsmTable_s { - int event; //事件 - int CurState; //当前状态 - void (*eventActFun)(); //函数指针 - int NextState; //下一个状态 + int event; //浜嬩欢 + int CurState; //褰撳墠鐘舵 + void (*eventActFun)(); //鍑芥暟鎸囬拡 + int NextState; //涓嬩竴涓姸鎬 }FsmTable_t; typedef struct FSM_s { - FsmTable_t* FsmTable; //指向的状态表 - int curState; //FSM当前所处的状态 + FsmTable_t* FsmTable; //鎸囧悜鐨勭姸鎬佽〃 + int curState; //FSM褰撳墠鎵澶勭殑鐘舵 }FSM_t; -int g_max_num; //状态表里含有的状态个数 +int g_max_num; //鐘舵佽〃閲屽惈鏈夌殑鐘舵佷釜鏁 @@ -80,32 +80,32 @@ void Go2Bed() printf("xiao ming goes to bed!\n"); } -/*状态机注册*/ +/*鐘舵佹満娉ㄥ唽*/ void FSM_Regist(FSM_t* pFsm, FsmTable_t* pTable) { pFsm->FsmTable = pTable; } -/*状态迁移*/ +/*鐘舵佽縼绉*/ void FSM_StateTransfer(FSM_t* pFsm, int state) { pFsm->curState = state; } -/*事件处理*/ +/*浜嬩欢澶勭悊*/ void FSM_EventHandle(FSM_t* pFsm, int event) { FsmTable_t* pActTable = pFsm->FsmTable; - void (*eventActFun)() = NULL; //函数指针初始化为空 + void (*eventActFun)() = NULL; //鍑芥暟鎸囬拡鍒濆鍖栦负绌 int NextState; int CurState = pFsm->curState; - int flag = 0; //标识是否满足条件 + int flag = 0; //鏍囪瘑鏄惁婊¤冻鏉′欢 - /*获取当前动作函数*/ + /*鑾峰彇褰撳墠鍔ㄤ綔鍑芥暟*/ for (int i = 0; i