2012-08-14 18:07:04 -04:00
|
|
|
/* initial pseudostate of the QBomb FSM ....................................*/
|
2013-09-23 14:34:35 -04:00
|
|
|
QState QBomb_initial(QBomb * const me, QEvt const * const e) {
|
|
|
|
Q_REQUIRE(e != (QEvt *)0); /* initialization event expected */
|
2012-08-14 18:07:04 -04:00
|
|
|
QBomb_updateState(me, "top-INIT");
|
|
|
|
me->timeout = INIT_TIMEOUT;
|
2013-09-23 14:34:35 -04:00
|
|
|
me->defuse = Q_EVT_CAST(QBombInitEvt)->defuse;
|
2012-08-14 18:07:04 -04:00
|
|
|
|
|
|
|
return Q_TRAN(&QBomb_setting); /* initial transition */
|
|
|
|
}
|
|
|
|
|
|
|
|
/* state handler function for the QCalc HSM ................................*/
|
2013-09-23 14:34:35 -04:00
|
|
|
QState QCalc_on(QCalc * const me, QEvt const * const e) {
|
2012-08-14 18:07:04 -04:00
|
|
|
switch (e->sig) {
|
|
|
|
. . .
|
|
|
|
case Q_INIT_SIG: {
|
|
|
|
QCalc_updateState(me, "on-INIT");
|
|
|
|
return Q_TRAN(&QCalc_ready); /* initial transition */
|
|
|
|
}
|
|
|
|
. . .
|
|
|
|
}
|
|
|
|
return Q_SUPER(&QHsm_top);
|
|
|
|
}
|
|
|
|
|