/* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack */ void mergeBGs_onTrack_CalculateTrainPosition_Pkg_BG_utilities_Pkg( /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::BGs_1 */ positionedBGs_T_TrainPosition_Types_Pck *BGs_1, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::BGs_2 */ positionedBGs_T_TrainPosition_Types_Pck *BGs_2, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::BGs_out */ positionedBGs_T_TrainPosition_Types_Pck *BGs_out, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::overrun */ kcg_bool *overrun) { /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack */ static positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg acc; static kcg_int i; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::mergeBGs_onTrack::_L7 */ static positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg _L7; kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&_L7.BGs, BGs_1); _L7.overrun = kcg_false; for (i = 0; i < 41; i++) { kcg_copy_positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg(&acc, &_L7); /* 1 */ mergeBGs_onTrack_itr_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &acc, &(*BGs_2)[i], &_L7); } *overrun = _L7.overrun; kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, &_L7.BGs); }
/* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBGs_beforeIndex */ void deleteBGs_beforeIndex_CalculateTrainPosition_Pkg_BG_utilities_Pkg( /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBGs_beforeIndex::BGs_in */positionedBGs_T_TrainPosition_Types_Pck *BGs_in, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBGs_beforeIndex::indexOfBG */kcg_int indexOfBG, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBGs_beforeIndex::del */kcg_bool del, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBGs_beforeIndex::BGs_out */positionedBGs_T_TrainPosition_Types_Pck *BGs_out) { static kcg_bool tmp; static kcg_int i; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBGs_beforeIndex::_L8 */ static kcg_bool _L8; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBGs_beforeIndex::_L20 */ static array__129125 _L20; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBGs_beforeIndex::_L21 */ static kcg_int _L21; _L8 = del & (indexOfBG > 0) & (indexOfBG < cMaxNoOfStoredBGs_TrainPosition_Types_Pck); if (_L8) { for (i = 0; i < 41; i++) { /* 1 */ deleteBGs_beforeIndex_itr_CalculateTrainPosition_Pkg_BG_utilities_Pkg( i, indexOfBG, BGs_in, &tmp, &_L20[i]); _L21 = i + 1; if (!tmp) { break; } } } else { _L21 = 0; } #ifdef KCG_MAPW_CPY for (i = _L21; i < 41; i++) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &_L20[i], (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } #endif /* KCG_MAPW_CPY */ if (_L8) { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, &_L20); } else { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, BGs_in); } }
/* CalculateTrainPosition_Pkg::calculateTrainPosition */ void calculateTrainPosition_CalculateTrainPosition_Pkg( inC_calculateTrainPosition_CalculateTrainPosition_Pkg *inC, outC_calculateTrainPosition_CalculateTrainPosition_Pkg *outC) { /* 1 */ calculateBG_and_trainLocation_CalculateTrainPosition_Pkg( &inC->currentOdometry, &inC->passedBG, inC->reset, &outC->Context_1); kcg_copy_trainPositionInfo_T_TrainPosition_Types_Pck( &outC->trainPositionInfo, &outC->Context_1.trainPositionInfo); kcg_copy_positionedBGs_T_TrainPosition_Types_Pck( &outC->BGs, &outC->Context_1.BGs); kcg_copy_positionErrors_T_TrainPosition_Types_Pck( &outC->errors, &outC->Context_1.errors); /* 1 */ calculateTrainpositionAttributes_CalculateTrainPosition_Pkg( &inC->LRBG, &inC->prevLRBG, &outC->trainPositionInfo, &inC->trainProperties, &outC->trainPosition); }
/* CalculateTrainPosition_Pkg::mergeBGs_by_id */ void mergeBGs_by_id_CalculateTrainPosition_Pkg( /* CalculateTrainPosition_Pkg::mergeBGs_by_id::BGs_1 */ positionedBGs_T_TrainPosition_Types_Pck *BGs_1, /* CalculateTrainPosition_Pkg::mergeBGs_by_id::BGs_2 */ positionedBGs_T_TrainPosition_Types_Pck *BGs_2, /* CalculateTrainPosition_Pkg::mergeBGs_by_id::BGs_out */ positionedBGs_T_TrainPosition_Types_Pck *BGs_out, /* CalculateTrainPosition_Pkg::mergeBGs_by_id::overrun */ kcg_bool *overrun) { positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg tmp; kcg_int i; /* CalculateTrainPosition_Pkg::mergeBGs_by_id::_L7 */ positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg _L7; kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&_L7.BGs, BGs_1); _L7.overrun = kcg_false; for (i = 0; i < 64; i++) { kcg_copy_positionedBGs_w_overrun_T_CalculateTrainPosition_Pkg(&tmp, &_L7); /* 1 */ mergeBGs_by_id_itr_CalculateTrainPosition_Pkg(&tmp, &(*BGs_2)[i], &_L7); } kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, &_L7.BGs); *overrun = _L7.overrun; }
/* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed */ void linkedBG_missed_CalculateTrainPosition_Pkg_Linking_Pkg( /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed::position */ LocWithInAcc_T_Obu_BasicTypes_Pkg *position, /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed::BGs_in */ positionedBGs_T_TrainPosition_Types_Pck *BGs_in, /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed::enable */ kcg_bool enable, outC_linkedBG_missed_CalculateTrainPosition_Pkg_Linking_Pkg *outC) { /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed */ static LocWithInAcc_T_Obu_BasicTypes_Pkg tmp1; /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed */ static LocWithInAcc_T_Obu_BasicTypes_Pkg tmp; /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed::_L1 */ static kcg_bool _L1; /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed::_L52 */ static LocWithInAcc_T_Obu_BasicTypes_Pkg _L52; /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed::_L69 */ static kcg_bool _L69; /* CalculateTrainPosition_Pkg::Linking_Pkg::linkedBG_missed::_L67 */ static kcg_int _L67; /* last_init_ck_position */ if (outC->init) { outC->init = kcg_false; kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->BG, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); outC->indexOfBG = cNoValidIndex_CalculateTrainPosition_Pkg; kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &_L52, (LocWithInAcc_T_Obu_BasicTypes_Pkg *) &cLocWithInAcc_0_Obu_BasicTypes_Pkg); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&outC->BG, &outC->_L3); outC->indexOfBG = outC->_L2; kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg(&_L52, &outC->rem_position); } /* 2 */ sub_2_distances_BasicLocationFunctions_Pkg(position, &_L52, &tmp1); _L1 = tmp1.nominal >= 0; /* ck_movedAhead */ if (_L1) { tmp.nominal = (*position).nominal; tmp.d_min = _L52.nominal + _L52.d_min - (*position).nominal; tmp.d_max = (*position).d_max; } else { tmp.nominal = (*position).nominal; tmp.d_min = (*position).d_min; tmp.d_max = _L52.nominal + _L52.d_max - (*position).nominal; } /* 1 */ posInRangeOfBG_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &tmp, BGs_in, enable, &_L1, &outC->_L2, &outC->_L3); /* 1 */ FallingEdge_digital(_L1, &outC->Context_1); outC->missed = ((/* 1 */ positionedBGs_ids_notEqual_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &outC->_L3, &outC->BG) & _L1) | outC->Context_1.FE_Output) & (outC->BG.q_link == Q_LINK_Linked) & !outC->BG.infoFromPassing.valid; outC->BG.missed = outC->missed; /* 1 */ indexOfBG_by_id_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &outC->BG, BGs_in, outC->missed, &_L67, &_L1, &_L69); /* 1 */ if (_L1 & outC->missed) { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&outC->BGs_out, BGs_in); if ((0 <= _L67) & (_L67 < 41)) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->BGs_out[_L67], &outC->BG); } } else { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&outC->BGs_out, BGs_in); } kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg(&outC->rem_position, position); }
/* CalculateTrainPosition_Pkg::calculateTrainPosition */ void calculateTrainPosition_CalculateTrainPosition_Pkg( /* CalculateTrainPosition_Pkg::calculateTrainPosition::currentOdometry */ odometry_T_Obu_BasicTypes_Pkg *currentOdometry, /* CalculateTrainPosition_Pkg::calculateTrainPosition::passedBG */ passedBG_T_BG_Types_Pkg *passedBG, /* CalculateTrainPosition_Pkg::calculateTrainPosition::msgFromTrack */ ReceivedMessage_T_Common_Types_Pkg *msgFromTrack, /* CalculateTrainPosition_Pkg::calculateTrainPosition::trainProperties */ trainProperties_T_TrainPosition_Types_Pck *trainProperties, /* CalculateTrainPosition_Pkg::calculateTrainPosition::reset */ kcg_bool reset, outC_calculateTrainPosition_CalculateTrainPosition_Pkg *outC) { positionedBGs_T_TrainPosition_Types_Pck tmp; /* CalculateTrainPosition_Pkg::calculateTrainPosition::if_BGpassed_or_onlyAnnounced::then::_L10 */ positionedBGs_T_TrainPosition_Types_Pck _L10_if_BGpassed_or_onlyAnnounced; /* CalculateTrainPosition_Pkg::calculateTrainPosition::if_BGpassed_or_onlyAnnounced::else::then::_L13 */ kcg_bool _L13_if_BGpassed_or_onlyAnnounced; /* CalculateTrainPosition_Pkg::calculateTrainPosition::BGs_loc */ positionedBGs_T_TrainPosition_Types_Pck last_BGs_loc; /* CalculateTrainPosition_Pkg::calculateTrainPosition::if_BGpassed_or_onlyAnnounced */ kcg_bool if_BGpassed_or_onlyAnnounced_clock; /* CalculateTrainPosition_Pkg::calculateTrainPosition::BG_passed */ kcg_bool BG_passed; /* CalculateTrainPosition_Pkg::calculateTrainPosition::onlyBGsAnnouncedViaRadio */ kcg_bool onlyBGsAnnouncedViaRadio; /* CalculateTrainPosition_Pkg::calculateTrainPosition::errors_loc */ positionErrors_T_TrainPosition_Types_Pck errors_loc; /* CalculateTrainPosition_Pkg::calculateTrainPosition::passedBG_asPositionedBG */ positionedBG_T_TrainPosition_Types_Pck passedBG_asPositionedBG; /* CalculateTrainPosition_Pkg::calculateTrainPosition::trainPositionInfo */ trainPositionInfo_T_TrainPosition_Types_Pck trainPositionInfo; /* CalculateTrainPosition_Pkg::calculateTrainPosition::passedBG_loc */ passedBG_T_BG_Types_Pkg passedBG_loc; /* CalculateTrainPosition_Pkg::calculateTrainPosition::_L306 */ passedBG_T_BG_Types_Pkg _L306; outC->errors.doubleRepositioningError = kcg_false; if (outC->init) { outC->init = kcg_false; kcg_copy_positionedBGs_T_TrainPosition_Types_Pck( &last_BGs_loc, (positionedBGs_T_TrainPosition_Types_Pck *) &cNoPositionedBGs_CalculateTrainPosition_Pkg); } else { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&last_BGs_loc, &outC->BGs); } /* 1 */ msg_2_passedBG_CalculateTrainPosition_Pkg_msgAdapter_Pkg( msgFromTrack, &_L306, &if_BGpassed_or_onlyAnnounced_clock, &_L13_if_BGpassed_or_onlyAnnounced); if ((*passedBG).valid) { BG_passed = (*passedBG).BG_Header.valid & (*passedBG).valid; onlyBGsAnnouncedViaRadio = !(*passedBG).BG_Header.valid & (*passedBG).valid; kcg_copy_passedBG_T_BG_Types_Pkg(&passedBG_loc, passedBG); } else { BG_passed = if_BGpassed_or_onlyAnnounced_clock; onlyBGsAnnouncedViaRadio = _L13_if_BGpassed_or_onlyAnnounced; kcg_copy_passedBG_T_BG_Types_Pkg(&passedBG_loc, &_L306); } if_BGpassed_or_onlyAnnounced_clock = BG_passed | reset; if (if_BGpassed_or_onlyAnnounced_clock) { if (reset) { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck( &tmp, (positionedBGs_T_TrainPosition_Types_Pck *) &cNoPositionedBGs_CalculateTrainPosition_Pkg); } else { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&tmp, &last_BGs_loc); } /* 6 */ calculateBGLocations_CalculateTrainPosition_Pkg( &passedBG_loc, &tmp, reset, trainProperties, &outC->Context_6); kcg_copy_positionedBGs_T_TrainPosition_Types_Pck( &_L10_if_BGpassed_or_onlyAnnounced, &outC->Context_6.BGs); kcg_copy_positionErrors_T_TrainPosition_Types_Pck( &errors_loc, &outC->Context_6.errors); /* 2 */ delDispensableBGs_CalculateTrainPosition_Pkg( &_L10_if_BGpassed_or_onlyAnnounced, kcg_true, &outC->BGs); kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &passedBG_asPositionedBG, &outC->Context_6.passedPositionedBG); } else { if (onlyBGsAnnouncedViaRadio) { /* 1 */ addAnnouncedBGs_CalculateTrainPosition_Pkg( &passedBG_loc, &last_BGs_loc, trainProperties, &outC->BGs, &_L13_if_BGpassed_or_onlyAnnounced); kcg_copy_positionErrors_T_TrainPosition_Types_Pck( &errors_loc, (positionErrors_T_TrainPosition_Types_Pck *) &cNoPositionErrors_CalculateTrainPosition_Pkg); errors_loc.outOfMemSpace = _L13_if_BGpassed_or_onlyAnnounced; } else { kcg_copy_positionErrors_T_TrainPosition_Types_Pck( &errors_loc, (positionErrors_T_TrainPosition_Types_Pck *) &cNoPositionErrors_CalculateTrainPosition_Pkg); kcg_copy_positionedBGs_T_TrainPosition_Types_Pck( &outC->BGs, &last_BGs_loc); } kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &passedBG_asPositionedBG, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } outC->errors.outOfMemSpace = errors_loc.outOfMemSpace; outC->errors.passedBG_foundNotWhereExpected = errors_loc.passedBG_foundNotWhereExpected; outC->errors.BGpassedInUnexpectedDirection = errors_loc.BGpassedInUnexpectedDirection; /* 1 */ calculateTrainPositionInfo_CalculateTrainPosition_Pkg( currentOdometry, &outC->BGs, (kcg_bool) (onlyBGsAnnouncedViaRadio | BG_passed | reset), &passedBG_asPositionedBG, reset, &outC->Context_1); outC->errors.positionCalculation_inconsistent = outC->Context_1.positionCalculationNotConsistent; kcg_copy_trainPositionInfo_T_TrainPosition_Types_Pck( &trainPositionInfo, &outC->Context_1.trainPositionInfo); /* 2 */ linkedBG_missed_CalculateTrainPosition_Pkg_Linking_Pkg( &trainPositionInfo.trainPosition, &outC->BGs, kcg_true, &outC->Context_2); outC->errors.linkedBGMissed = outC->Context_2.missed; outC->errors.BG_LinkingConsistencyError = outC->Context_2.missed | errors_loc.BG_LinkingConsistencyError; /* 1 */ twoConsecutiveLinkedBGs_missed_CalculateTrainPosition_Pkg_Linking_Pkg( outC->Context_2.missed, &outC->Context_2.BG, &passedBG_asPositionedBG, reset, &outC->_1_Context_1); outC->errors.twoConsecutiveLinkedBGs_missed = outC->_1_Context_1.secondConsecutiveBG_missed; if (outC->Context_2.missed) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->errors.bg, &outC->Context_2.BG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->errors.bg, &errors_loc.bg); } /* 1 */ calculateTrainpositionAttributes_CalculateTrainPosition_Pkg( &trainPositionInfo, currentOdometry, trainProperties, &outC->trainPosition); }
/* CalculateTrainPosition_Pkg::calculateBGLocations */ void calculateBGLocations_CalculateTrainPosition_Pkg( /* CalculateTrainPosition_Pkg::calculateBGLocations::passedBG */ passedBG_T_BG_Types_Pkg *passedBG, /* CalculateTrainPosition_Pkg::calculateBGLocations::lastBGs */ positionedBGs_T_TrainPosition_Types_Pck *lastBGs, /* CalculateTrainPosition_Pkg::calculateBGLocations::reset */ kcg_bool reset, /* CalculateTrainPosition_Pkg::calculateBGLocations::trainProperties */ trainProperties_T_TrainPosition_Types_Pck *trainProperties, outC_calculateBGLocations_CalculateTrainPosition_Pkg *outC) { /* CalculateTrainPosition_Pkg::calculateBGLocations */ static positionedBG_T_TrainPosition_Types_Pck tmp; /* CalculateTrainPosition_Pkg::calculateBGLocations::passedBG_foundNotWhereExpected */ static kcg_bool passedBG_foundNotWhereExpected; /* CalculateTrainPosition_Pkg::calculateBGLocations::_L87 */ static positionedBG_T_TrainPosition_Types_Pck _L87; /* CalculateTrainPosition_Pkg::calculateBGLocations::_L88 */ static positionedBGs_T_TrainPosition_Types_Pck _L88; /* CalculateTrainPosition_Pkg::calculateBGLocations::_L351 */ static kcg_bool _L351; /* CalculateTrainPosition_Pkg::calculateBGLocations::_L366 */ static kcg_bool _L366; /* CalculateTrainPosition_Pkg::calculateBGLocations::_L364 */ static kcg_int _L364; outC->errors.positionCalculation_inconsistent = kcg_false; outC->errors.linkedBGMissed = kcg_false; outC->errors.twoConsecutiveLinkedBGs_missed = kcg_false; outC->errors.doubleRepositioningError = kcg_false; /* 1 */ prevPassedLinkedBG_CalculateTrainPosition_Pkg(passedBG, lastBGs, &tmp); /* 2 */ genPassedBG_SeqNo_CalculateTrainPosition_Pkg( passedBG, lastBGs, reset, &outC->Context_2); /* 1 */ passing_a_BG_CalculateTrainPosition_Pkg( passedBG, &tmp, lastBGs, outC->Context_2.seqNo, trainProperties, &_L87, &_L88, &outC->errors.outOfMemSpace, &passedBG_foundNotWhereExpected, &_L351); outC->errors.passedBG_foundNotWhereExpected = passedBG_foundNotWhereExpected; outC->errors.BGpassedInUnexpectedDirection = _L351; outC->errors.BG_LinkingConsistencyError = _L351 | passedBG_foundNotWhereExpected; _L351 = _L87.valid & (_L87.q_link == Q_LINK_Linked) & !passedBG_foundNotWhereExpected; /* 1 */ if (reset) { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck( &outC->BGs, (positionedBGs_T_TrainPosition_Types_Pck *) &cNoPositionedBGs_CalculateTrainPosition_Pkg); } else /* 2 */ if (_L351) { /* 1 */ improve_BG_locations_CalculateTrainPosition_Pkg_BG_relocation_Pkg( &_L87, &_L88, trainProperties, &outC->BGs); } else { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&outC->BGs, &_L88); } /* 1 */ indexOfBG_by_id_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &_L87, &outC->BGs, _L87.valid, &_L364, &_L351, &_L366); if ((0 <= _L364) & (_L364 < 41)) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->passedPositionedBG, &outC->BGs[_L364]); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->passedPositionedBG, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } /* 3 */ if (passedBG_foundNotWhereExpected) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->errors.bg, &outC->passedPositionedBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->errors.bg, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } }
/* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex */ void deleteBG_atIndex_CalculateTrainPosition_Pkg_BG_utilities_Pkg( /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex::BGs_in */positionedBGs_T_TrainPosition_Types_Pck *BGs_in, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex::indexOfBG */kcg_int indexOfBG, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex::del */kcg_bool del, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex::BGs_out */positionedBGs_T_TrainPosition_Types_Pck *BGs_out) { static array__129125 tmp1; static kcg_bool tmp; static kcg_int i; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex::_L8 */ static kcg_bool _L8; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex::_L12 */ static array__131293 _L12; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex::_L15 */ static array__129125 _L15; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::deleteBG_atIndex::_L16 */ static kcg_int _L16; _L8 = del & (indexOfBG >= 0) & (indexOfBG < cMaxNoOfStoredBGs_TrainPosition_Types_Pck); kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &_L12[0], (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); kcg_copy_array__137060(&tmp1[0], (array__137060 *) &(*BGs_in)[1]); kcg_copy_array__131293(&tmp1[40], &_L12); if (_L8) { for (i = 0; i < 41; i++) { /* 1 */ deleteBG_atIndex_itr_CalculateTrainPosition_Pkg_BG_utilities_Pkg( i, indexOfBG, &(*BGs_in)[i], &tmp1[i], &tmp, &_L15[i]); _L16 = i + 1; if (!tmp) { break; } } } else { _L16 = 0; } #ifdef KCG_MAPW_CPY for (i = _L16; i < 41; i++) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &_L15[i], (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } #endif /* KCG_MAPW_CPY */ if (_L8) { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, &_L15); } else { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, BGs_in); } }
/* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex */ void insertBG_atIndex_CalculateTrainPosition_Pkg_BG_utilities_Pkg( /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::BG */positionedBG_T_TrainPosition_Types_Pck *BG, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::BGs_in */positionedBGs_T_TrainPosition_Types_Pck *BGs_in, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::indexOfBG */kcg_int indexOfBG, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::insert */kcg_bool insert, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::BGs_out */positionedBGs_T_TrainPosition_Types_Pck *BGs_out, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::overrun */kcg_bool *overrun) { static positionedBG_T_TrainPosition_Types_Pck tmp2; static positionedBGs_T_TrainPosition_Types_Pck tmp1; static kcg_bool tmp; static kcg_int i; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::_L12 */ static array__131293 _L12; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::_L15 */ static array__129125 _L15; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::_L16 */ static kcg_int _L16; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::insertBG_atIndex::_L34 */ static kcg_bool _L34; if ((0 <= indexOfBG) & (indexOfBG < 41)) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &tmp2, &(*BGs_in)[indexOfBG]); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &tmp2, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } tmp = /* 1 */ positionedBGs_ids_equal_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &tmp2, BG); *overrun = !tmp & (*BGs_in)[40].valid; _L34 = insert & (indexOfBG >= 0) & (indexOfBG < cMaxNoOfStoredBGs_TrainPosition_Types_Pck) & (*BG).valid & !*overrun; kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &_L12[0], (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); if (tmp) { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(&tmp1, BGs_in); } else { kcg_copy_array__131293(&tmp1[0], &_L12); kcg_copy_array__137060(&tmp1[1], (array__137060 *) &(*BGs_in)[0]); } if (_L34) { for (i = 0; i < 41; i++) { /* 1 */ insertBG_atIndex_itr_CalculateTrainPosition_Pkg_BG_utilities_Pkg( i, indexOfBG, BG, &(*BGs_in)[i], &tmp1[i], &tmp, &_L15[i]); _L16 = i + 1; if (!tmp) { break; } } } else { _L16 = 0; } #ifdef KCG_MAPW_CPY for (i = _L16; i < 41; i++) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &_L15[i], (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } #endif /* KCG_MAPW_CPY */ if (_L34) { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, &_L15); } else { kcg_copy_positionedBGs_T_TrainPosition_Types_Pck(BGs_out, BGs_in); } }