/* TA_MA::Build_MA */ void Build_MA_TA_MA( /* TA_MA::Build_MA::MessageIn */ReceivedMessage_T_Common_Types_Pkg *MessageIn, /* TA_MA::Build_MA::NV_onboard_in */P003V1_OBU_T_TM_baseline2 *NV_onboard_in, outC_Build_MA_TA_MA *outC) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->_L5, MessageIn); kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L6, &outC->_L5.packets); /* 1 */ StoreRaw_MA_TA_MA(&outC->_L6, &outC->Context_1); outC->_L2 = outC->Context_1.vald_MA; outC->_L4 = outC->Context_1.new_MA; kcg_copy_P015_OBU_T_TM(&outC->_L3, &outC->Context_1.MA_onboard_out); kcg_copy_P003V1_OBU_T_TM_baseline2(&outC->_L7, NV_onboard_in); /* 1 */ Decode_P015_TA_MA(&outC->_L3, &outC->_L7, &outC->_1_Context_1); kcg_copy_MovementAuthority_t_TrackAtlasTypes( &outC->_L1, &outC->_1_Context_1.MA_decoded_out); kcg_copy_MovementAuthority_t_TrackAtlasTypes( &outC->MA_onboard_out, &outC->_L1); outC->new_MA = outC->_L4; outC->vald_MA = outC->_L2; }
/* TA_MA::MA_L23_Postprocessing */ void MA_L23_Postprocessing_TA_MA( /* TA_MA::MA_L23_Postprocessing::Profile_in */ MovementAuthority_t_TrackAtlasTypes *Profile_in, /* TA_MA::MA_L23_Postprocessing::pos_LRBG */ L_internal_Type_Obu_BasicTypes_Pkg pos_LRBG, outC_MA_L23_Postprocessing_TA_MA *outC) { /* 1 */ Update_MA_TA_MA(Profile_in, &outC->Context_1); kcg_copy_MovementAuthority_t_TrackAtlasTypes( &outC->MA_absolute, &outC->Context_1.MA_in_force); /* 1 */ MA_Normalize_MA_LRBG_TA_MA(&outC->MA_absolute, pos_LRBG, &outC->MA_at_LRBG); outC->MA_available = outC->MA_absolute.valid; }
/* TA_Lib_internal::MoveMAAbsolute_new */ void MoveMAAbsolute_new_TA_Lib_internal( /* TA_Lib_internal::MoveMAAbsolute_new::ProfileIn */ MovementAuthority_t_TrackAtlasTypes *ProfileIn, /* TA_Lib_internal::MoveMAAbsolute_new::pos_LRBG */ L_internal_Type_Obu_BasicTypes_Pkg pos_LRBG, /* TA_Lib_internal::MoveMAAbsolute_new::ProfileOut */ MovementAuthority_t_TrackAtlasTypes *ProfileOut) { /* TA_Lib_internal::MoveMAAbsolute_new */ static MovementAuthoritySectionlist_t_TrackAtlasTypes acc; static kcg_int i; kcg_copy_MovementAuthority_t_TrackAtlasTypes(ProfileOut, ProfileIn); /* ck__L124 */ if ((*ProfileIn).q_dangerpoint) { /* 1 */ Move_DP_or_OL_new_TA_Lib_internal( &(*ProfileIn).dangerpoint, pos_LRBG, &(*ProfileOut).dangerpoint); } else { kcg_copy_DP_or_OL_t_TrackAtlasTypes( &(*ProfileOut).dangerpoint, (DP_or_OL_t_TrackAtlasTypes *) &DEFAULT_DP_TrackAtlasTypes); } /* ck__L123 */ if ((*ProfileIn).q_overlap) { /* 2 */ Move_DP_or_OL_new_TA_Lib_internal( &(*ProfileIn).overlap, pos_LRBG, &(*ProfileOut).overlap); } else { kcg_copy_DP_or_OL_t_TrackAtlasTypes( &(*ProfileOut).overlap, (DP_or_OL_t_TrackAtlasTypes *) &DEFAULT_OL_TrackAtlasTypes); } kcg_copy_MovementAuthoritySectionlist_t_TrackAtlasTypes( &(*ProfileOut).sections, &(*ProfileIn).sections); /* 1 */ for (i = 0; i < 10; i++) { kcg_copy_MovementAuthoritySectionlist_t_TrackAtlasTypes( &acc, &(*ProfileOut).sections); /* 1 */ MoveMAAbsolute_Loop_new_TA_Lib_internal( i, &acc, pos_LRBG, &(*ProfileOut).sections); } }
/* TA_MA::MA_Normalize_MA_LRBG */ void MA_Normalize_MA_LRBG_TA_MA( /* TA_MA::MA_Normalize_MA_LRBG::ProfileIn */ MovementAuthority_t_TrackAtlasTypes *ProfileIn, /* TA_MA::MA_Normalize_MA_LRBG::pos_BG */ L_internal_Type_Obu_BasicTypes_Pkg pos_BG, /* TA_MA::MA_Normalize_MA_LRBG::ProfileNormalized_LRBG */ MovementAuthority_t_TrackAtlasTypes *ProfileNormalized_LRBG) { /* TA_MA::MA_Normalize_MA_LRBG */ static MovementAuthoritySectionlist_t_TrackAtlasTypes acc; static kcg_int i; /* TA_MA::MA_Normalize_MA_LRBG::_L36 */ static DP_or_OL_t_TrackAtlasTypes _L36; /* TA_MA::MA_Normalize_MA_LRBG::_L35 */ static DP_or_OL_t_TrackAtlasTypes _L35; /* 1 */ Normalize_DP_and_OL_LRBG_TA_MA(pos_BG, ProfileIn, &_L35, &_L36); kcg_copy_MovementAuthority_t_TrackAtlasTypes( ProfileNormalized_LRBG, ProfileIn); kcg_copy_MovementAuthoritySectionlist_t_TrackAtlasTypes( &(*ProfileNormalized_LRBG).sections, &(*ProfileIn).sections); /* 1 */ for (i = 0; i < 50; i++) { kcg_copy_MovementAuthoritySectionlist_t_TrackAtlasTypes( &acc, &(*ProfileNormalized_LRBG).sections); /* 1 */ MA_Normalize_Sections_loop_TA_MA( i, &acc, pos_BG, &(*ProfileNormalized_LRBG).sections); } kcg_copy_DP_or_OL_t_TrackAtlasTypes( &(*ProfileNormalized_LRBG).dangerpoint, &_L35); kcg_copy_DP_or_OL_t_TrackAtlasTypes( &(*ProfileNormalized_LRBG).overlap, &_L36); }
/* TA_MA::Build_MA_L23 */ void Build_MA_L23_TA_MA( /* TA_MA::Build_MA_L23::reset */ kcg_bool reset, /* TA_MA::Build_MA_L23::MessageIn */ ReceivedMessage_T_Common_Types_Pkg *MessageIn, /* TA_MA::Build_MA_L23::NV_in */ P003V1_OBU_T_TM_baseline2 *NV_in, /* TA_MA::Build_MA_L23::train_position */ trainPosition_T_TrainPosition_Types_Pck *train_position, /* TA_MA::Build_MA_L23::reject_new_MA */ kcg_bool reject_new_MA, /* TA_MA::Build_MA_L23::updatedEOA_from_EM */ kcg_bool updatedEOA_from_EM, /* TA_MA::Build_MA_L23::newEOA_from_EM */ L_internal_Type_Obu_BasicTypes_Pkg newEOA_from_EM, outC_Build_MA_L23_TA_MA *outC) { /* TA_MA::Build_MA_L23::_L60 */ static P015_OBU_T_TM _L60; /* TA_MA::Build_MA_L23::_L108 */ static kcg_int _L108; /* TA_MA::Build_MA_L23::_L240 */ static kcg_bool _L240; /* TA_MA::Build_MA_L23::_L252 */ static kcg_int _L252; /* TA_MA::Build_MA_L23::_L253 */ static kcg_bool _L253; /* 1 */ Read_P015_TM(&(*MessageIn).packets, &outC->updated, &_L60); /* fby_1_init_1 */ if (outC->init) { _L252 = 0; } else { _L252 = outC->rem__L111; } _L240 = outC->updated | (_L252 != (*train_position).LRBG.nid_bg); /* 1 */ Eval_LRBG_TA_Lib_internal(MessageIn, &_L253, &_L252, &_L108); /* ck_updated */ if (outC->updated) { /* 1 */ MA_L23_Preprocessing_TA_MA( &_L60, reset, (kcg_bool) (_L108 == (*train_position).LRBG.nid_bg), (kcg_bool) (_L108 == (*train_position).prvLRBG.nid_bg), (*train_position).LRBG.location.nominal, (*train_position).prvLRBG.location.nominal, NV_in, &outC->_L237); } else if (outC->init) { kcg_copy_MovementAuthority_t_TrackAtlasTypes( &outC->_L237, (MovementAuthority_t_TrackAtlasTypes *) &DEFAULT_MovementAuthority_TrackAtlasTypes); } /* ck__L240 */ if (_L240) { /* 1 */ MA_L23_Postprocessing_TA_MA( &outC->_L237, (*train_position).LRBG.location.nominal, &outC->Context_1); outC->available = outC->Context_1.MA_available; kcg_copy_MovementAuthority_t_TrackAtlasTypes( &outC->MA_absolute, &outC->Context_1.MA_absolute); } else if (outC->init) { outC->available = kcg_false; kcg_copy_MovementAuthority_t_TrackAtlasTypes( &outC->MA_absolute, (MovementAuthority_t_TrackAtlasTypes *) &DEFAULT_MovementAuthority_TrackAtlasTypes); } outC->init = kcg_false; outC->currentEOA = 0; outC->rem__L111 = (*train_position).LRBG.nid_bg; }