/*${components::aoWeight::SM::aboveTreshold} ...............................*/ static QState aoWeight_aboveTreshold(aoWeight * const me) { QState status_; switch (Q_SIG(me)) { /* ${components::aoWeight::SM::aboveTreshold} */ case Q_ENTRY_SIG: { BSP_println("Weight above threshold."); status_ = Q_HANDLED(); break; } /* ${components::aoWeight::SM::aboveTreshold::REFRESH} */ case REFRESH_SIG: { /* ${components::aoWeight::SM::aboveTreshold::REFRESH::[Weight>TargetDose]} */ if (Weight > TargetDose) { QActive_postISR((QActive *)&AO_Grinder, DOSE_REACHED_SIG, 0); status_ = Q_TRAN(&aoWeight_aboveDose); } /* ${components::aoWeight::SM::aboveTreshold::REFRESH::[<threshold]} */ else if (Weight < (TargetDose + SCALE_TARGET_THRESHOLD)) { status_ = Q_TRAN(&aoWeight_positive); } else { status_ = Q_UNHANDLED(); } break; } default: { status_ = Q_SUPER(&QHsm_top); break; } } return status_; }
/* @(/1/6/0/1/2) ...........................................................*/ static QState QTTS_idle(QTTS * const me, QEvt const * const e) { QState status_; switch (e->sig) { /* @(/1/6/0/1/2/0) */ case TTS_READMSG_SIG: { status_ = Q_TRAN(&QTTS_busy); break; } /* @(/1/6/0/1/2/1) */ case ACC_OFF_SIG: { /* @(/1/6/0/1/2/1/0) */ if (1) { status_ = Q_TRAN(&QTTS_sleep); } /* @(/1/6/0/1/2/1/1) */ else if (0) { status_ = Q_HANDLED(); } else { status_ = Q_UNHANDLED(); } break; } default: { status_ = Q_SUPER(&QTTS_normal); break; } } return status_; }
/*${components::aoWeight::SM::aboveDose} ...................................*/ static QState aoWeight_aboveDose(aoWeight * const me) { QState status_; switch (Q_SIG(me)) { /* ${components::aoWeight::SM::aboveDose} */ case Q_ENTRY_SIG: { BSP_println("Weight above dose."); status_ = Q_HANDLED(); break; } /* ${components::aoWeight::SM::aboveDose::REFRESH} */ case REFRESH_SIG: { /* ${components::aoWeight::SM::aboveDose::REFRESH::[Weight<TargetDose]} */ if (Weight < TargetDose) { status_ = Q_TRAN(&aoWeight_aboveTreshold); } else { status_ = Q_UNHANDLED(); } break; } default: { status_ = Q_SUPER(&QHsm_top); break; } } return status_; }
/*${components::aoWeight::SM::aroundZero} ..................................*/ static QState aoWeight_aroundZero(aoWeight * const me) { QState status_; switch (Q_SIG(me)) { /* ${components::aoWeight::SM::aroundZero} */ case Q_ENTRY_SIG: { BSP_println("Weight around zero."); status_ = Q_HANDLED(); break; } /* ${components::aoWeight::SM::aroundZero::REFRESH} */ case REFRESH_SIG: { /* ${components::aoWeight::SM::aroundZero::REFRESH::[<zero]} */ if (Weight < SCALE_NEGATIVE_THRESHOLD) { status_ = Q_TRAN(&aoWeight_negative); } /* ${components::aoWeight::SM::aroundZero::REFRESH::[>zero]} */ else if (Weight > SCALE_ZERO_THRESHOLD) { status_ = Q_TRAN(&aoWeight_positive); } else { status_ = Q_UNHANDLED(); } break; } default: { status_ = Q_SUPER(&QHsm_top); break; } } return status_; }
/*${components::aoWeight::SM::positive} ....................................*/ static QState aoWeight_positive(aoWeight * const me) { QState status_; switch (Q_SIG(me)) { /* ${components::aoWeight::SM::positive} */ case Q_ENTRY_SIG: { BSP_println("Weight positive."); status_ = Q_HANDLED(); break; } /* ${components::aoWeight::SM::positive::REFRESH} */ case REFRESH_SIG: { /* ${components::aoWeight::SM::positive::REFRESH::[>threshold]} */ if (Weight > (TargetDose + SCALE_TARGET_THRESHOLD)) { QActive_postISR((QActive *)&AO_Grinder, THRESHOLD_REACHED_SIG, 0); status_ = Q_TRAN(&aoWeight_aboveTreshold); } /* ${components::aoWeight::SM::positive::REFRESH::[<zero]} */ else if (Weight < SCALE_ZERO_THRESHOLD) { status_ = Q_TRAN(&aoWeight_aroundZero); } else { status_ = Q_UNHANDLED(); } break; } default: { status_ = Q_SUPER(&QHsm_top); break; } } return status_; }
/*${components::aoWeight::SM::negative} ....................................*/ static QState aoWeight_negative(aoWeight * const me) { QState status_; switch (Q_SIG(me)) { /* ${components::aoWeight::SM::negative} */ case Q_ENTRY_SIG: { BSP_println("Weight negative."); QActive_postISR((QActive *)&AO_Grinder, NEGATIVE_REACHED_SIG, 0); status_ = Q_HANDLED(); break; } /* ${components::aoWeight::SM::negative::REFRESH} */ case REFRESH_SIG: { /* ${components::aoWeight::SM::negative::REFRESH::[>negative]} */ if (Weight > SCALE_NEGATIVE_THRESHOLD) { status_ = Q_TRAN(&aoWeight_aroundZero); } else { status_ = Q_UNHANDLED(); } break; } default: { status_ = Q_SUPER(&QHsm_top); break; } } return status_; }
// @(/3/0/2/2) ............................................................... QP::QState Philo::hungry(Philo * const me, QP::QEvt const * const e) { QP::QState status_; switch (e->sig) { // @(/3/0/2/2) case Q_ENTRY_SIG: { AO_Table->POST(Q_NEW(TableEvt, HUNGRY_SIG, PHILO_ID(me)), me); status_ = Q_HANDLED(); break; } // @(/3/0/2/2/0) case EAT_SIG: { // @(/3/0/2/2/0/0) if (Q_EVT_CAST(TableEvt)->philoNum == PHILO_ID(me)) { status_ = Q_TRAN(&Philo::eating); } else { status_ = Q_UNHANDLED(); } break; } // @(/3/0/2/2/1) case DONE_SIG: { /* DONE must be for other Philos than this one */ Q_ASSERT(Q_EVT_CAST(TableEvt)->philoNum != PHILO_ID(me)); status_ = Q_HANDLED(); break; } default: { status_ = Q_SUPER(&QHsm::top); break; } } return status_; }
/*..........................................................................*/ static QState ModIo2Mgr_initial(ModIo2Mgr *me, QEvent const *e) { (void)e; /* suppress the compiler warning about unused parameter */ QActive_subscribe((QActive *)me, ENABLE_RELAY_SIG); QActive_subscribe((QActive *)me, DISABLE_RELAY_SIG); QActive_subscribe((QActive *)me, TERMINATE_SIG); QS_OBJ_DICTIONARY(&l_modIo2Mgr); QS_FUN_DICTIONARY(&QHsm_top); QS_FUN_DICTIONARY(&ModIo2Mgr_initial); QS_FUN_DICTIONARY(&ModIo2Mgr_running); QS_SIG_DICTIONARY(ENABLE_RELAY_SIG, 0); QS_SIG_DICTIONARY(DISABLE_RELAY_SIG, 0); QS_SIG_DICTIONARY(TERMINATE_SIG, 0); if (ModIO2_init() == Error) { LCDPutStr("Err MODIO2 init", 110, 5, LARGE, RED, WHITE); return Q_UNHANDLED(); } else { return Q_TRAN(&ModIo2Mgr_running); } }
/*..........................................................................*/ QState Calc_begin(Calc * const me, QEvt const * const e) { QState status; switch (e->sig) { case Q_ENTRY_SIG: { BSP_message("begin-ENTRY;"); status = Q_HANDLED(); break; } case Q_EXIT_SIG: { BSP_message("begin-EXIT;"); status = Q_HANDLED(); break; } case OPER_SIG: { if (((CalcEvt const *)e)->key_code == KEY_MINUS) { status = Q_TRAN(&Calc_negated1); } else { status = Q_UNHANDLED(); } break; } default: { status = Q_SUPER(&Calc_ready); break; } } return status; }
/* @(/1/0/1/1) .............................................................*/ static QState QHsmTst_s(QHsmTst * const me) { QState status_; switch (Q_SIG(me)) { /* @(/1/0/1/1) */ case Q_ENTRY_SIG: { BSP_display("s-ENTRY;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1) */ case Q_EXIT_SIG: { BSP_display("s-EXIT;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1/0) */ case Q_INIT_SIG: { BSP_display("s-INIT;"); status_ = Q_TRAN(&QHsmTst_s11); break; } /* @(/1/0/1/1/1) */ case I_SIG: { /* @(/1/0/1/1/1/0) */ if (me->foo) { me->foo = 0U; BSP_display("s-I;"); status_ = Q_HANDLED(); } else { status_ = Q_UNHANDLED(); } break; } /* @(/1/0/1/1/2) */ case E_SIG: { BSP_display("s-E;"); status_ = Q_TRAN(&QHsmTst_s11); break; } /* @(/1/0/1/1/3) */ case TERMINATE_SIG: { BSP_exit(); status_ = Q_HANDLED(); break; } default: { status_ = Q_SUPER(&QHsm_top); break; } } return status_; }
/* @(/1/0/1/1/5) ...........................................................*/ static QState QHsmTst_s2(QHsmTst * const me) { QState status_; switch (Q_SIG(me)) { /* @(/1/0/1/1/5) */ case Q_ENTRY_SIG: { BSP_display("s2-ENTRY;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1/5) */ case Q_EXIT_SIG: { BSP_display("s2-EXIT;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1/5/0) */ case Q_INIT_SIG: { BSP_display("s2-INIT;"); status_ = Q_TRAN(&QHsmTst_s211); break; } /* @(/1/0/1/1/5/1) */ case I_SIG: { /* @(/1/0/1/1/5/1/0) */ if (!me->foo) { me->foo = 1U; BSP_display("s2-I;"); status_ = Q_HANDLED(); } else { status_ = Q_UNHANDLED(); } break; } /* @(/1/0/1/1/5/2) */ case F_SIG: { BSP_display("s2-F;"); status_ = Q_TRAN(&QHsmTst_s11); break; } /* @(/1/0/1/1/5/3) */ case C_SIG: { BSP_display("s2-C;"); status_ = Q_TRAN(&QHsmTst_s1); break; } default: { status_ = Q_SUPER(&QHsmTst_s); break; } } return status_; }
/*${HSMs::QHsmTst::SM::s} ..................................................*/ static QState QHsmTst_s(QHsmTst * const me, QEvt const * const e) { QState status_; switch (e->sig) { /* ${HSMs::QHsmTst::SM::s} */ case Q_ENTRY_SIG: { BSP_display("s-ENTRY;"); status_ = Q_HANDLED(); break; } /* ${HSMs::QHsmTst::SM::s} */ case Q_EXIT_SIG: { BSP_display("s-EXIT;"); status_ = Q_HANDLED(); break; } /* ${HSMs::QHsmTst::SM::s::initial} */ case Q_INIT_SIG: { BSP_display("s-INIT;"); status_ = Q_TRAN(&QHsmTst_s11); break; } /* ${HSMs::QHsmTst::SM::s::I} */ case I_SIG: { /* ${HSMs::QHsmTst::SM::s::I::[me->foo]} */ if (me->foo) { me->foo = 0U; BSP_display("s-I;"); status_ = Q_HANDLED(); } else { status_ = Q_UNHANDLED(); } break; } /* ${HSMs::QHsmTst::SM::s::E} */ case E_SIG: { BSP_display("s-E;"); status_ = Q_TRAN(&QHsmTst_s11); break; } /* ${HSMs::QHsmTst::SM::s::TERMINATE} */ case TERMINATE_SIG: { BSP_exit(); status_ = Q_HANDLED(); break; } default: { status_ = Q_SUPER(&QHsm_top); break; } } return status_; }
/*${HSMs::QHsmTst::SM::s::s2} ..............................................*/ static QState QHsmTst_s2(QHsmTst * const me, QEvt const * const e) { QState status_; switch (e->sig) { /* ${HSMs::QHsmTst::SM::s::s2} */ case Q_ENTRY_SIG: { BSP_display("s2-ENTRY;"); status_ = Q_HANDLED(); break; } /* ${HSMs::QHsmTst::SM::s::s2} */ case Q_EXIT_SIG: { BSP_display("s2-EXIT;"); status_ = Q_HANDLED(); break; } /* ${HSMs::QHsmTst::SM::s::s2::initial} */ case Q_INIT_SIG: { BSP_display("s2-INIT;"); status_ = Q_TRAN(&QHsmTst_s211); break; } /* ${HSMs::QHsmTst::SM::s::s2::I} */ case I_SIG: { /* ${HSMs::QHsmTst::SM::s::s2::I::[!me->foo]} */ if (!me->foo) { me->foo = 1U; BSP_display("s2-I;"); status_ = Q_HANDLED(); } else { status_ = Q_UNHANDLED(); } break; } /* ${HSMs::QHsmTst::SM::s::s2::F} */ case F_SIG: { BSP_display("s2-F;"); status_ = Q_TRAN(&QHsmTst_s11); break; } /* ${HSMs::QHsmTst::SM::s::s2::C} */ case C_SIG: { BSP_display("s2-C;"); status_ = Q_TRAN(&QHsmTst_s1); break; } default: { status_ = Q_SUPER(&QHsmTst_s); break; } } return status_; }
/* @(/1/0/1/1/4/7) .........................................................*/ static QState QHsmTst_s11(QHsmTst * const me) { QState status_; switch (Q_SIG(me)) { /* @(/1/0/1/1/4/7) */ case Q_ENTRY_SIG: { BSP_display("s11-ENTRY;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1/4/7) */ case Q_EXIT_SIG: { BSP_display("s11-EXIT;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1/4/7/0) */ case H_SIG: { BSP_display("s11-H;"); status_ = Q_TRAN(&QHsmTst_s); break; } /* @(/1/0/1/1/4/7/1) */ case D_SIG: { /* @(/1/0/1/1/4/7/1/0) */ if (me->foo) { me->foo = 0U; BSP_display("s11-D;"); status_ = Q_TRAN(&QHsmTst_s1); } else { status_ = Q_UNHANDLED(); } break; } /* @(/1/0/1/1/4/7/2) */ case G_SIG: { BSP_display("s11-G;"); status_ = Q_TRAN(&QHsmTst_s211); break; } default: { status_ = Q_SUPER(&QHsmTst_s1); break; } } return status_; }
/*${HSMs::QHsmTst::SM::s::s1::s11} .........................................*/ static QState QHsmTst_s11(QHsmTst * const me, QEvt const * const e) { QState status_; switch (e->sig) { /* ${HSMs::QHsmTst::SM::s::s1::s11} */ case Q_ENTRY_SIG: { BSP_display("s11-ENTRY;"); status_ = Q_HANDLED(); break; } /* ${HSMs::QHsmTst::SM::s::s1::s11} */ case Q_EXIT_SIG: { BSP_display("s11-EXIT;"); status_ = Q_HANDLED(); break; } /* ${HSMs::QHsmTst::SM::s::s1::s11::H} */ case H_SIG: { BSP_display("s11-H;"); status_ = Q_TRAN(&QHsmTst_s); break; } /* ${HSMs::QHsmTst::SM::s::s1::s11::D} */ case D_SIG: { /* ${HSMs::QHsmTst::SM::s::s1::s11::D::[me->foo]} */ if (me->foo) { me->foo = 0U; BSP_display("s11-D;"); status_ = Q_TRAN(&QHsmTst_s1); } else { status_ = Q_UNHANDLED(); } break; } /* ${HSMs::QHsmTst::SM::s::s1::s11::G} */ case G_SIG: { BSP_display("s11-G;"); status_ = Q_TRAN(&QHsmTst_s211); break; } default: { status_ = Q_SUPER(&QHsmTst_s1); break; } } return status_; }
/* @(/1/0/1/1/4) ...........................................................*/ static QState QHsmTst_s1(QHsmTst * const me, QEvt const * const e) { QState status_; switch (e->sig) { /* @(/1/0/1/1/4) */ case Q_ENTRY_SIG: { BSP_display("s1-ENTRY;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1/4) */ case Q_EXIT_SIG: { BSP_display("s1-EXIT;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1/4/0) */ case Q_INIT_SIG: { BSP_display("s1-INIT;"); status_ = Q_TRAN(&QHsmTst_s11); break; } /* @(/1/0/1/1/4/1) */ case I_SIG: { BSP_display("s1-I;"); status_ = Q_HANDLED(); break; } /* @(/1/0/1/1/4/2) */ case D_SIG: { /* @(/1/0/1/1/4/2/0) */ if (!me->foo) { me->foo = 1U; BSP_display("s1-D;"); status_ = Q_TRAN(&QHsmTst_s); } else { status_ = Q_UNHANDLED(); } break; } /* @(/1/0/1/1/4/3) */ case A_SIG: { BSP_display("s1-A;"); status_ = Q_TRAN(&QHsmTst_s1); break; } /* @(/1/0/1/1/4/4) */ case B_SIG: { BSP_display("s1-B;"); status_ = Q_TRAN(&QHsmTst_s11); break; } /* @(/1/0/1/1/4/5) */ case F_SIG: { BSP_display("s1-F;"); status_ = Q_TRAN(&QHsmTst_s211); break; } /* @(/1/0/1/1/4/6) */ case C_SIG: { BSP_display("s1-C;"); status_ = Q_TRAN(&QHsmTst_s2); break; } default: { status_ = Q_SUPER(&QHsmTst_s); break; } } return status_; }