/* CalcBrakingCurves_Pkg::internalOperators::CalculateEBDFootForMRSPorLOA */ L_internal_real_Type_SDM_Types_Pkg CalculateEBDFootForMRSPorLOA_CalcBrakingCurves_Pkg_internalOperators( /* CalcBrakingCurves_Pkg::internalOperators::CalculateEBDFootForMRSPorLOA::IsMRSPorLOATarget */ kcg_bool IsMRSPorLOATarget, /* CalcBrakingCurves_Pkg::internalOperators::CalculateEBDFootForMRSPorLOA::target */ Target_real_T_TargetManagement_types *target, /* CalcBrakingCurves_Pkg::internalOperators::CalculateEBDFootForMRSPorLOA::aSafe */ ASafe_T_CalcBrakingCurves_types *aSafe) { BCAccumulator_type_CalcBrakingCurves_Pkg tmp1; kcg_int i; ParabolaCurve_T_CalcBrakingCurves_types tmp; /* CalcBrakingCurves_Pkg::internalOperators::CalculateEBDFootForMRSPorLOA::_L5 */ BCAccumulator_type_CalcBrakingCurves_Pkg _L5; /* CalcBrakingCurves_Pkg::internalOperators::CalculateEBDFootForMRSPorLOA::_L10 */ kcg_bool _L10; /* CalcBrakingCurves_Pkg::internalOperators::CalculateEBDFootForMRSPorLOA::Output1 */ L_internal_real_Type_SDM_Types_Pkg Output1; /* InitilizeAccForEBDFootCalc */ InitilizeAccForEBDFootCalc_CalcBrakingCurves_Pkg_internalOperators( target, aSafe, &_L5); if (IsMRSPorLOATarget) { for (i = 0; i < 24; i++) { kcg_copy_BCAccumulator_type_CalcBrakingCurves_Pkg(&tmp1, &_L5); /* 1 */ BCFoldOperatorForward_CalcBrakingCurves_Pkg_internalOperators( i, &tmp1, aSafe, (*target).speed, &_L10, &_L5); if (!_L10) { break; } } } /* 1 */ SortByDistances_CalcBrakingCurves_Pkg_internalOperators(&_L5.BC, &tmp); /* 1 */ getLocationOnCurve_CalcBrakingCurves_types( &tmp, (*target).speed, &_L10, &Output1); return Output1; }
/* CalcBrakingCurves_Pkg::CalculateBrakingCurve */ void CalculateBrakingCurve_CalcBrakingCurves_Pkg( /* CalcBrakingCurves_Pkg::CalculateBrakingCurve::Asafe */ ASafe_T_CalcBrakingCurves_types *Asafe, /* CalcBrakingCurves_Pkg::CalculateBrakingCurve::Target */ Target_real_T_TargetManagement_types *Target, /* CalcBrakingCurves_Pkg::CalculateBrakingCurve::d_est_front */ L_internal_real_Type_SDM_Types_Pkg d_est_front, /* CalcBrakingCurves_Pkg::CalculateBrakingCurve::cond */ kcg_bool *cond, /* CalcBrakingCurves_Pkg::CalculateBrakingCurve::BC */ ParabolaCurve_T_CalcBrakingCurves_types *BC) { /* CalcBrakingCurves_Pkg::CalculateBrakingCurve */ static BCAccumulator_type_CalcBrakingCurves_Pkg acc; /* CalcBrakingCurves_Pkg::CalculateBrakingCurve */ static kcg_bool cond_iterw; static kcg_int i; /* CalcBrakingCurves_Pkg::CalculateBrakingCurve::_L19 */ static BCAccumulator_type_CalcBrakingCurves_Pkg _L19; *cond = invalid_TargetManagement_types != (*Target).targetType; if (*cond) { /* InitalValues */ InitalValues_CalcBrakingCurves_Pkg_internalOperators(Target, Asafe, &_L19); for (i = 0; i < 113; i++) { kcg_copy_BCAccumulator_type_CalcBrakingCurves_Pkg(&acc, &_L19); /* 1 */ BCFoldOperatorBackward_CalcBrakingCurves_Pkg_internalOperators( i, &acc, Asafe, d_est_front, &cond_iterw, &_L19); if (!cond_iterw) { break; } } } else { /* emptyBCAcc */ emptyBCAcc_CalcBrakingCurves_Pkg(&_L19); } /* SortByDistances */ SortByDistances_CalcBrakingCurves_Pkg_internalOperators(&_L19.BC, BC); }