/* DMI_Control_Pkg::Sub_func::HourGlassAnimation */ void HourGlassAnimation_DMI_Control_Pkg_Sub_func( /* DMI_Control_Pkg::Sub_func::HourGlassAnimation::start */ kcg_bool start, /* DMI_Control_Pkg::Sub_func::HourGlassAnimation::stop */ kcg_bool stop, /* DMI_Control_Pkg::Sub_func::HourGlassAnimation::actualtime */ time_Type_MoRC_Pck actualtime, outC_HourGlassAnimation_DMI_Control_Pkg_Sub_func *outC) { kcg_int tmp; /* 1 */ countDownTimer_MoRC_Pck_Utils( start, stop, actualtime, kcg_true, 20, &outC->Context_1); /* 1 */ RisingEdge_digital(outC->Context_1.expired, &outC->_1_Context_1); if (outC->_1_Context_1.RE_Output) { tmp = 10; } else { tmp = 0; } /* 1 */ Counter_pwlinear_int(tmp, kcg_false, &outC->_2_Context_1); outC->Output1 = outC->_2_Context_1.Count % 40; }
/* MoRC_Pck::Utils::waitAndRepeatTimer */ void waitAndRepeatTimer_MoRC_Pck_Uti( /* MoRC_Pck::Utils::waitAndRepeatTimer::actualTime */ time_Type_MoRC_Pck actualTime, /* MoRC_Pck::Utils::waitAndRepeatTimer::re_start */ kcg_bool re_start, /* MoRC_Pck::Utils::waitAndRepeatTimer::stop */ kcg_bool stop, /* MoRC_Pck::Utils::waitAndRepeatTimer::repeatInterval */ time_Type_MoRC_Pck repeatInterval, /* MoRC_Pck::Utils::waitAndRepeatTimer::maxNoOfRepetitions */ kcg_int maxNoOfRepetitions, outC_waitAndRepeatTimer_MoRC_Pc *outC) { /* MoRC_Pck::Utils::waitAndRepeatTimer::_L9 */ static kcg_int _L9; /* MoRC_Pck::Utils::waitAndRepeatTimer::_L14 */ static kcg_bool _L14; /* 1 */ countDownTimer_MoRC_Pck_Utils( re_start, stop, actualTime, kcg_true, repeatInterval, &outC->Context_1); /* fby_1_init_1 */ if (outC->init) { outC->init = kcg_false; _L9 = 0; } else { _L9 = outC->_L22; } outC->elapsed = _L9 >= maxNoOfRepetitions; _L14 = !outC->elapsed; /* 2 */ if (re_start) { outC->_L22 = 0; } else /* 1 */ if (outC->Context_1.expired) { outC->_L22 = 1 + _L9; } else { outC->_L22 = _L9; } outC->triggerAction = (_L14 & outC->Context_1.expired) | (_L14 & outC->Context_1.started); }
/* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session */ void maintaining_a_Session_MoRC_Pck_Subfunc_Pkg( /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::communicationSessionEstablished */ kcg_bool communicationSessionEstablished, /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::safeRadioConnectionReestablished */ kcg_bool safeRadioConnectionReestablished, /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::lossOfTheSafeRadioConnection */ kcg_bool lossOfTheSafeRadioConnection, /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::disconnectionHasNotBeenOrdered */ kcg_bool disconnectionHasNotBeenOrdered, /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::trainFrontInsideInAnAnnouncedRadioHole */ kcg_bool trainFrontInsideInAnAnnouncedRadioHole, /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::actualTime */ time_Type_MoRC_Pck actualTime, outC_maintaining_a_Session_MoRC_Pck_Subfunc_Pkg *outC) { SSM_TR_Maintaining_SM tmp1; kcg_bool tmp; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM::CommunicationSessionEstablished::RadioConnection_SM */ SSM_ST_RadioConnection_SM_Maintaining_SM_CommunicationSessionEstablished RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM::CommunicationSessionEstablished::RadioConnection_SM */ SSM_ST_RadioConnection_SM_Maintaining_SM_CommunicationSessionEstablished RadioConnection_SM_state_sel_Maintaining_SM_CommunicationSessionEstablished; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM::CommunicationSessionEstablished */ kcg_bool CommunicationSessionEstablished_weakb_clock_Maintaining_SM; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM::CommunicationSessionEstablished::RadioConnection_SM::ConnecctionLostInAnnouncedRadioHole */ kcg_bool br_1_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_ConnecctionLostInAnnouncedRadioHole; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM::CommunicationSessionEstablished::RadioConnection_SM::SafeRadio_connected */ kcg_bool br_1_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_SafeRadio_connected; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM::CommunicationSessionEstablished::RadioConnection_SM::SafeRadio_connected */ kcg_bool br_2_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_SafeRadio_connected; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM::CommunicationSessionEstablished */ kcg_bool br_1_guard_Maintaining_SM_CommunicationSessionEstablished; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM */ SSM_ST_Maintaining_SM Maintaining_SM_state_sel; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM */ SSM_ST_Maintaining_SM Maintaining_SM_state_act; /* MoRC_Pck::Subfunc_Pkg::maintaining_a_Session::Maintaining_SM */ kcg_bool Maintaining_SM_reset_act; if (outC->init) { outC->init = kcg_false; Maintaining_SM_state_sel = SSM_st_CommunicationSessionNotEstablished_Maintaining_SM; } else { Maintaining_SM_state_sel = outC->Maintaining_SM_state_nxt; } switch (Maintaining_SM_state_sel) { case SSM_st_CommunicationSessionEstablished_Maintaining_SM : Maintaining_SM_state_act = SSM_st_CommunicationSessionEstablished_Maintaining_SM; Maintaining_SM_reset_act = kcg_false; break; case SSM_st_CommunicationSessionNotEstablished_Maintaining_SM : if (communicationSessionEstablished) { Maintaining_SM_state_act = SSM_st_CommunicationSessionEstablished_Maintaining_SM; } else { Maintaining_SM_state_act = SSM_st_CommunicationSessionNotEstablished_Maintaining_SM; } Maintaining_SM_reset_act = communicationSessionEstablished; break; } switch (Maintaining_SM_state_act) { case SSM_st_CommunicationSessionEstablished_Maintaining_SM : switch (Maintaining_SM_state_sel) { case SSM_st_CommunicationSessionNotEstablished_Maintaining_SM : if (communicationSessionEstablished) { tmp1 = SSM_TR_CommunicationSessionNotEstablished_1_Maintaining_SM; } else { tmp1 = SSM_TR_no_trans_Maintaining_SM; } break; case SSM_st_CommunicationSessionEstablished_Maintaining_SM : tmp1 = SSM_TR_no_trans_Maintaining_SM; break; } CommunicationSessionEstablished_weakb_clock_Maintaining_SM = tmp1 != SSM_TR_no_trans_Maintaining_SM; if (Maintaining_SM_reset_act) { outC->init1 = kcg_true; /* 1 */ countDownTimer_reset_MoRC_Pck_Utils(&outC->Context_1); } if (outC->init1) { RadioConnection_SM_state_sel_Maintaining_SM_CommunicationSessionEstablished = SSM_st_SafeRadio_connected_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; } else { RadioConnection_SM_state_sel_Maintaining_SM_CommunicationSessionEstablished = outC->RadioConnection_SM_state_nxt_Maintaining_SM_CommunicationSessionEstablished; } switch (RadioConnection_SM_state_sel_Maintaining_SM_CommunicationSessionEstablished) { case SSM_st_SafeRadio_connected_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : br_1_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_SafeRadio_connected = trainFrontInsideInAnAnnouncedRadioHole & lossOfTheSafeRadioConnection; br_2_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_SafeRadio_connected = lossOfTheSafeRadioConnection & disconnectionHasNotBeenOrdered; if (br_1_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_SafeRadio_connected) { outC->firstRequestToSetupASafeRadioConnection = kcg_false; } else if (br_2_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_SafeRadio_connected) { outC->firstRequestToSetupASafeRadioConnection = kcg_true; } else { outC->firstRequestToSetupASafeRadioConnection = kcg_false; } break; case SSM_st_ConnectionLost_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : outC->firstRequestToSetupASafeRadioConnection = kcg_false; break; case SSM_st_RadioConnectionLostTimerExpired_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : outC->firstRequestToSetupASafeRadioConnection = kcg_false; break; case SSM_st_ConnecctionLostInAnnouncedRadioHole_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : br_1_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_ConnecctionLostInAnnouncedRadioHole = !trainFrontInsideInAnAnnouncedRadioHole; if (br_1_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_ConnecctionLostInAnnouncedRadioHole) { outC->firstRequestToSetupASafeRadioConnection = kcg_true; } else { outC->firstRequestToSetupASafeRadioConnection = kcg_false; } break; } /* 1 */ countDownTimer_MoRC_Pck_Utils( outC->firstRequestToSetupASafeRadioConnection, kcg_false, actualTime, kcg_false, cRadioConnectionReestablishingTimeout_MoRC_Pck, &outC->Context_1); switch (RadioConnection_SM_state_sel_Maintaining_SM_CommunicationSessionEstablished) { case SSM_st_ConnecctionLostInAnnouncedRadioHole_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : if (br_1_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_ConnecctionLostInAnnouncedRadioHole) { RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_ConnectionLost_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; } else { RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_ConnecctionLostInAnnouncedRadioHole_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; } tmp = kcg_false; break; case SSM_st_RadioConnectionLostTimerExpired_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_RadioConnectionLostTimerExpired_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; tmp = kcg_false; break; case SSM_st_ConnectionLost_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : if (safeRadioConnectionReestablished) { RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_SafeRadio_connected_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; } else if (outC->Context_1.expired) { RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_RadioConnectionLostTimerExpired_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; } else { RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_ConnectionLost_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; } tmp = kcg_false; break; case SSM_st_SafeRadio_connected_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : if (br_1_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_SafeRadio_connected) { RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_ConnecctionLostInAnnouncedRadioHole_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; tmp = kcg_true; } else { if (br_2_guard_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM_SafeRadio_connected) { RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_ConnectionLost_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; } else { RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished = SSM_st_SafeRadio_connected_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; } tmp = kcg_false; } break; } switch (RadioConnection_SM_state_act_Maintaining_SM_CommunicationSessionEstablished) { case SSM_st_ConnecctionLostInAnnouncedRadioHole_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : outC->RadioConnection_SM_state_nxt_Maintaining_SM_CommunicationSessionEstablished = SSM_st_ConnecctionLostInAnnouncedRadioHole_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; outC->tryToSetupANewSafeRadioConnection = kcg_false; break; case SSM_st_RadioConnectionLostTimerExpired_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : outC->RadioConnection_SM_state_nxt_Maintaining_SM_CommunicationSessionEstablished = SSM_st_RadioConnectionLostTimerExpired_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; outC->tryToSetupANewSafeRadioConnection = kcg_false; break; case SSM_st_ConnectionLost_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : outC->RadioConnection_SM_state_nxt_Maintaining_SM_CommunicationSessionEstablished = SSM_st_ConnectionLost_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; outC->tryToSetupANewSafeRadioConnection = kcg_true; break; case SSM_st_SafeRadio_connected_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM : outC->RadioConnection_SM_state_nxt_Maintaining_SM_CommunicationSessionEstablished = SSM_st_SafeRadio_connected_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; outC->tryToSetupANewSafeRadioConnection = kcg_false; break; } if (CommunicationSessionEstablished_weakb_clock_Maintaining_SM) { outC->informTheDriverThatNoConnectionWasSetup = kcg_false; outC->Maintaining_SM_state_nxt = SSM_st_CommunicationSessionEstablished_Maintaining_SM; } else { br_1_guard_Maintaining_SM_CommunicationSessionEstablished = outC->RadioConnection_SM_state_nxt_Maintaining_SM_CommunicationSessionEstablished == SSM_st_RadioConnectionLostTimerExpired_Maintaining_SM_CommunicationSessionEstablished_RadioConnection_SM; if (br_1_guard_Maintaining_SM_CommunicationSessionEstablished) { outC->informTheDriverThatNoConnectionWasSetup = kcg_true; outC->Maintaining_SM_state_nxt = SSM_st_CommunicationSessionNotEstablished_Maintaining_SM; } else { outC->informTheDriverThatNoConnectionWasSetup = kcg_false; outC->Maintaining_SM_state_nxt = SSM_st_CommunicationSessionEstablished_Maintaining_SM; } } outC->init1 = kcg_false; break; case SSM_st_CommunicationSessionNotEstablished_Maintaining_SM : outC->informTheDriverThatNoConnectionWasSetup = kcg_false; tmp = kcg_false; outC->firstRequestToSetupASafeRadioConnection = kcg_false; outC->tryToSetupANewSafeRadioConnection = kcg_false; outC->Maintaining_SM_state_nxt = SSM_st_CommunicationSessionNotEstablished_Maintaining_SM; break; } outC->finalAttemptToSetupTheSafeRadioConnectionFailed = outC->informTheDriverThatNoConnectionWasSetup; outC->requestsToSetupTheSafeRadioConnectionStopped = outC->finalAttemptToSetupTheSafeRadioConnectionFailed | tmp; }
/* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2 */ void requestRadioConnectionSetupFromOBU_v2_MoRC_Pck_Subfunc_Pkg( /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::mode */ M_MODE mode, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::eventsPhases */ obuEventsAndPhases_T_RCM_Session_Types_Pkg *eventsPhases, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::p42_sessionManagement */ p42_sessionManagement_T_RCM_MsgTypes_Pkg *p42_sessionManagement, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::sessionStatus */ sessionStatus_T_RCM_Session_Types_Pkg *sessionStatus, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::registrationStatus */ mobileRegistrationContext_T_RCM_Types_Pkg *registrationStatus, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::connectionStatus */ mobileConnectionContext_T_RCM_Types_Pkg *connectionStatus, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::connect */ kcg_bool connect, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::disconnect */ kcg_bool disconnect, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::currentTime */ T_internal_Type_Obu_BasicTypes_Pkg currentTime, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::reset */ kcg_bool reset, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::maxTimeToMaintainCommSession */ T_internal_Type_Obu_BasicTypes_Pkg maxTimeToMaintainCommSession, /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::noOfRetriesToEstablishASafeRadioConnection */ kcg_int noOfRetriesToEstablishASafeRadioConnection, outC_requestRadioConnectionSetupFromOBU_v2_MoRC_Pck_Subfunc_Pkg *outC) { /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::IfBlock1::else */ static kcg_bool else_clock_IfBlock1; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeat_SM::rep_inactive */ static kcg_bool br_1_guard_repeat_SM_rep_inactive; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeat_SM::rep_inactive */ static kcg_bool br_2_clock_repeat_SM_rep_inactive; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeat_SM::rep_repeatUntilSuccessfulOrADefinedNumberOfTimes */ static kcg_bool br_1_guard_repeat_SM_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeat_SM::rep_repeatUntilSuccessfulOrADefinedNumberOfTimes */ static kcg_bool br_2_clock_repeat_SM_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeat_SM::rep_repeatUntilStopConditionMet */ static kcg_bool br_1_guard_repeat_SM_rep_repeatUntilStopConditionMet; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeat_SM::rep_repeatUntilStopConditionMet */ static kcg_bool br_2_clock_repeat_SM_rep_repeatUntilStopConditionMet; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeat_SM */ static SSM_ST_repeat_SM repeat_SM_state_sel; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeat_SM */ static SSM_ST_repeat_SM repeat_SM_state_act; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::repeatUntilStopConditionMet */ static kcg_bool repeatUntilStopConditionMet; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::successfullyConnected */ static kcg_bool successfullyConnected; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::_L336 */ static kcg_bool _L336; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::_L334 */ static kcg_bool _L334; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::_L321 */ static kcg_bool _L321; /* MoRC_Pck::Subfunc_Pkg::requestRadioConnectionSetupFromOBU_v2::_L318 */ static kcg_bool _L318; else_clock_IfBlock1 = (*registrationStatus).valid & ((*registrationStatus).status == mrs_registered_RCM_Types_Pkg); repeatUntilStopConditionMet = connect & !(*eventsPhases).isPartOfAnOngoingStartOfMissionProcedure & else_clock_IfBlock1; successfullyConnected = (*connectionStatus).valid & ((*connectionStatus).status == mcs_connected_RCM_Types_Pkg); _L318 = ((*p42_sessionManagement).msgSrc == msrc_Euroradio_Common_Types_Pkg) | ((*p42_sessionManagement).msgSrc == msrc_Eurobalise_Common_Types_Pkg) | ((*p42_sessionManagement).msgSrc == msrc_RadioInfillUnit_Common_Types_Pkg) | ((*p42_sessionManagement).msgSrc == msrc_OBU_Common_Types_Pkg); _L321 = (*p42_sessionManagement).q_rbc == Q_RBC_Establish_communication_session; _L334 = /* 2 */ validate_q_sleepsession_v2_MoRC_Pck_Subfunc_Pkg( p42_sessionManagement, mode); _L336 = !(((*p42_sessionManagement).nid_c == (*sessionStatus).nid_c) & ((*sessionStatus).nid_rbc == (*p42_sessionManagement).nid_RBC)) & (*sessionStatus).valid & ((*sessionStatus).phase != sp_terminated_RCM_Session_Types_Pkg); /* init_repeat_SM */ if (outC->init) { repeat_SM_state_sel = SSM_st_rep_inactive_repeat_SM; } else { repeat_SM_state_sel = outC->repeat_SM_state_nxt; } /* 2 */ RisingEdge_digital( (kcg_bool) ((*connectionStatus).valid & (*connectionStatus).connectionLost), &outC->Context_2); /* 1 */ countDownTimer_MoRC_Pck_Utils( outC->Context_2.RE_Output, (kcg_bool) ((*connectionStatus).valid & !(*connectionStatus).connectionLost), currentTime, kcg_false, maxTimeToMaintainCommSession, &outC->Context_1); /* 1 */ RisingEdge_digital( (kcg_bool) ((*connectionStatus).settingUpConnectionHasFailed & (*connectionStatus).valid), &outC->_1_Context_1); /* sel_repeat_SM */ switch (repeat_SM_state_sel) { case SSM_st_rep_repeatUntilStopConditionMet_repeat_SM : br_1_guard_repeat_SM_rep_repeatUntilStopConditionMet = successfullyConnected | (*eventsPhases).endOfMissionIsExecuted | (*eventsPhases).trainFrontPassesALevelTransitionBorder | (*eventsPhases).trainFrontPassesA_RBC_RBC_border | (*eventsPhases).trainFrontPassesStartOfAnnouncedRadioHole | ((*p42_sessionManagement).valid & ((*p42_sessionManagement).q_rbc == Q_RBC_Terminate_communication_session) & _L334 & _L318) | ((*p42_sessionManagement).valid & _L321 & _L334 & _L318 & _L336) | outC->Context_1.expired | reset; /* guard_rep_repeatUntilStopConditionMet */ if (br_1_guard_repeat_SM_rep_repeatUntilStopConditionMet) { repeat_SM_state_act = SSM_st_rep_inactive_repeat_SM; } else { repeat_SM_state_act = SSM_st_rep_repeatUntilStopConditionMet_repeat_SM; br_2_clock_repeat_SM_rep_repeatUntilStopConditionMet = outC->_1_Context_1.RE_Output; } break; case SSM_st_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes_repeat_SM : br_1_guard_repeat_SM_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes = successfullyConnected | reset; /* guard_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes */ if (br_1_guard_repeat_SM_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes) { repeat_SM_state_act = SSM_st_rep_inactive_repeat_SM; } else { repeat_SM_state_act = SSM_st_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes_repeat_SM; br_2_clock_repeat_SM_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes = outC->_1_Context_1.RE_Output; } break; case SSM_st_rep_inactive_repeat_SM : br_1_guard_repeat_SM_rep_inactive = connect & (*eventsPhases).isPartOfAnOngoingStartOfMissionProcedure & else_clock_IfBlock1; /* guard_rep_inactive */ if (br_1_guard_repeat_SM_rep_inactive) { repeat_SM_state_act = SSM_st_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes_repeat_SM; } else { if (repeatUntilStopConditionMet) { repeat_SM_state_act = SSM_st_rep_repeatUntilStopConditionMet_repeat_SM; } else { repeat_SM_state_act = SSM_st_rep_inactive_repeat_SM; } br_2_clock_repeat_SM_rep_inactive = repeatUntilStopConditionMet; } break; } /* act_repeat_SM */ switch (repeat_SM_state_act) { case SSM_st_rep_inactive_repeat_SM : outC->repeat_SM_state_nxt = SSM_st_rep_inactive_repeat_SM; break; case SSM_st_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes_repeat_SM : outC->repeat_SM_state_nxt = SSM_st_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes_repeat_SM; break; case SSM_st_rep_repeatUntilStopConditionMet_repeat_SM : outC->repeat_SM_state_nxt = SSM_st_rep_repeatUntilStopConditionMet_repeat_SM; break; } /* 1 */ if (reset) { kcg_copy_p42_sessionManagement_T_RCM_MsgTypes_Pkg( &outC->p42_sessionManagement_mem, (p42_sessionManagement_T_RCM_MsgTypes_Pkg *) &cNo_p42_SessionManagement_RCM_MsgTypes_Pkg); } else /* 4 */ if ((*p42_sessionManagement).valid) { kcg_copy_p42_sessionManagement_T_RCM_MsgTypes_Pkg( &outC->p42_sessionManagement_mem, p42_sessionManagement); } else /* 1_fby_1_init_7 */ if (outC->init) { kcg_copy_p42_sessionManagement_T_RCM_MsgTypes_Pkg( &outC->p42_sessionManagement_mem, (p42_sessionManagement_T_RCM_MsgTypes_Pkg *) &cNo_p42_SessionManagement_RCM_MsgTypes_Pkg); } outC->init = kcg_false; /* ck_disconnect */ if (disconnect) { outC->connectionCmd.valid = kcg_true; outC->connectionCmd.mobileDeviceNo = (*connectionStatus).mobileDeviceNo; outC->connectionCmd.action = mca_disconnect_RCM_Types_Pkg; outC->connectionCmd.nid_radio = (*connectionStatus).nid_radio; } else { /* sel_repeat_SM */ switch (repeat_SM_state_sel) { case SSM_st_rep_inactive_repeat_SM : /* guard_rep_inactive */ if (br_1_guard_repeat_SM_rep_inactive) { else_clock_IfBlock1 = kcg_true; } else /* cb_anon_sm */ if (br_2_clock_repeat_SM_rep_inactive) { else_clock_IfBlock1 = kcg_true; } else { else_clock_IfBlock1 = kcg_false; } break; case SSM_st_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes_repeat_SM : /* guard_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes */ if (br_1_guard_repeat_SM_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes) { else_clock_IfBlock1 = kcg_false; } else /* cb_anon_sm */ if (br_2_clock_repeat_SM_rep_repeatUntilSuccessfulOrADefinedNumberOfTimes) { else_clock_IfBlock1 = kcg_true; } else { else_clock_IfBlock1 = kcg_false; } break; case SSM_st_rep_repeatUntilStopConditionMet_repeat_SM : /* guard_rep_repeatUntilStopConditionMet */ if (br_1_guard_repeat_SM_rep_repeatUntilStopConditionMet) { else_clock_IfBlock1 = kcg_false; } else /* cb_anon_sm */ if (br_2_clock_repeat_SM_rep_repeatUntilStopConditionMet) { else_clock_IfBlock1 = kcg_true; } else { else_clock_IfBlock1 = kcg_false; } break; } /* ck_anon_activ */ if (else_clock_IfBlock1) { outC->connectionCmd.valid = kcg_true; outC->connectionCmd.mobileDeviceNo = (*connectionStatus).mobileDeviceNo; outC->connectionCmd.action = mca_connect_RCM_Types_Pkg; /* 5 */ if ((*p42_sessionManagement).valid & _L321 & _L334 & _L318 & (((((*sessionStatus).phase == sp_terminated_RCM_Session_Types_Pkg) | ((*sessionStatus).phase == sp_establishing_RCM_Session_Types_Pkg)) & (*sessionStatus).valid) | _L336)) { outC->connectionCmd.nid_radio = outC->p42_sessionManagement_mem.nid_radio; } else { outC->connectionCmd.nid_radio = (*connectionStatus).nid_radio; } } else /* ck_anon_activ */ if ((*eventsPhases).trainFrontPassesStartOfAnnouncedRadioHole) { outC->connectionCmd.valid = kcg_true; outC->connectionCmd.mobileDeviceNo = (*connectionStatus).mobileDeviceNo; outC->connectionCmd.action = mca_expectRadioHole_RCM_Types_Pkg; outC->connectionCmd.nid_radio = (*connectionStatus).nid_radio; } else /* ck_anon_activ */ if ((*eventsPhases).trainFrontReachesEndOfAnnouncedRadioHole) { outC->connectionCmd.valid = kcg_true; outC->connectionCmd.mobileDeviceNo = (*connectionStatus).mobileDeviceNo; outC->connectionCmd.action = mca_unexpectRadioHole_RCM_Types_Pkg; outC->connectionCmd.nid_radio = (*connectionStatus).nid_radio; } else { outC->connectionCmd.valid = kcg_false; outC->connectionCmd.mobileDeviceNo = (*connectionStatus).mobileDeviceNo; outC->connectionCmd.action = mca_nop_RCM_Types_Pkg; outC->connectionCmd.nid_radio = (*connectionStatus).nid_radio; } } }