QState Bomb4_initial(Bomb4 *me, QEvent const *e) { (void)e; me->timeout = INIT_TIMEOUT; return Q_TRAN(&Bomb4_setting); } /*...*/ QState Bomb4_setting(Bomb4 *me, QEvent const *e) { switch (e->sig){ case UP_SIG:{ if (me->timeout < 60) { ++me->timeout; BSP_d...
staticQStateBlinky_initial(Blinky*constme,voidconst*constpar) { (void)par; /*0.5s的定时*/ QTimeEvt_armX(&me->timeEvt, BSP_TICKS_PER_SEC/2, BSP_TICKS_PER_SEC/2); returnQ_TRAN(&Blinky_off); } 1. 2. 3. 4. 5. 6. 7. 8. staticQStateBlinky_off(Blinky*constme,QEvtconst*const...
return Q_TRAN(&Blinky_off); } static QState Blinky_off(Blinky * const me, QEvt const * const e) { QState status_; switch (e->sig) { /*状态是off} */ case Q_ENTRY_SIG: { BSP_ledOff(); status_ = Q_HANDLED();//告知框架已经处理事件,没有别的什么动作 break; } /*超时信号 *...
#defineQ_RET_IGNORED((QState)1) #defineQ_RET_TRAN((QState)2) #defineQ_HANDLED()(Q_RET_HANDLED) #defineQ_IGNORED()(Q_RET_IGNORED) #defineQ_TRAN(target_)(((QFsm*)me)->state=(QStateHandler)(target_),Q_RET_TRAN) enumQReservedSignals { Q_ENTRY_SIG=1, Q_EXIT_SIG, Q_INIT_SIG,...
Q_onAssert是QP的断言的实现。断言,是程序一种检查机制,当程序的执行发生异常时,用于检查不可能发生...
Q_STATE_DEF : qp.hpp Q_SUPER : qpcpp.hpp Q_TRAN : qpcpp.hpp Q_TRAN_HIST : qpcpp.hpp Q_UINT2PTR_CAST : qp.hpp Q_UNHANDLED : qp.hpp Q_UNSAFE : qp_config.hpp Q_UNUSED_PAR : qp.hpp Q_XTOR : qp_config.hpp QACTIVE_CAN_STOP : qp_config.hpp QACTIVE_EQUEUE_SIGNAL_ : qk...
return Q_HANDLED(); } case ARM_SIG: {/*ARM_SIG事件处理---定时事件处理*/ return Q_TRAN(&Bomb4_timing); /* 转到定时状态*/ } } return Q_IGNORED(); /*忽略事件*/ } /*---6.4-状态函数(定时状态处理)---.*/ QState Bomb4_timing(Bomb4 *me, QEvent const *e) { switch...
#defineQ_TRAN(target_)(((QFsm *)me)->state = (QStateHandler)(target_), Q_RET_TRAN) 发给状态机的事件,总是发到当前状态变量所指向的状态函数来处理。 (4)事件处理器 事件处理器,也可以理解为一个状态机引擎,当处理有事件时,调用当前状态的状态函数处理这个事件,并处理调用状态函数的返回值,根据返回...
voidQFsm_dispatch(QFsm *me, QEventconst*e); #defineQ_RET_HANDLED ((QState)0) #defineQ_RET_IGNORED ((QState)1) #defineQ_RET_TRAN ((QState)2) #defineQ_HANDLED() (Q_RET_HANDLED) #defineQ_IGNORED() (Q_RET_IGNORED) #defineQ_TRAN(target_) (((QFsm *)me)->state = (QStateHandl...
voidQFsm_dispatch(QFsm*me,QEventconst*e); #defineQ_RET_HANDLED((QState)0) #defineQ_RET_IGNORED((QState)1) #defineQ_RET_TRAN((QState)2) #defineQ_HANDLED()(Q_RET_HANDLED) #defineQ_IGNORED()(Q_RET_IGNORED) #defineQ_TRAN(target_)(((QFsm*)me)->state=(QStateHandler)(target_),Q...