예제 #1
0
/* 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);
}
예제 #5
0
/* 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;
}