/* SDM_Commands_Pkg::LowerOrHold */ void LowerOrHold_SDM_Commands_Pkg( /* SDM_Commands_Pkg::LowerOrHold::vi */V_odometry_Type_Obu_BasicTypes_Pkg vi, /* SDM_Commands_Pkg::LowerOrHold::mrdt */Target_T_TargetManagement_types *mrdt, outC_LowerOrHold_SDM_Commands_Pkg *outC) { /* SDM_Commands_Pkg::LowerOrHold::_L15 */ static Target_T_TargetManagement_types _L15; /* SDM_Commands_Pkg::LowerOrHold::_L30 */ static V_odometry_Type_Obu_BasicTypes_Pkg _L30; if (outC->init) { outC->init = kcg_false; _L15.targetType = EoA_TargetManagement_types; _L15.distance = 0; _L15.speed = 0; _L15.valid = kcg_false; _L30 = - 1; } else { _L30 = outC->vo; kcg_copy_Target_T_TargetManagement_types(&_L15, &outC->rem_mrdt); } if (((*mrdt).targetType == _L15.targetType) & ((*mrdt).distance == _L15.distance) & ((*mrdt).speed == _L15.speed) & ((*mrdt).valid == _L15.valid) & (_L30 > 0) & (_L30 < vi)) { outC->vo = _L30; } else { outC->vo = vi; } kcg_copy_Target_T_TargetManagement_types(&outC->rem_mrdt, mrdt); }
/* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration */ void SpeedSupervision_Integration_SpeedSupervision_Integration_Pkg( /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::MRSP */ MRSP_Profile_t *MRSP, /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::MA */ MAs_t *MA, /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::NationalValues */ P3_NationalValues_T_Packet_Types_Pkg *NationalValues, /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::TrainPosition */ trainPosition_T_TrainPosition_Types_Pck *TrainPosition, /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::odometry */ odometry_T_Obu_BasicTypes_Pkg *odometry, /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::m_level */ M_LEVEL m_level, /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::trainProps */ trainProperties_T_TrainPosition_Types_Pck *trainProps, /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::MA_updated */ kcg_bool MA_updated, /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::MRSP_updated */ kcg_bool MRSP_updated, outC_SpeedSupervision_Integration_SpeedSupervision_Integration_Pkg *outC) { Speeds_T_SDM_Types_Pkg tmp; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::odometry_internal */ Odometry_real_T_SDM_Types_Pkg odometry_internal; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::V_ura_internal */ V_internal_real_Type_SDM_Types_Pkg V_ura_internal; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::targetCollection */ TargetCollection_T_TargetManagement_types targetCollection; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::Trainlocations_internal */ TrainLocations_real_T_SDM_Types_Pkg Trainlocations_internal; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::MRSP_internal */ MRSP_internal_T_TargetManagement_types MRSP_internal; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::v_mrsp_internal */ V_internal_real_Type_SDM_Types_Pkg v_mrsp_internal; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::v_target_internal */ V_internal_real_Type_SDM_Types_Pkg v_target_internal; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::mrt_internal */ Target_real_T_TargetManagement_types mrt_internal; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::v_p_sbd */ V_internal_real_Type_SDM_Types_Pkg v_p_sbd; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::v_p_ebd */ V_internal_real_Type_SDM_Types_Pkg v_p_ebd; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::v_p_ebd_valid */ kcg_bool v_p_ebd_valid; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::_L27 */ M_LEVEL _L27; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::_L55 */ MAs_real_T_TargetManagement_types _L55; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::_L70 */ NationalValues_real_T_SDM_Types_Pkg _L70; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::_L74 */ V_internal_real_Type_SDM_Types_Pkg _L74; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::_L113 */ kcg_bool _L113; /* SpeedSupervision_Integration_Pkg::SpeedSupervision_Integration::_L111 */ SDM_Locations_T_SDM_Types_Pkg _L111; /* 1 */ SDM_InputWrapper_SDM_Input_Wrappers( NationalValues, TrainPosition, odometry, m_level, trainProps, MRSP, MA, MA_updated, MRSP_updated, &_L27, &MRSP_internal, &_L55, &odometry_internal, &V_ura_internal, &Trainlocations_internal, &v_p_ebd_valid, &_L113, &_L70); /* 2 */ TargetManagement_TargetManagement_pkg( &MRSP_internal, _L113, &_L55, v_p_ebd_valid, &Trainlocations_internal, &outC->Context_2); kcg_copy_TargetCollection_T_TargetManagement_types( &targetCollection, &outC->Context_2.targetCollection); _L74 = /* 1 */ ReleaseSpeed_Selection_SDM_ReleaseSoeed_Selection_pkg( outC->Context_2.V_releaseFromMA, &_L70, outC->Context_2.V_releaseFromMAValid); /* 1 */ CalcBrakingCurves_integration_CalcBrakingCurves_Pkg( (ASafe_T_CalcBrakingCurves_types *) &TestcaseA_safe_CalcBrakingCurves_Pkg, &Trainlocations_internal, &targetCollection, &outC->Context_1); /* 4 */ SDMLimitLocations_TargetLimits_Pkg( &MRSP_internal, &odometry_internal, &Trainlocations_internal, &targetCollection, &outC->Context_1.curveCollection, _L74, V_ura_internal, _L70.q_nvinhsmicperm, kcg_false, 0.0, 0.0, 0.0, &_L111, &mrt_internal, &_L113, &v_target_internal, &v_mrsp_internal, &v_p_sbd, &v_p_ebd, &v_p_ebd_valid); /* 1 */ CalcSpeeds_SDM_Types_Pkg( &odometry_internal, v_mrsp_internal, _L74, v_target_internal, &mrt_internal, v_p_ebd, v_p_sbd, v_p_ebd_valid, _L111.FLOI_of_V_est, &tmp); /* 1 */ SDM_Commands_SDM_Commands_Pkg( &targetCollection, &odometry_internal, &tmp, &_L111, kcg_true, _L27, &mrt_internal, &Trainlocations_internal, _L113, &outC->_1_Context_1); /* 1 */ SDM_OutputWrapper_SDM_OutputWrapper( &outC->_1_Context_1.sdmCmd, outC->_1_Context_1.targetSpeedReached, outC->_1_Context_1.eoaOverpassed, 0.0, &mrt_internal, &odometry_internal, &_L70, kcg_false, &outC->_2_Context_1); kcg_copy_speedSupervisionForDMI_T_DMI_Types_Pkg( &outC->sdmToDMI, &outC->_2_Context_1.sdmToDMI); kcg_copy_Target_T_TargetManagement_types( &outC->target, &outC->_2_Context_1.out_target); kcg_copy_SDM_Commands_T_SDM_Types_Pkg( &outC->sdmCommands, &outC->_2_Context_1.sdmCommands); kcg_copy_Brake_command_T_TIU_Types_Pkg( &outC->brakeCmd, &outC->_2_Context_1.brakeCmd); outC->EOA_overpassed = outC->_2_Context_1.EOA_overpassed; outC->Target_Speed_Reached = outC->_2_Context_1.Target_Speed_Reached; }