/* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack */ void indexOfBG_onTrack_CalculateTrainPosition_Pkg_BG_utilities_Pkg( /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack::BG */ positionedBG_T_TrainPosition_Types_Pck *BG, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack::BGs */ positionedBGs_T_TrainPosition_Types_Pck *BGs, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack::enable */ kcg_bool enable, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack::indexOfBG */ kcg_int *indexOfBG, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack::BG_found */ kcg_bool *BG_found, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack::indexValid */ kcg_bool *indexValid) { /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack */ static kcg_int acc; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack */ static kcg_bool cond_iterw; static kcg_int i; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_onTrack */ static positionedBG_T_TrainPosition_Types_Pck tmp; *indexOfBG = cNoValidIndex_CalculateTrainPosition_Pkg; if (enable) { for (i = 0; i < 41; i++) { acc = *indexOfBG; /* 1 */ indexOfBG_onTrack_itr_CalculateTrainPosition_Pkg_BG_utilities_Pkg( i, acc, BG, &(*BGs)[i], &cond_iterw, indexOfBG); if (!cond_iterw) { break; } } } *indexValid = *indexOfBG != cNoValidIndex_CalculateTrainPosition_Pkg; if ((0 <= *indexOfBG) & (*indexOfBG < 41)) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&tmp, &(*BGs)[*indexOfBG]); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &tmp, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } *BG_found = *indexValid & /* 1 */ positionedBGs_ids_equal_CalculateTrainPosition_Pkg_BG_utilities_Pkg( BG, &tmp); }
/* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_by_id_itr */ void indexOfBG_by_id_itr_CalculateTrainPosition_Pkg_BG_utilities_Pkg( /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_by_id_itr::iteratorIndex */ kcg_int iteratorIndex, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_by_id_itr::prevIndex */ kcg_int prevIndex, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_by_id_itr::BG */ positionedBG_T_TrainPosition_Types_Pck *BG, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_by_id_itr::BG_asElementFromBGs */ positionedBG_T_TrainPosition_Types_Pck *BG_asElementFromBGs, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_by_id_itr::cont */ kcg_bool *cont, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_by_id_itr::indexOfBG */ kcg_int *indexOfBG) { /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::indexOfBG_by_id_itr::_L6 */ kcg_bool _L6; _L6 = /* 1 */ positionedBGs_ids_equal_CalculateTrainPosition_Pkg_BG_utilities_Pkg( BG, BG_asElementFromBGs); if (_L6) { *indexOfBG = iteratorIndex; } else { *indexOfBG = prevIndex; } *cont = !_L6; }
/* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr */ void recalculate_BG_locations_ahead_itr_CalculateTrainPosition_Pkg_BG_relocation_Pkg( /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::refBGs_in */ refBGs_T_CalculateTrainPosition_Pkg_BG_relocation_Pkg *refBGs_in, /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::BG_in */ positionedBG_T_TrainPosition_Types_Pck *BG_in, /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::trainProperties */ trainProperties_T_TrainPosition_Types_Pck *trainProperties, /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::refBGs_out */ refBGs_T_CalculateTrainPosition_Pkg_BG_relocation_Pkg *refBGs_out, /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::BG_out */ positionedBG_T_TrainPosition_Types_Pck *BG_out) { /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr */ LocWithInAcc_T_Obu_BasicTypes_Pkg tmp1; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr */ positionedBG_T_TrainPosition_Types_Pck tmp; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::BGin_is_refBG */ kcg_bool BGin_is_refBG; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::refLocation */ LocWithInAcc_T_Obu_BasicTypes_Pkg refLocation; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::refBG */ positionedBG_T_TrainPosition_Types_Pck refBG; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::relocatedBG */ positionedBG_T_TrainPosition_Types_Pck relocatedBG; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::sumOfBestDistances */ LocWithInAcc_T_Obu_BasicTypes_Pkg sumOfBestDistances; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::_L96 */ kcg_bool _L96; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::_L106 */ kcg_bool _L106; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::_L137 */ kcg_bool _L137; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_ahead_itr::_L302 */ LocWithInAcc_T_Obu_BasicTypes_Pkg _L302; BGin_is_refBG = /* 3 */ positionedBGs_ids_equal_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &(*refBGs_in).refBG, BG_in); (*refBGs_out).recalculate = BGin_is_refBG | ((*refBGs_in).recalculate & (*BG_in).valid); /* calculateLocalBGInaccuracies */ calculateLocalBGInaccuracies_CalculateTrainPosition_Pkg_BG_relocation_Pkg( BG_in, trainProperties, &refLocation); kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &_L302, (LocWithInAcc_T_Obu_BasicTypes_Pkg *) &cLocWithInAcc_0_Obu_BasicTypes_Pkg); _L302.nominal = (*BG_in).location.nominal; /* 6 */ add_2_Distances_BasicLocationFunctions_Pkg(&refLocation, &_L302, &tmp1); /* 1 */ overlapOf_2_Locations_BasicLocationFunctions_Pkg( &tmp1, &(*BG_in).location, &_L302, &_L106); /* 14 */ if (BGin_is_refBG) { /* 31 */ if (_L106) { kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg(&refLocation, &_L302); } else { kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &refLocation, &(*BG_in).location); } } else { kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &refLocation, &(*BG_in).location); } kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &relocatedBG, &(*refBGs_in).refBG); kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &relocatedBG.location, &refLocation); /* 24 */ if (BGin_is_refBG) { /* 25 */ if ((*refBGs_in).refBG.valid & (*refBGs_in).refBG.infoFromLinking.valid) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&refBG, &relocatedBG); kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &refBG.infoFromLinking.expectedLocation, &refLocation); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&refBG, &relocatedBG); } } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &refBG, &(*refBGs_in).refBG); } kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&(*refBGs_out).refBG, &refBG); _L106 = Q_LINK_Linked == refBG.q_link; _L96 = BGin_is_refBG & !_L106 & refBG.infoFromPassing.valid & (*refBGs_in).prevLinkedBG.valid & (*refBGs_in).prevLinkedBG.infoFromPassing.valid; /* 2 */ sub_2_odoDistances_BasicLocationFunctions_Pkg( &refBG.infoFromPassing.BG_Header.bgPosition.odo, &(*refBGs_in).prevLinkedBG.infoFromPassing.BG_Header.bgPosition.odo, &tmp1); /* 9 */ add_2_Distances_BasicLocationFunctions_Pkg( &tmp1, &(*refBGs_in).prevLinkedBG.infoFromPassing.BG_Header.BG_centerDetectionInaccuraccuracies, &_L302); /* 27 */ if (BGin_is_refBG & (*BG_in).valid) { /* 30 */ if (_L96) { kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg(&tmp1, &_L302); } else { kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &tmp1, (LocWithInAcc_T_Obu_BasicTypes_Pkg *) &cLocWithInAcc_0_Obu_BasicTypes_Pkg); } /* 4 */ sub_2_distances_BasicLocationFunctions_Pkg( (LocWithInAcc_T_Obu_BasicTypes_Pkg *) &cLocWithInAcc_0_Obu_BasicTypes_Pkg, &tmp1, &sumOfBestDistances); } else /* 28 */ if ((*BG_in).valid & (*BG_in).infoFromLinking.valid) { /* 7 */ add_2_Distances_BasicLocationFunctions_Pkg( &(*BG_in).infoFromLinking.d_link, &(*refBGs_in).sumOfBestDistances, &sumOfBestDistances); } else /* 29 */ if ((*BG_in).valid & ((*BG_in).q_link == Q_LINK_Linked) & (*BG_in).infoFromPassing.valid & (*refBGs_in).prevLinkedBG.valid & (*refBGs_in).prevLinkedBG.infoFromPassing.valid) { /* 4 */ sub_2_odoDistances_BasicLocationFunctions_Pkg( &(*BG_in).infoFromPassing.BG_Header.bgPosition.odo, &(*refBGs_in).prevLinkedBG.infoFromPassing.BG_Header.bgPosition.odo, &refLocation); /* 8 */ add_2_Distances_BasicLocationFunctions_Pkg( &refLocation, &(*refBGs_in).sumOfBestDistances, &sumOfBestDistances); } else { kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &sumOfBestDistances, &(*refBGs_in).sumOfBestDistances); } kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &(*refBGs_out).sumOfBestDistances, &sumOfBestDistances); /* 23 */ if ((*refBGs_in).recalculate) { /* 1 */ recalculate_BG_location_ahead_CalculateTrainPosition_Pkg_BG_relocation_Pkg( BG_in, &(*refBGs_in).prevLinkedBG, &(*refBGs_in).refBG, &sumOfBestDistances, trainProperties, &relocatedBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&relocatedBG, BG_in); } _L137 = Q_LINK_Unlinked == refBG.q_link; /* 17 */ if (BGin_is_refBG & _L106) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&tmp, &refBG); } else /* 18 */ if (_L96) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &tmp, &(*refBGs_in).prevLinkedBG); /* 2 */ sub_2_distances_BasicLocationFunctions_Pkg( &refBG.location, &_L302, &tmp.location); } else /* 19 */ if (Q_LINK_Linked == relocatedBG.q_link) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&tmp, &relocatedBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &tmp, &(*refBGs_in).prevLinkedBG); } kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevLinkedBG, &tmp); /* 20 */ if (BGin_is_refBG & _L137) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&tmp, &refBG); } else /* 21 */ if (BGin_is_refBG & !_L137 & refBG.infoFromPassing.valid & (*refBGs_in).prevUnlinkedBG.valid & (*refBGs_in).prevUnlinkedBG.infoFromPassing.valid) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &tmp, &(*refBGs_in).prevUnlinkedBG); /* 3 */ sub_2_odoDistances_BasicLocationFunctions_Pkg( &refBG.infoFromPassing.BG_Header.bgPosition.odo, &(*refBGs_in).prevUnlinkedBG.infoFromPassing.BG_Header.bgPosition.odo, &refLocation); /* 12 */ add_2_Distances_BasicLocationFunctions_Pkg( &refLocation, &(*refBGs_in).prevUnlinkedBG.infoFromPassing.BG_Header.BG_centerDetectionInaccuraccuracies, &tmp1); /* 3 */ sub_2_distances_BasicLocationFunctions_Pkg( &refBG.location, &tmp1, &tmp.location); } else /* 22 */ if (Q_LINK_Unlinked == relocatedBG.q_link) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&tmp, &relocatedBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &tmp, &(*refBGs_in).prevUnlinkedBG); } kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevUnlinkedBG, &tmp); /* 26 */ if (BGin_is_refBG) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(BG_out, &refBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(BG_out, &relocatedBG); } }
/* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr */ void recalculate_BG_locations_astern_itr_CalculateTrainPosition_Pkg_BG_relocation_Pkg( /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::refBGs_in */ refBGs_T_CalculateTrainPosition_Pkg_BG_relocation_Pkg *refBGs_in, /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::BG_in */ positionedBG_T_TrainPosition_Types_Pck *BG_in, /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::trainProperties */ trainProperties_T_TrainPosition_Types_Pck *trainProperties, /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::refBGs_out */ refBGs_T_CalculateTrainPosition_Pkg_BG_relocation_Pkg *refBGs_out, /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::BG_out */ positionedBG_T_TrainPosition_Types_Pck *BG_out) { /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr */ static LocWithInAcc_T_Obu_BasicTypes_Pkg tmp1; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr */ static LocWithInAcc_T_Obu_BasicTypes_Pkg tmp; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::BGin_is_refBG */ static kcg_bool BGin_is_refBG; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::refBG */ static positionedBG_T_TrainPosition_Types_Pck refBG; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::relocatedBG */ static positionedBG_T_TrainPosition_Types_Pck relocatedBG; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::sumOfBestDistances */ static LocWithInAcc_T_Obu_BasicTypes_Pkg sumOfBestDistances; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::_L106 */ static kcg_bool _L106; /* CalculateTrainPosition_Pkg::BG_relocation_Pkg::recalculate_BG_locations_astern_itr::_L137 */ static kcg_bool _L137; BGin_is_refBG = /* 1 */ positionedBGs_ids_equal_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &(*refBGs_in).refBG, BG_in); (*refBGs_out).recalculate = BGin_is_refBG | ((*refBGs_in).recalculate & (*BG_in).valid); /* 13 */ if (BGin_is_refBG) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&refBG, BG_in); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &refBG, &(*refBGs_in).refBG); } kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&(*refBGs_out).refBG, &refBG); _L106 = Q_LINK_Linked == refBG.q_link; _L137 = (*BG_in).valid & ((*BG_in).q_link == Q_LINK_Linked); /* 16 */ if (BGin_is_refBG) { kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &sumOfBestDistances, (LocWithInAcc_T_Obu_BasicTypes_Pkg *) &cLocWithInAcc_0_Obu_BasicTypes_Pkg); } else /* 17 */ if (!(*refBGs_in).prevLinkedBG.valid & (*refBGs_in).refBG.valid & ((*refBGs_in).refBG.q_link == Q_LINK_Unlinked) & (*refBGs_in).refBG.infoFromPassing.valid & (*BG_in).infoFromPassing.valid & _L137) { /* 2 */ sub_2_odoDistances_BasicLocationFunctions_Pkg( &(*refBGs_in).refBG.infoFromPassing.BG_Header.bgPosition.odo, &(*BG_in).infoFromPassing.BG_Header.bgPosition.odo, &tmp1); /* 3 */ sub_2_distances_BasicLocationFunctions_Pkg( &(*refBGs_in).sumOfBestDistances, &tmp1, &sumOfBestDistances); } else /* 14 */ if (_L137 & (*refBGs_in).prevLinkedBG.valid & (*refBGs_in).prevLinkedBG.infoFromLinking.valid) { /* 1 */ sub_2_distances_BasicLocationFunctions_Pkg( &(*refBGs_in).sumOfBestDistances, &(*refBGs_in).prevLinkedBG.infoFromLinking.d_link, &sumOfBestDistances); } else /* 15 */ if (_L137 & (*refBGs_in).prevLinkedBG.valid & !(*refBGs_in).prevLinkedBG.infoFromLinking.valid & (*refBGs_in).prevLinkedBG.infoFromPassing.valid & (*BG_in).infoFromPassing.valid) { /* 1 */ sub_2_odoDistances_BasicLocationFunctions_Pkg( &(*refBGs_in).prevLinkedBG.infoFromPassing.BG_Header.bgPosition.odo, &(*BG_in).infoFromPassing.BG_Header.bgPosition.odo, &tmp); /* 2 */ sub_2_distances_BasicLocationFunctions_Pkg( &(*refBGs_in).sumOfBestDistances, &tmp, &sumOfBestDistances); } else { kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &sumOfBestDistances, &(*refBGs_in).sumOfBestDistances); } kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg( &(*refBGs_out).sumOfBestDistances, &sumOfBestDistances); /* 9 */ if ((*refBGs_in).recalculate) { /* 1 */ recalculate_BG_location_astern_CalculateTrainPosition_Pkg_BG_relocation_Pkg( BG_in, &(*refBGs_in).prevLinkedBG, &(*refBGs_in).refBG, &sumOfBestDistances, trainProperties, &relocatedBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&relocatedBG, BG_in); } _L137 = Q_LINK_Unlinked == refBG.q_link; /* 3 */ if (BGin_is_refBG & _L106) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevLinkedBG, &refBG); } else /* 4 */ if (BGin_is_refBG & !_L106) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevLinkedBG, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } else /* 5 */ if (Q_LINK_Linked == relocatedBG.q_link) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevLinkedBG, &relocatedBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevLinkedBG, &(*refBGs_in).prevLinkedBG); } /* 8 */ if (BGin_is_refBG & _L137) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevUnlinkedBG, &refBG); } else /* 7 */ if (BGin_is_refBG & !_L137) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevUnlinkedBG, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } else /* 6 */ if (Q_LINK_Unlinked == relocatedBG.q_link) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevUnlinkedBG, &relocatedBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &(*refBGs_out).prevUnlinkedBG, &(*refBGs_in).prevUnlinkedBG); } /* 12 */ if (BGin_is_refBG) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(BG_out, &refBG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(BG_out, &relocatedBG); } }
/* 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); } }
/* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG */ void lastAndPrevBG_CalculateTrainPosition_Pkg_BG_utilities_Pkg( /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::BG */ positionedBG_T_TrainPosition_Types_Pck *BG, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::BGs */ positionedBGs_T_TrainPosition_Types_Pck *BGs, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::linked */ kcg_bool linked, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::reset */ kcg_bool reset, /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::enable */ kcg_bool enable, outC_lastAndPrevBG_CalculateTrainPosition_Pkg_BG_utilities_Pkg *outC) { /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG */ static Q_LINK tmp; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::_L10 */ static positionedBG_T_TrainPosition_Types_Pck _L10; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::_L17 */ static positionedBG_T_TrainPosition_Types_Pck _L17; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::_L23 */ static kcg_bool _L23; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::_L22 */ static kcg_bool _L22; /* CalculateTrainPosition_Pkg::BG_utilities_Pkg::lastAndPrevBG::_L21 */ static kcg_int _L21; /* last_init_ck_storedBG_loc */ if (outC->init) { outC->init = kcg_false; kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &_L10, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &_L17, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&_L10, &outC->prvBG_loc); kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&_L17, &outC->lastBG); } /* 1 */ if (reset) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->lastBG, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->prvBG_loc, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } else { /* 2 */ if (linked) { tmp = Q_LINK_Linked; } else { tmp = Q_LINK_Unlinked; } /* 4 */ if ((*BG).valid & (*BG).infoFromPassing.valid & (*BG).infoFromPassing.BG_Header.valid & ((*BG).q_link == tmp)) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&outC->lastBG, BG); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&outC->lastBG, &_L17); } _L23 = /* 1 */ positionedBGs_ids_equal_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &outC->lastBG, &_L10); _L22 = /* 2 */ positionedBGs_ids_equal_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &outC->lastBG, &_L17); /* 4 */ if (!kcg_comp_positionedBG_T_TrainPosition_Types_Pck( &_L17, &outC->lastBG) & outC->lastBG.valid & !_L23 & !_L22) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&outC->prvBG_loc, &_L17); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck(&outC->prvBG_loc, &_L10); } } /* 1 */ indexOfBG_by_id_CalculateTrainPosition_Pkg_BG_utilities_Pkg( &outC->prvBG_loc, BGs, enable, &_L21, &_L22, &_L23); /* 1 */ if (_L22) { if ((0 <= _L21) & (_L21 < 41)) { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->prvBG, &(*BGs)[_L21]); } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->prvBG, (positionedBG_T_TrainPosition_Types_Pck *) &cNoPositionedBG_CalculateTrainPosition_Pkg); } } else { kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &outC->prvBG, &outC->prvBG_loc); } }