exp1.c

来自「有限状态机事件分发构件」· C语言 代码 · 共 101 行

C
101
字号
/*****************************************************************************Filename   : exp1.c 状态转换例程文件* Programmer : Haven**Date       : 2007.9.24**DESCRIPTION: 定义了几个状态转换函数***************************************************************************/#include "FsmSmall.h" #include "REG935.H"#define USER1_SIG  Q_USER_SIG/*--------------------------------------------------------------------------*/void EXP_ctor(void); void EXP_initial(QFsm *me);void EXP_Stat1(QFsm *me);void EXP_Stat2(QFsm *me);void EXP_Stat1EntryAct(void);void EXP_Stat1ExitAct(void);void EXP_Stat2EntryAct(void);void EXP_Stat2ExitAct(void);/*..........................................................................*/static QFsm Qexp;void main(void){        EXP_ctor();               //构造函数    Q_SIG((QFsm *)&Qexp) = Q_TOP_INIT_SIG;    EXP_initial(&Qexp);       //初始伪状态    while(1){        Q_SIG((QFsm *)&Qexp) = ((QSignal)USER1_SIG);        //给一个事件,用于测试                              //接收事件        QFsm_dispatch(&Qexp); //分发事件    }}void EXP_ctor() {}/*..........................................................................*/void EXP_initial(QFsm *me) {    switch (Q_SIG(me)) {        case Q_TOP_INIT_SIG: {            Q_TRAN(&EXP_Stat1);            break;        }    }}/*..........................................................................*/void EXP_Stat1(QFsm *me) {    switch (Q_SIG(me)) {        case Q_ENTRY_SIG: {            EXP_Stat2EntryAct();            break;        }        case USER1_SIG: {            Q_TRAN(&EXP_Stat2);            break;        }        case Q_EXIT_SIG:{            EXP_Stat1ExitAct();            break;        }    }}/*..........................................................................*//*..........................................................................*/void EXP_Stat2(QFsm *me) {    switch (Q_SIG(me)) {        case Q_ENTRY_SIG: {            EXP_Stat1EntryAct();            break;        }        case USER1_SIG: {            Q_TRAN(&EXP_Stat1);            break;        }        case Q_EXIT_SIG:{            EXP_Stat2ExitAct();            break;        }    }}void EXP_Stat1EntryAct(){}void EXP_Stat1ExitAct(){}void EXP_Stat2EntryAct(){}void EXP_Stat2ExitAct(){}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?