/* TargetLimits_Pkg::MRSPPreindicationSelector */ void MRSPPreindicationSelector_TargetLimits_Pkg( /* TargetLimits_Pkg::MRSPPreindicationSelector::MRSP */MRSP_internal_T_TargetManagement_types *MRSP, /* TargetLimits_Pkg::MRSPPreindicationSelector::EBDcurve */ParabolaCurve_T_CalcBrakingCurves_types *EBDcurve, /* TargetLimits_Pkg::MRSPPreindicationSelector::SBDcurve */ParabolaCurve_T_CalcBrakingCurves_types *SBDcurve, /* TargetLimits_Pkg::MRSPPreindicationSelector::GUIcurve */ParabolaCurve_T_CalcBrakingCurves_types *GUIcurve, /* TargetLimits_Pkg::MRSPPreindicationSelector::guiCurveEnabled */kcg_bool guiCurveEnabled, /* TargetLimits_Pkg::MRSPPreindicationSelector::isEoA */kcg_bool isEoA, /* TargetLimits_Pkg::MRSPPreindicationSelector::T */T_trac_t_TargetLimits_Pkg *T, /* TargetLimits_Pkg::MRSPPreindicationSelector::D_preindication */L_internal_real_Type_SDM_Types_Pkg *D_preindication, /* TargetLimits_Pkg::MRSPPreindicationSelector::D_I_V_MRSP */L_internal_real_Type_SDM_Types_Pkg *D_I_V_MRSP, /* TargetLimits_Pkg::MRSPPreindicationSelector::valid */kcg_bool *valid) { static struct__130732 tmp1; static kcg_bool tmp; static kcg_int i; /* TargetLimits_Pkg::MRSPPreindicationSelector::_L1 */ static MRSP_internal_section_T_TargetManagement_types _L1; /* TargetLimits_Pkg::MRSPPreindicationSelector::_L69 */ static ParabolaCurve_T_CalcBrakingCurves_types _L69; /* TargetLimits_Pkg::MRSPPreindicationSelector::_L75 */ static T_trac_t_TargetLimits_Pkg _L75; _L1.Loc_Abs = 0.0; _L1.MRS = 0.0; _L1.valid = kcg_false; if (isEoA) { kcg_copy_ParabolaCurve_T_CalcBrakingCurves_types(&_L69, SBDcurve); kcg_copy_T_trac_t_TargetLimits_Pkg(&_L75, T); _L75.berem = 0.0; _L75.Traction = 0.0; _L75.bs2 = (*T).bs1; } else { kcg_copy_ParabolaCurve_T_CalcBrakingCurves_types(&_L69, EBDcurve); kcg_copy_T_trac_t_TargetLimits_Pkg(&_L75, T); } for (i = 0; i < 110; i++) { kcg_copy_MRSP_internal_section_T_TargetManagement_types(&tmp1, &_L1); /* 1 */ MRSPPreindicationIterator_TargetLimits_Pkg( i, &tmp1, &(*MRSP)[i], &_L69, guiCurveEnabled, GUIcurve, &_L75, &tmp, &_L1); if (!tmp) { break; } } *valid = _L1.valid; *D_preindication = _L1.Loc_Abs; *D_I_V_MRSP = T_preindication_SDM_Types_Pkg * _L1.MRS + *D_preindication; }
/* TargetLimits_Pkg::MRSPPreindicationSelector */ void MRSPPreindicationSelector_TargetLimits_Pkg( /* TargetLimits_Pkg::MRSPPreindicationSelector::MRSP */ MRSP_internal_T_TargetManagement_types *MRSP, /* TargetLimits_Pkg::MRSPPreindicationSelector::curve */ ParabolaCurve_T_CalcBrakingCurves_types *curve, /* TargetLimits_Pkg::MRSPPreindicationSelector::GUIcurve */ ParabolaCurve_T_CalcBrakingCurves_types *GUIcurve, /* TargetLimits_Pkg::MRSPPreindicationSelector::guiCurveEnabled */ kcg_bool guiCurveEnabled, /* TargetLimits_Pkg::MRSPPreindicationSelector::T_Traction */ T_internal_real_Type_SDM_Types_Pkg T_Traction, /* TargetLimits_Pkg::MRSPPreindicationSelector::T_berem */ T_internal_real_Type_SDM_Types_Pkg T_berem, /* TargetLimits_Pkg::MRSPPreindicationSelector::T_bs */ T_internal_real_Type_SDM_Types_Pkg T_bs, /* TargetLimits_Pkg::MRSPPreindicationSelector::D_preindication */ L_internal_real_Type_SDM_Types_Pkg *D_preindication, /* TargetLimits_Pkg::MRSPPreindicationSelector::valid */ kcg_bool *valid) { MRSP_internal_section_T_TargetManagement_types tmp1; kcg_bool tmp; kcg_int i; /* TargetLimits_Pkg::MRSPPreindicationSelector::_L1 */ MRSP_internal_section_T_TargetManagement_types _L1; _L1.Loc_Abs = 0.0; _L1.MRS = 0.0; _L1.valid = kcg_false; for (i = 0; i < 200; i++) { kcg_copy_MRSP_internal_section_T_TargetManagement_types(&tmp1, &_L1); /* 1 */ MRSPPreindicationIterator_TargetLimits_Pkg( i, &tmp1, &(*MRSP)[i], curve, T_Traction, T_berem, guiCurveEnabled, GUIcurve, T_bs, &tmp, &_L1); if (!tmp) { break; } } *D_preindication = _L1.Loc_Abs; *valid = _L1.valid; }