/* TargetManagement_pkg::internalOperators::removeOverpassedMRSP */ void removeOverpassedMRSP_TargetManagement_pkg_internalOperators( /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::Targets */ Target_list_MRSP_real_T_TargetManagement_types *Targets, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::d_max_safe_front */ L_internal_real_Type_SDM_Types_Pkg d_max_safe_front, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::TargetsOut */ Target_list_MRSP_real_T_TargetManagement_types *TargetsOut, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::updated */ kcg_bool *updated) { Target_list_MRSP_real_T_TargetManagement_types tmp1; kcg_bool tmp; kcg_int i; /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::_L6 */ kcg_int _L6; kcg_copy_Target_list_MRSP_real_T_TargetManagement_types(TargetsOut, Targets); if (((*Targets)[0].distance <= d_max_safe_front) & (*Targets)[0].valid) { for (i = 0; i < 200; i++) { kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &tmp1, TargetsOut); /* 1 */ removeOverpassedMRSPint_TargetManagement_pkg_internalOperators( &tmp1, d_max_safe_front, &tmp, TargetsOut); _L6 = i + 1; if (!tmp) { break; } } } else { _L6 = 0; } *updated = _L6 > 1; }
/* TargetManagement_pkg::internalOperators::extractTargetsFromMRSP */ void extractTargetsFromMRSP_TargetManagement_pkg_internalOperators( /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSP::MRSP */ MRSP_internal_T_TargetManagement_types *MRSP, /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSP::TargetsOfMRSP */ extractTargetsMRSPACC_TargetManagement_pkg *TargetsOfMRSP) { kcg_int i; extractTargetsMRSPACC_TargetManagement_pkg tmp1; kcg_bool tmp; /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSP::_L24 */ Target_list_MRSP_real_T_TargetManagement_types _L24; (*TargetsOfMRSP).lastInsertedTargetIndex = - 1; for (i = 0; i < 200; i++) { kcg_copy_Target_real_T_TargetManagement_types( &_L24[i], (Target_real_T_TargetManagement_types *) &emptyTargetMRSP_TargetManagement_pkg); } kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &(*TargetsOfMRSP).targetList, &_L24); if ((*MRSP)[0].valid) { for (i = 0; i < 200; i++) { kcg_copy_extractTargetsMRSPACC_TargetManagement_pkg(&tmp1, TargetsOfMRSP); /* 1 */ extractTargetsFromMRSPInt_TargetManagement_pkg_internalOperators( i, &tmp1, MRSP, &tmp, TargetsOfMRSP); if (!tmp) { break; } } } }
/* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt */ void extractTargetsFromMRSPInt_TargetManagement_pkg_internalOperators( /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt::index */kcg_int index, /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt::ACCU */extractTargetsMRSPACC_TargetManagement_pkg *ACCU, /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt::MRSP */MRSP_internal_T_TargetManagement_types *MRSP, /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt::endCondition */kcg_bool *endCondition, /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt::ACCUout */extractTargetsMRSPACC_TargetManagement_pkg *ACCUout) { /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt::_L14 */ static MRSP_internal_section_T_TargetManagement_types _L14; /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt::_L15 */ static MRSP_internal_section_T_TargetManagement_types _L15; /* TargetManagement_pkg::internalOperators::extractTargetsFromMRSPInt::_L34 */ static kcg_int _L34; if ((0 <= index + 1) & (index + 1 < 110)) { kcg_copy_MRSP_internal_section_T_TargetManagement_types( &_L15, &(*MRSP)[index + 1]); } else { kcg_copy_MRSP_internal_section_T_TargetManagement_types( &_L15, (MRSP_internal_section_T_TargetManagement_types *) &emptyMRSPSection_TargetManagement_pkg); } *endCondition = _L15.valid; _L34 = 1 + (*ACCU).lastInsertedTargetIndex; if ((0 <= index) & (index < 110)) { kcg_copy_MRSP_internal_section_T_TargetManagement_types( &_L14, &(*MRSP)[index]); } else { kcg_copy_MRSP_internal_section_T_TargetManagement_types( &_L14, (MRSP_internal_section_T_TargetManagement_types *) &emptyMRSPSection_TargetManagement_pkg); } if ((_L14.MRS > _L15.MRS) & _L14.valid & *endCondition) { (*ACCUout).lastInsertedTargetIndex = _L34; kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &(*ACCUout).targetList, &(*ACCU).targetList); if ((0 <= _L34) & (_L34 < 110)) { (*ACCUout).targetList[_L34].targetType = MRSP_TargetManagement_types; (*ACCUout).targetList[_L34].distance = _L15.Loc_Abs; (*ACCUout).targetList[_L34].speed = _L15.MRS; } } else { kcg_copy_extractTargetsMRSPACC_TargetManagement_pkg(ACCUout, ACCU); } }
/* TargetManagement_pkg::internalOperators::removeOverpassedMRSP */ void removeOverpassedMRSP_TargetManagement_pkg_internalOperators( /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::Targets */ Target_list_MRSP_real_T_TargetManagement_types *Targets, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::d_max_safe_front */ L_internal_real_Type_SDM_Types_Pkg d_max_safe_front, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::TargetsOut */ Target_list_MRSP_real_T_TargetManagement_types *TargetsOut, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::updated */ kcg_bool *updated) { /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP */ static Target_list_MRSP_real_T_TargetManagement_types acc; /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP */ static kcg_bool cond_iterw; static kcg_int i; /* TargetManagement_pkg::internalOperators::removeOverpassedMRSP::_L6 */ static kcg_int _L6; kcg_copy_Target_list_MRSP_real_T_TargetManagement_types(TargetsOut, Targets); if (((*Targets)[0].targetType == MRSP_TargetManagement_types) & ((*Targets)[0].distance <= d_max_safe_front)) { for (i = 0; i < 200; i++) { kcg_copy_Target_list_MRSP_real_T_TargetManagement_types(&acc, TargetsOut); /* 1 */ removeOverpassedMRSPint_TargetManagement_pkg_internalOperators( &acc, d_max_safe_front, &cond_iterw, TargetsOut); _L6 = i + 1; if (!cond_iterw) { break; } } } else { _L6 = 0; } *updated = _L6 > 1; }
/* TargetManagement_pkg::internalOperators::removeOverpassedMRSPint */ void removeOverpassedMRSPint_TargetManagement_pkg_internalOperators( /* TargetManagement_pkg::internalOperators::removeOverpassedMRSPint::Targets */ Target_list_MRSP_real_T_TargetManagement_types *Targets, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSPint::d_safe_max_front */ L_internal_real_Type_SDM_Types_Pkg d_safe_max_front, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSPint::Cond */ kcg_bool *Cond, /* TargetManagement_pkg::internalOperators::removeOverpassedMRSPint::TargetsReduced */ Target_list_MRSP_real_T_TargetManagement_types *TargetsReduced) { *Cond = (MRSP_TargetManagement_types == (*Targets)[0].targetType) & ((*Targets)[0].distance <= d_safe_max_front); /* 1 */ if (*Cond) { kcg_copy_array_97070(&(*TargetsReduced)[0], (array_97070 *) &(*Targets)[1]); kcg_copy_Target_real_T_TargetManagement_types( &(&(*TargetsReduced)[199])[0], (Target_real_T_TargetManagement_types *) &emptyTarget_TargetManagement_pkg); } else { kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( TargetsReduced, Targets); } }
/* TargetManagement_pkg::TargetManagement */ void TargetManagement_TargetManagement_pkg( /* TargetManagement_pkg::TargetManagement::MRSP */ MRSP_internal_T_TargetManagement_types *MRSP, /* TargetManagement_pkg::TargetManagement::MRSP_updated */ kcg_bool MRSP_updated, /* TargetManagement_pkg::TargetManagement::MA */ MA_section_real_T_TargetManagement_types *MA, /* TargetManagement_pkg::TargetManagement::MA_updated */ kcg_bool MA_updated, /* TargetManagement_pkg::TargetManagement::trainLocations */ TrainLocations_real_T_SDM_Types_Pkg *trainLocations, outC_TargetManagement_TargetManagement_pkg *outC) { /* TargetManagement_pkg::TargetManagement */ Target_list_MRSP_real_T_TargetManagement_types tmp1; /* TargetManagement_pkg::TargetManagement */ extractTargetsMRSPACC_TargetManagement_pkg tmp; /* TargetManagement_pkg::TargetManagement::_L88 */ kcg_bool _L88; kcg_int i; /* ck_MA_updated */ if (MA_updated) { /* 1 */ calcMATargets_TargetManagement_pkg_internalOperators( MA, &outC->_L12, &outC->_L93); } else if (outC->init) { kcg_copy_Target_real_T_TargetManagement_types( &outC->_L93, (Target_real_T_TargetManagement_types *) &emptyTarget_TargetManagement_pkg); kcg_copy_Target_real_T_TargetManagement_types( &outC->_L12, (Target_real_T_TargetManagement_types *) &emptyTarget_TargetManagement_pkg); } kcg_copy_Target_real_T_TargetManagement_types( &outC->targetCollection.EOA_target, &outC->_L12); kcg_copy_Target_real_T_TargetManagement_types( &outC->targetCollection.SvL_LoA_target, &outC->_L93); /* ck_MRSP_updated */ if (MRSP_updated) { /* 1 */ extractTargetsFromMRSP_TargetManagement_pkg_internalOperators(MRSP, &tmp); kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &tmp1, &tmp.targetList); } else /* last_init_ck_MRSPTargetList */ if (outC->init) { for (i = 0; i < 110; i++) { kcg_copy_Target_real_T_TargetManagement_types( &tmp1[i], (Target_real_T_TargetManagement_types *) &emptyTarget_TargetManagement_pkg); } } else { kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &tmp1, &outC->rem_MRSPTargetList); } outC->init = kcg_false; /* 1 */ removeOverpassedMRSP_TargetManagement_pkg_internalOperators( &tmp1, (*trainLocations).d_maxSafeFrontEndPos, &outC->rem_MRSPTargetList, &_L88); outC->targetCollection.updatedTargetList = MRSP_updated | MA_updated | _L88; kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &outC->targetCollection.MRSP_targetList, &outC->rem_MRSPTargetList); }
/* TargetManagement_pkg::TargetManagement */ void TargetManagement_TargetManagement_pkg( /* TargetManagement_pkg::TargetManagement::MRSP */MRSP_internal_T_TargetManagement_types *MRSP, /* TargetManagement_pkg::TargetManagement::MRSP_updated */kcg_bool MRSP_updated, /* TargetManagement_pkg::TargetManagement::MA */MA_section_real_T_TargetManagement_types *MA, /* TargetManagement_pkg::TargetManagement::MA_updated */kcg_bool MA_updated, /* TargetManagement_pkg::TargetManagement::trainLocations */TrainLocations_real_T_SDM_Types_Pkg *trainLocations, outC_TargetManagement_TargetManagement_pkg *outC) { static struct__130782 tmp; static kcg_int i; static Target_list_MRSP_real_T_TargetManagement_types tmp3; static extractTargetsMRSPACC_TargetManagement_pkg tmp2; static array__130570 tmp1; static array__130570 tmp4; /* TargetManagement_pkg::TargetManagement::_L88 */ static kcg_bool _L88; if (MA_updated) { /* 1 */ calcMATargets_TargetManagement_pkg_internalOperators( MA, &outC->_L12, &outC->_L93); } else if (outC->init) { kcg_copy_Target_real_T_TargetManagement_types( &outC->_L93, (Target_real_T_TargetManagement_types *) &emptyTarget_TargetManagement_pkg); kcg_copy_Target_real_T_TargetManagement_types( &outC->_L12, (Target_real_T_TargetManagement_types *) &emptyTarget_TargetManagement_pkg); } kcg_copy_Target_real_T_TargetManagement_types( &outC->targetCollection.SvL_LoA_target, &outC->_L93); for (i = 0; i < 110; i++) { kcg_copy_Target_real_T_TargetManagement_types( &tmp4[i], (Target_real_T_TargetManagement_types *) &emptyTarget_TargetManagement_pkg); } if (MRSP_updated) { /* 1 */ extractTargetsFromMRSP_TargetManagement_pkg_internalOperators(MRSP, &tmp2); kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &tmp3, &tmp2.targetList); } else { if (outC->init) { kcg_copy_array__130570(&tmp1, &tmp4); } else { kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &tmp1, &outC->rem_MRSPTargetList); } kcg_copy_array__130570(&tmp.targetList, &tmp1); tmp.lastInsertedTargetIndex = - 1; kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &tmp3, &tmp.targetList); } /* 1 */ removeOverpassedMRSP_TargetManagement_pkg_internalOperators( &tmp3, (*trainLocations).d_maxSafeFrontEndPos, &outC->rem_MRSPTargetList, &_L88); outC->targetCollection.updatedTargetList = MRSP_updated | MA_updated | _L88; kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &outC->targetCollection.MRSP_targetList, &outC->rem_MRSPTargetList); outC->init = kcg_false; kcg_copy_Target_real_T_TargetManagement_types( &outC->targetCollection.EOA_target, &outC->_L12); }
/* TargetManagement_pkg::TargetManagement */ void TargetManagement_TargetManagement_pkg( /* TargetManagement_pkg::TargetManagement::MRSP */ MRSP_internal_T_TargetManagement_types *MRSP, /* TargetManagement_pkg::TargetManagement::MRSP_updated */ kcg_bool MRSP_updated, /* TargetManagement_pkg::TargetManagement::MA */ MAs_real_T_TargetManagement_types *MA, /* TargetManagement_pkg::TargetManagement::MA_updated */ kcg_bool MA_updated, /* TargetManagement_pkg::TargetManagement::trainLocations */ TrainLocations_real_T_SDM_Types_Pkg *trainLocations, outC_TargetManagement_TargetManagement_pkg *outC) { kcg_int i; Target_list_LOA_real_T_TargetManagement_types tmp6; extractTargetsLOAACC_TargetManagement_pkg tmp5; Target_list_LOA_real_T_TargetManagement_types tmp4; Target_list_MRSP_real_T_TargetManagement_types tmp3; extractTargetsMRSPACC_TargetManagement_pkg tmp2; Target_list_MRSP_real_T_TargetManagement_types tmp1; kcg_real tmp; /* TargetManagement_pkg::TargetManagement::_L88 */ kcg_bool _L88; /* TargetManagement_pkg::TargetManagement::_L92 */ kcg_bool _L92; if (MA_updated) { /* 1 */ extractLOATargetsFromMA_TargetManagement_pkg_internalOperators(MA, &tmp5); kcg_copy_Target_list_LOA_real_T_TargetManagement_types( &tmp6, &tmp5.targetList); /* 1 */ extractEOASvLTargetFromMA_TargetManagement_pkg_internalOperators( MA, &outC->_L12, &outC->_L93, &outC->V_releaseFromMA, &outC->V_releaseFromMAValid); } else { if (outC->init) { for (i = 0; i < 10; i++) { kcg_copy_Target_real_T_TargetManagement_types( &tmp4[i], (Target_real_T_TargetManagement_types *) &emptyTargetLOA_TargetManagement_pkg); } kcg_copy_Target_real_T_TargetManagement_types( &outC->_L12, (Target_real_T_TargetManagement_types *) &emptyTargetEOA_TargetManagement_pkg); kcg_copy_Target_real_T_TargetManagement_types( &outC->_L93, (Target_real_T_TargetManagement_types *) &emptyTargetSvL_TargetManagement_pkg); tmp = 0.0; outC->V_releaseFromMAValid = kcg_false; } else { kcg_copy_Target_list_LOA_real_T_TargetManagement_types( &tmp4, &outC->rem_LOATargetList); tmp = outC->V_releaseFromMA; } kcg_copy_Target_list_LOA_real_T_TargetManagement_types(&tmp6, &tmp4); outC->V_releaseFromMA = tmp; } /* 1 */ removeOverpassedLOA_TargetManagement_pkg_internalOperators( &tmp6, (*trainLocations).d_maxSafeFrontEndPos, &outC->rem_LOATargetList, &_L92); kcg_copy_Target_list_LOA_real_T_TargetManagement_types( &outC->targetCollection.LOA_targetList, &outC->rem_LOATargetList); if (MRSP_updated) { /* 1 */ extractTargetsFromMRSP_TargetManagement_pkg_internalOperators(MRSP, &tmp2); kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &tmp3, &tmp2.targetList); } else { if (outC->init) { for (i = 0; i < 200; i++) { kcg_copy_Target_real_T_TargetManagement_types( &tmp1[i], (Target_real_T_TargetManagement_types *) &emptyTargetMRSP_TargetManagement_pkg); } } else { kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &tmp1, &outC->rem_MRSPTargetList); } kcg_copy_Target_list_MRSP_real_T_TargetManagement_types(&tmp3, &tmp1); } /* 1 */ removeOverpassedMRSP_TargetManagement_pkg_internalOperators( &tmp3, (*trainLocations).d_maxSafeFrontEndPos, &outC->rem_MRSPTargetList, &_L88); outC->targetCollection.updatedTargetList = _L92 | MRSP_updated | MA_updated | _L88; kcg_copy_Target_list_MRSP_real_T_TargetManagement_types( &outC->targetCollection.MRSP_targetList, &outC->rem_MRSPTargetList); kcg_copy_Target_real_T_TargetManagement_types( &outC->targetCollection.EOA_target, &outC->_L12); kcg_copy_Target_real_T_TargetManagement_types( &outC->targetCollection.SvL_target, &outC->_L93); outC->init = kcg_false; }