/* TM_conversions::C_P139_compr_onboard */
void C_P139_compr_onboard_TM_conversions(
  /* TM_conversions::C_P139_compr_onboard::PacketData */ CompressedPacketData_T_Common_Types_Pkg *PacketData,
  /* TM_conversions::C_P139_compr_onboard::Metadata_Element */ MetadataElement_T_Common_Types_Pkg *Metadata_Element,
  /* TM_conversions::C_P139_compr_onboard::P139_onboard */ P139_OBU_T_TM *P139_onboard)
{
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else */ kcg_bool _2_else_clock_1_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1 */ kcg_bool IfBlock1_clock_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else::else */ kcg_bool else_clock_1_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else */ kcg_bool _1_else_clock_1_IfBlock1;
  /* TM_conversions::C_P139_compr_onboard::_L45 */ array_int_6 _L45;
  
  kcg_copy_array_int_6(&_L45, (array_int_6 *) &(*PacketData)[0]);
  (*P139_onboard).valid = _L45[0] == 139;
  else_clock_1_IfBlock1 = _L45[1] == INT_Q_DIR_nomiinal_TM_conversions;
  IfBlock1_clock_1 = _L45[3] == INT_Q_SCALE_10cm_TM_conversions;
  /* 1_ck_IfBlock1 */ if (else_clock_1_IfBlock1) {
    (*P139_onboard).q_dir = ENUM_Q_DIR_nominal_TM_conversions;
  }
  else {
    _2_else_clock_1_IfBlock1 = _L45[1] == INT_Q_DIR_reverse_TM_conversions;
    /* 1_ck_anon_activ */ if (_2_else_clock_1_IfBlock1) {
      (*P139_onboard).q_dir = ENUM_Q_DIR_reverse_TM_conversions;
    }
    else {
      _1_else_clock_1_IfBlock1 = _L45[1] == INT_Q_DIR_both_TM_conversions;
      /* 1_ck_anon_activ */ if (_1_else_clock_1_IfBlock1) {
        (*P139_onboard).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
      else {
        (*P139_onboard).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
    }
  }
  /* 1_ck_IfBlock1 */ if (IfBlock1_clock_1) {
    (*P139_onboard).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
  }
  else {
    _1_else_clock_1_IfBlock1 = _L45[3] == INT_Q_SCALE_1m_TM_conversions;
    /* 1_ck_anon_activ */ if (_1_else_clock_1_IfBlock1) {
      (*P139_onboard).q_scale = ENUM_Q_SCALE_1m_TM_conversions;
    }
    else {
      else_clock_1_IfBlock1 = _L45[3] == INT_Q_SCALE_10m_TM_conversions;
      /* 1_ck_anon_activ */ if (else_clock_1_IfBlock1) {
        (*P139_onboard).q_scale = ENUM_Q_SCALE_10m_TM_conversions;
      }
      else {
        (*P139_onboard).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
      }
    }
  }
  (*P139_onboard).d_reverse = /* 1 */
    CAST_Int_to_D_REVERSE_TM_conversions(_L45[4]);
  (*P139_onboard).v_reverse = /* 1 */
    CAST_Int_to_V_REVERSE_TM_conversions(_L45[5]);
}
/* TM_conversions::C_P057_compr_onboard */
void C_P057_compr_onboard_TM_conversions(
  /* TM_conversions::C_P057_compr_onboard::PacketData */ CompressedPacketData_T_Common_Types_Pkg *PacketData,
  /* TM_conversions::C_P057_compr_onboard::Metadata_Element */ MetadataElement_T_Common_Types_Pkg *Metadata_Element,
  /* TM_conversions::C_P057_compr_onboard::P057_onboard */ P57_MovementAuthorityRequestParameters_T_Packet_Types_Pkg *P057_onboard)
{
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1 */
  static kcg_bool IfBlock1_clock_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else::else */
  static kcg_bool else_clock_1_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else */
  static kcg_bool _1_else_clock_1_IfBlock1;
  /* TM_conversions::C_P057_compr_onboard::_L34 */
  static array_int_6 _L34;
  
  kcg_copy_array_int_6(&_L34, (array_int_6 *) &(*PacketData)[0]);
  (*P057_onboard).valid = _L34[0] == 57;
  IfBlock1_clock_1 = _L34[1] == INT_Q_DIR_nomiinal_TM_conversions;
  /* 1_ck_IfBlock1 */ if (IfBlock1_clock_1) {
    (*P057_onboard).q_dir = ENUM_Q_DIR_nominal_TM_conversions;
  }
  else {
    _1_else_clock_1_IfBlock1 = _L34[1] == INT_Q_DIR_reverse_TM_conversions;
    /* 1_ck_anon_activ */ if (_1_else_clock_1_IfBlock1) {
      (*P057_onboard).q_dir = ENUM_Q_DIR_reverse_TM_conversions;
    }
    else {
      else_clock_1_IfBlock1 = _L34[1] == INT_Q_DIR_both_TM_conversions;
      /* 1_ck_anon_activ */ if (else_clock_1_IfBlock1) {
        (*P057_onboard).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
      else {
        (*P057_onboard).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
    }
  }
  (*P057_onboard).t_mar = /* 1 */ CAST_Int_to_T_MAR_TM_conversions(_L34[3]);
  (*P057_onboard).t_timeoutrqst = /* 1 */
    CAST_Int_to_T_TIMEOUTRQST_TM_conversions(_L34[4]);
  (*P057_onboard).t_cycrqst = /* 1 */
    CAST_Int_to_T_CYCRQST_TM_conversions(_L34[5]);
}
/* SDMConversionModelPkg::A_brake_safe */
void A_brake_safe_SDMConversionModelPkg(
  /* SDMConversionModelPkg::A_brake_safe::aBrake */ a_Brake_t_SDMConversionModelPkg *aBrake,
  /* SDMConversionModelPkg::A_brake_safe::trainData */ trainData_T_TIU_Types_Pkg *trainData,
  /* SDMConversionModelPkg::A_brake_safe::NationalValues */ P3_NationalValues_T_Packet_Types_Pkg *NationalValues,
  /* SDMConversionModelPkg::A_brake_safe::aBrakeSafe_cm */ av_MergedMap_t_SDMConversionModelPkg *aBrakeSafe_cm)
{
  /* SDMConversionModelPkg::A_brake_safe */ av_Map_t_SDMConversionModelPkg mk_struct;
  /* SDMConversionModelPkg::A_brake_safe */ kcg_int tmp1;
  /* SDMConversionModelPkg::A_brake_safe */ kcg_int acc;
  /* SDMConversionModelPkg::A_brake_safe */ array_int_6 tmp;
  kcg_int i;
  /* SDMConversionModelPkg::A_brake_safe::_L10 */ kcg_int _L10;
  
  _L10 = /* 1 */ Kr_intLookUp_SDMConversionModelPkg(NationalValues, trainData);
  tmp1 = 0;
  /* 2 */ for (i = 0; i < 6; i++) {
    acc = tmp1;
    /* 2 */ if (acc >= (*aBrake).emergency.a[i]) {
      tmp1 = acc;
    }
    else {
      tmp1 = (*aBrake).emergency.a[i];
    }
    tmp[i] = _L10 * (*aBrake).emergency.a[i] / 100;
  }
  kcg_copy_array_int_6(&mk_struct.a, &tmp);
  kcg_copy_v_BrakeSteps_t_SDMConversionModelPkg(
    &mk_struct.v,
    &(*aBrake).emergency.v);
  /* 1 */
  Kv_intConstructor_SDMConversionModelPkg(
    trainData,
    NationalValues,
    tmp1,
    &mk_struct,
    aBrakeSafe_cm);
}
/* TM_conversions_baseline2::C_P003V1_tracksim_compr */
void C_P003V1_tracksim_compr_TM_conversions_baseline2(
  /* TM_conversions_baseline2::C_P003V1_tracksim_compr::P003V1_from_track */P003V1_trackside_int_T_TM_baseline2 *P003V1_from_track,
  outC_C_P003V1_tracksim_compr_TM_conversions_baseline2 *outC)
{
  kcg_int i;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _10_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _8_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _5_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _4_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _3_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _2_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _1_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool error_1;
  kcg_bool noname_1;
  
  kcg_copy_P003V1_trackside_int_T_TM_baseline2(&outC->_L1, P003V1_from_track);
  outC->_L404 = outC->_L1.Q_NVDRIVER_ADHES;
  outC->_L403 = outC->_L1.D_NVSTFF;
  outC->_L402 = outC->_L1.M_NVDERUN;
  outC->_L401 = outC->_L1.T_NVCONTACT;
  outC->_L400 = outC->_L1.M_NVCONTACT;
  outC->_L399 = outC->_L1.D_NVPOTRP;
  outC->_L398 = outC->_L1.T_NVOVTRP;
  outC->_L397 = outC->_L1.D_NVOVTRP;
  outC->_L396 = outC->_L1.V_NVSUPOVTRP;
  outC->_L395 = outC->_L1.V_NVALLOWOVTRP;
  outC->_L409 = outC->_L1.Q_NVEMRRLS;
  outC->_L394 = outC->_L1.Q_NVSRBKTRG;
  outC->_L393 = outC->_L1.D_NVROLL;
  outC->_L392 = outC->_L1.V_NVREL;
  outC->_L391 = outC->_L1.V_NVUNFIT;
  outC->_L390 = outC->_L1.V_NVONSIGHT;
  outC->_L389 = outC->_L1.V_NVSTFF;
  outC->_L388 = outC->_L1.V_NVSHUNT;
  kcg_copy_P003V1_trackide_sectionlist_T_TM_baseline2(
    &outC->_L365,
    &outC->_L1.SECTIONS);
  outC->_L366 = outC->_L1.N_ITER;
  outC->_L218 = outC->_L1.D_VALIDNV;
  outC->_L217 = outC->_L1.Q_SCALE;
  outC->_L216 = outC->_L1.L_PACKET;
  outC->_L215 = outC->_L1.Q_DIR;
  outC->_L387 = outC->_L1.NID_PACKET;
  /* 2 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    0,
    3,
    INT_M_VERSION_1_0_TM,
    &outC->Context_2);
  outC->_L412 = outC->Context_2.nid_packet_meta;
  kcg_copy_P003V1_trackide_sectionlist_T_TM_baseline2(
    &outC->sections,
    &outC->_L365);
  kcg_copy_P003V1_trackide_sectionlist_T_TM_baseline2(
    &outC->_L408,
    &outC->sections);
  outC->_L407[0] = outC->_L388;
  outC->_L407[1] = outC->_L389;
  outC->_L407[2] = outC->_L390;
  outC->_L407[3] = outC->_L391;
  outC->_L407[4] = outC->_L392;
  outC->_L407[5] = outC->_L393;
  outC->_L407[6] = outC->_L394;
  outC->_L407[7] = outC->_L409;
  outC->_L407[8] = outC->_L395;
  outC->_L407[9] = outC->_L396;
  outC->_L407[10] = outC->_L397;
  outC->_L407[11] = outC->_L398;
  outC->_L407[12] = outC->_L399;
  outC->_L407[13] = outC->_L400;
  outC->_L407[14] = outC->_L401;
  outC->_L407[15] = outC->_L402;
  outC->_L407[16] = outC->_L403;
  outC->_L407[17] = outC->_L404;
  outC->_L373[0] = outC->_L387;
  outC->_L373[1] = outC->_L215;
  outC->_L373[2] = outC->_L216;
  outC->_L373[3] = outC->_L217;
  outC->_L373[4] = outC->_L218;
  outC->_L373[5] = outC->_L366;
  kcg_copy_array_int_6(&outC->_L381[0], &outC->_L373);
  kcg_copy_array_int_18(&outC->_L381[6], &outC->_L407);
  kcg_copy_array_int_24(&outC->_L384[0], &outC->_L381);
  kcg_copy_P003V1_trackide_sectionlist_T_TM_baseline2(
    &outC->_L384[24],
    &outC->_L408);
  outC->_L336 = 0;
  for (i = 0; i < 444; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_56(&outC->_L383[0], &outC->_L384);
  kcg_copy_array_int_444(&outC->_L383[56], &outC->_L209);
  /* 1 */
  T_DeterminePacketSizeInt_TM_lib_internal(
    outC->_L366,
    6 + 17,
    1,
    &outC->Context_1);
  outC->_L379 = outC->Context_1.p_size;
  outC->p_size = outC->_L379;
  outC->_L378 = outC->p_size;
  outC->q_dir_int_1 = outC->_L215;
  outC->_L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_L12_1;
  outC->IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L4_13_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _10_q_dir_1 = outC->_L4_13_IfBlock1;
    outC->q_dir_1 = _10_q_dir_1;
  }
  else {
    outC->_2_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_1_IfBlock1;
      _8_q_dir_1 = q_dir_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L2_11_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _5_q_dir_1 = outC->_L2_11_IfBlock1;
        _2_q_dir_1 = _5_q_dir_1;
      }
      else {
        outC->_L2_1_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _3_q_dir_1 = outC->_L2_1_IfBlock1;
        _2_q_dir_1 = _3_q_dir_1;
      }
      _8_q_dir_1 = _2_q_dir_1;
    }
    outC->q_dir_1 = _8_q_dir_1;
  }
  outC->_L356 = outC->q_dir_1;
  outC->_L214 = outC->_L1.valid;
  outC->_L213 = 1;
  outC->_L212 = outC->_L378 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L412;
  outC->_L204.q_dir = outC->_L356;
  outC->_L204.valid = outC->_L214;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P003V1_compressed,
    &outC->_L383);
  if (outC->IfBlock1_clock_1) {
    outC->_L5_14_IfBlock1 = kcg_false;
    _9_error_1 = outC->_L5_14_IfBlock1;
    outC->error_1 = _9_error_1;
  }
  else {
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      error_1 = outC->_L5_1_IfBlock1;
      _7_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _6_error_1 = outC->_L4_1_IfBlock1;
        _1_error_1 = _6_error_1;
      }
      else {
        outC->_L1_1_IfBlock1 = kcg_true;
        _4_error_1 = outC->_L1_1_IfBlock1;
        _1_error_1 = _4_error_1;
      }
      _7_error_1 = _1_error_1;
    }
    outC->error_1 = _7_error_1;
  }
  outC->_L13_1 = outC->error_1;
  noname_1 = outC->_L13_1;
}
/* TM_conversions::C_P041_tracksim_compr */
void C_P041_tracksim_compr_TM_conversions(
  /* TM_conversions::C_P041_tracksim_compr::P041_from_track */P041_trackside_int_T_TM *P041_from_track,
  outC_C_P041_tracksim_compr_TM_conversions *outC)
{
  kcg_int i2;
  kcg_int i1;
  kcg_int i;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _12_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _11_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _10_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _8_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _7_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _5_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _4_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _3_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool error_1;
  kcg_bool noname_1;
  
  kcg_copy_P041_trackside_int_T_TM(&outC->_L1, P041_from_track);
  kcg_copy_P041_trackide_sectionlist_T_TM(&outC->_L368, &outC->_L1.SECTIONS);
  outC->_L369 = outC->_L1.N_ITER;
  outC->_L370 = outC->_L1.L_ACKLEVELTR;
  outC->_L371 = outC->_L1.NID_NTC;
  outC->_L219 = outC->_L1.M_LEVELTR;
  outC->_L218 = outC->_L1.D_LEVELTR;
  outC->_L217 = outC->_L1.Q_SCALE;
  outC->_L216 = outC->_L1.L_PACKET;
  outC->_L215 = outC->_L1.Q_DIR;
  outC->_L387 = outC->_L1.NID_PACKET;
  /* 1 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    0,
    41,
    INT_M_VERSION_2_0_TM,
    &outC->Context_1);
  outC->_L388 = outC->Context_1.nid_packet_meta;
  outC->_L375.M_LEVELTR = outC->_L219;
  outC->_L375.NID_NTC = outC->_L371;
  outC->_L375.L_ACKLEVELTR = outC->_L370;
  for (i2 = 0; i2 < 1; i2++) {
    kcg_copy_P041_section_int_T_TM(&outC->_L386[i2], &outC->_L375);
  }
  kcg_copy_array__9919(&outC->_L385[0], &outC->_L386);
  kcg_copy_P041_trackide_sectionlist_T_TM(&outC->_L385[1], &outC->_L368);
  outC->_L373[0] = outC->_L387;
  outC->_L373[1] = outC->_L215;
  outC->_L373[2] = outC->_L216;
  outC->_L373[3] = outC->_L217;
  outC->_L373[4] = outC->_L218;
  for (i1 = 0; i1 < 1; i1++) {
    outC->_L376[i1] = outC->_L369;
  }
  kcg_copy_array_int_5(&outC->_L381[0], &outC->_L373);
  kcg_copy_array_int_1(&outC->_L381[5], &outC->_L376);
  /* 1 */
  C_P041_flatten_sections_TM_lib_internal(&outC->_L385, &outC->_1_Context_1);
  kcg_copy_P041_sections_array_flat_T_TM(
    &outC->_L380,
    &outC->_1_Context_1.Flattened);
  kcg_copy_array_int_6(&outC->_L384[0], &outC->_L381);
  kcg_copy_P041_sections_array_flat_T_TM(&outC->_L384[6], &outC->_L380);
  outC->_L336 = 0;
  for (i = 0; i < 395; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_105(&outC->_L383[0], &outC->_L384);
  kcg_copy_array_int_395(&outC->_L383[105], &outC->_L209);
  /* 1 */
  T_DeterminePacketSizeInt_TM_lib_internal(
    outC->_L369,
    5 + 1 + 3,
    3,
    &outC->_2_Context_1);
  outC->_L379 = outC->_2_Context_1.p_size;
  outC->p_size = outC->_L379;
  outC->_L378 = outC->p_size;
  outC->q_dir_int_1 = outC->_L215;
  outC->_L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_L12_1;
  outC->IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L4_15_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _12_q_dir_1 = outC->_L4_15_IfBlock1;
    outC->q_dir_1 = _12_q_dir_1;
  }
  else {
    outC->_4_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_4_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_1_IfBlock1;
      _10_q_dir_1 = q_dir_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L2_13_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _7_q_dir_1 = outC->_L2_13_IfBlock1;
        _4_q_dir_1 = _7_q_dir_1;
      }
      else {
        outC->_L2_1_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _5_q_dir_1 = outC->_L2_1_IfBlock1;
        _4_q_dir_1 = _5_q_dir_1;
      }
      _10_q_dir_1 = _4_q_dir_1;
    }
    outC->q_dir_1 = _10_q_dir_1;
  }
  outC->_L356 = outC->q_dir_1;
  outC->_L214 = outC->_L1.valid;
  outC->_L213 = 1;
  outC->_L212 = outC->_L378 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L388;
  outC->_L204.q_dir = outC->_L356;
  outC->_L204.valid = outC->_L214;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P005_compressed,
    &outC->_L383);
  if (outC->IfBlock1_clock_1) {
    outC->_L5_16_IfBlock1 = kcg_false;
    _11_error_1 = outC->_L5_16_IfBlock1;
    outC->error_1 = _11_error_1;
  }
  else {
    if (outC->_4_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      error_1 = outC->_L5_1_IfBlock1;
      _9_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _8_error_1 = outC->_L4_1_IfBlock1;
        _3_error_1 = _8_error_1;
      }
      else {
        outC->_L1_1_IfBlock1 = kcg_true;
        _6_error_1 = outC->_L1_1_IfBlock1;
        _3_error_1 = _6_error_1;
      }
      _9_error_1 = _3_error_1;
    }
    outC->error_1 = _9_error_1;
  }
  outC->_L13_1 = outC->error_1;
  noname_1 = outC->_L13_1;
}
/* TM_conversions::C_P015_compr_onboard */
void C_P015_compr_onboard_TM_conversions(
  /* TM_conversions::C_P015_compr_onboard::PacketData */ CompressedPacketData_T_Common_Types_Pkg *PacketData,
  /* TM_conversions::C_P015_compr_onboard::Metadata_Element */ MetadataElement_T_Common_Types_Pkg *Metadata_Element,
  /* TM_conversions::C_P015_compr_onboard::P015_onboard */ P015_OBU_T_TM *P015_onboard)
{
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1 */
  static kcg_bool IfBlock1_clock_2;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else::else */
  static kcg_bool _1_else_clock_2_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else */
  static kcg_bool _2_else_clock_2_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else */
  static kcg_bool else_clock_2_IfBlock1;
  /* TM_conversions::C_P015_compr_onboard::nid_packet_ok */
  static kcg_bool nid_packet_ok;
  /* TM_conversions::C_P015_compr_onboard::_L138 */
  static array_int_15 _L138;
  /* TM_conversions::C_P015_compr_onboard::_L125 */
  static array_int_6 _L125;
  
  (*P015_onboard).n_iter = (*PacketData)[21];
  kcg_copy_array_int_6(&_L125, (array_int_6 *) &(*PacketData)[0]);
  nid_packet_ok = 15 == _L125[0];
  (*P015_onboard).valid = nid_packet_ok;
  _1_else_clock_2_IfBlock1 = _L125[1] == INT_Q_DIR_nomiinal_TM_conversions;
  IfBlock1_clock_2 = _L125[3] == INT_Q_SCALE_10cm_TM_conversions;
  kcg_copy_array_int_15(&_L138, (array_int_15 *) &(*PacketData)[6]);
  /* 2_ck_IfBlock1 */ if (_1_else_clock_2_IfBlock1) {
    (*P015_onboard).q_dir = ENUM_Q_DIR_nominal_TM_conversions;
  }
  else {
    else_clock_2_IfBlock1 = _L125[1] == INT_Q_DIR_reverse_TM_conversions;
    /* 2_ck_anon_activ */ if (else_clock_2_IfBlock1) {
      (*P015_onboard).q_dir = ENUM_Q_DIR_reverse_TM_conversions;
    }
    else {
      _2_else_clock_2_IfBlock1 = _L125[1] == INT_Q_DIR_both_TM_conversions;
      /* 2_ck_anon_activ */ if (_2_else_clock_2_IfBlock1) {
        (*P015_onboard).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
      else {
        (*P015_onboard).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
    }
  }
  /* 2_ck_IfBlock1 */ if (IfBlock1_clock_2) {
    (*P015_onboard).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
  }
  else {
    _2_else_clock_2_IfBlock1 = _L125[3] == INT_Q_SCALE_1m_TM_conversions;
    /* 2_ck_anon_activ */ if (_2_else_clock_2_IfBlock1) {
      (*P015_onboard).q_scale = ENUM_Q_SCALE_1m_TM_conversions;
    }
    else {
      _1_else_clock_2_IfBlock1 = _L125[3] == INT_Q_SCALE_10m_TM_conversions;
      /* 2_ck_anon_activ */ if (_1_else_clock_2_IfBlock1) {
        (*P015_onboard).q_scale = ENUM_Q_SCALE_10m_TM_conversions;
      }
      else {
        (*P015_onboard).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
      }
    }
  }
  (*P015_onboard).v_loa = /* 2 */ CAST_Int_to_V_LOA_TM_conversions(_L125[4]);
  (*P015_onboard).t_loa = /* 2 */ CAST_Int_to_T_LOA_TM_conversions(_L125[5]);
  /* 1 */
  C_P015_unflatten_sections_TM_lib_internal(
    nid_packet_ok,
    (*PacketData)[21],
    (P015_sections_array_flat_T_TM *) &(*PacketData)[22],
    &(*P015_onboard).sections);
  (*P015_onboard).l_endsection = /* 2 */
    CAST_Int_to_L_ENDSECTION_TM_conversions(_L138[0]);
  (*P015_onboard).q_sectiontimer = /* 2 */
    CAST_Int_to_Q_SECTIONTIMER_TM_conversions(_L138[1]);
  (*P015_onboard).t_sectiontimer = /* 1 */
    CAST_Int_to_T_SECTIONTIMER_TM_conversions(_L138[2]);
  (*P015_onboard).d_sectiontimerstoploc = /* 2 */
    CAST_Int_to_D_SECTIONTIMERSTOPLOC_TM_conversions(_L138[3]);
  (*P015_onboard).q_endtimer = /* 2 */
    CAST_Int_to_Q_ENDTIMER_TM_conversions(_L138[4]);
  (*P015_onboard).t_endtimer = /* 2 */
    CAST_Int_to_T_ENDTIMER_TM_conversions(_L138[5]);
  (*P015_onboard).d_endtimerstartloc = /* 2 */
    CAST_Int_to_D_ENDTIMERSTARTLOC_TM_conversions(_L138[6]);
  (*P015_onboard).q_dangerpoint = /* 2 */
    CAST_Int_to_Q_DANGERPOINT_TM_conversions(_L138[7]);
  (*P015_onboard).d_dp = /* 2 */ CAST_Int_to_D_DP_TM_conversions(_L138[8]);
  (*P015_onboard).v_releasedp = /* 2 */
    CAST_Int_to_V_RELEASEDP_TM_conversions(_L138[9]);
  (*P015_onboard).q_overlap = /* 2 */
    CAST_Int_to_Q_OVERLAP_TM_conversions(_L138[10]);
  (*P015_onboard).d_startol = /* 2 */
    CAST_Int_to_D_STARTOL_TM_conversions(_L138[11]);
  (*P015_onboard).t_ol = /* 2 */ CAST_Int_to_T_OL_TM_conversions(_L138[12]);
  (*P015_onboard).d_ol = /* 2 */ CAST_Int_to_D_OL_TM_conversions(_L138[13]);
  (*P015_onboard).v_releaseol = /* 2 */
    CAST_Int_to_V_RELEASEOL_TM_conversions(_L138[14]);
}
/* TM_conversions_baseline2::C_P027V1_tracksim_compr_body */
void C_P027V1_tracksim_compr_body_TM_conversions_baseline2(
  /* TM_conversions_baseline2::C_P027V1_tracksim_compr_body::P027V1_from_track */P027V1_trackside_int_T_TM_baseline2 *P027V1_from_track,
  outC_C_P027V1_tracksim_compr_body_TM_conversions_baseline2 *outC)
{
  kcg_int i1;
  kcg_int i;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _11_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _10_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _9_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _8_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _6_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _5_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _4_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _3_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _2_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool error_1;
  kcg_bool noname_1;
  
  kcg_copy_P027V1_trackside_int_T_TM_baseline2(&outC->_L1, P027V1_from_track);
  kcg_copy_P027V1_trackside_sectionlist_T_TM_baseline2(
    &outC->_L367,
    &outC->_L1.SECTIONS_SSP);
  outC->_L368 = outC->_L1.N_ITER_k;
  kcg_copy_P027V1_trackside_qdifflist_T_TM_baseline2(
    &outC->_L369,
    &outC->_L1.SECTIONS_q_diff);
  outC->_L370 = outC->_L1.N_ITER_n;
  outC->_L371 = outC->_L1.Q_FRONT;
  outC->_L219 = outC->_L1.V_STATIC;
  outC->_L218 = outC->_L1.D_STATIC;
  outC->_L217 = outC->_L1.Q_SCALE;
  outC->_L216 = outC->_L1.L_PACKET;
  outC->_L215 = outC->_L1.Q_DIR;
  outC->_L387 = outC->_L1.NID_PACKET;
  /* 3 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    100,
    27,
    INT_M_VERSION_1_0_TM,
    &outC->Context_3);
  outC->_L405 = outC->Context_3.nid_packet_meta;
  outC->meta_first_section = outC->_L405;
  /* 1 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    0,
    27,
    INT_M_VERSION_1_0_TM,
    &outC->Context_1);
  outC->_L403 = outC->Context_1.nid_packet_meta;
  outC->q_dir_int_1 = outC->_L215;
  outC->_L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_L12_1;
  outC->IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L4_13_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _11_q_dir_1 = outC->_L4_13_IfBlock1;
    outC->q_dir_1 = _11_q_dir_1;
  }
  else {
    outC->_2_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_1_IfBlock1;
      _9_q_dir_1 = q_dir_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L2_11_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _6_q_dir_1 = outC->_L2_11_IfBlock1;
        _3_q_dir_1 = _6_q_dir_1;
      }
      else {
        outC->_L2_1_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _4_q_dir_1 = outC->_L2_1_IfBlock1;
        _3_q_dir_1 = _4_q_dir_1;
      }
      _9_q_dir_1 = _3_q_dir_1;
    }
    outC->q_dir_1 = _9_q_dir_1;
  }
  outC->_L402 = outC->q_dir_1;
  outC->n_iter_k = outC->_L368;
  outC->_L400 = outC->n_iter_k;
  outC->n_iter_k_out = outC->_L400;
  outC->_L396 = 6;
  outC->_L394.D_STATIC = outC->_L218;
  outC->_L394.V_STATIC = outC->_L219;
  outC->_L394.Q_FRONT = outC->_L371;
  outC->_L394.N_ITER = outC->_L370;
  kcg_copy_P027V1_trackside_qdifflist_T_TM_baseline2(
    &outC->_L394.SECTIONS_q_diff,
    &outC->_L369);
  for (i1 = 0; i1 < 1; i1++) {
    kcg_copy_P027V1_section_int_T_TM_baseline2(&outC->_L386[i1], &outC->_L394);
  }
  kcg_copy_array__19695(&outC->_L385[0], &outC->_L386);
  kcg_copy_P027V1_trackside_sectionlist_T_TM_baseline2(
    &outC->_L385[1],
    &outC->_L367);
  kcg_copy__2_P027V1_OBU_sectionlist_int_T_TM_baseline2(
    &outC->P027V1_sections,
    &outC->_L385);
  outC->_L391 = outC->n_iter_k;
  outC->_L373[0] = outC->_L387;
  outC->_L373[1] = outC->_L215;
  outC->_L373[2] = outC->_L216;
  outC->_L373[3] = outC->_L217;
  outC->_L373[4] = outC->_L391;
  outC->_L373[5] = outC->_L405;
  outC->_L336 = 0;
  for (i = 0; i < 494; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_6(&outC->_L383[0], &outC->_L373);
  kcg_copy_array_int_494(&outC->_L383[6], &outC->_L209);
  outC->_L214 = outC->_L1.valid;
  outC->_L213 = 1;
  outC->_L212 = outC->_L396 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L403;
  outC->_L204.q_dir = outC->_L402;
  outC->_L204.valid = outC->_L214;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P027V1_body_compressed,
    &outC->_L383);
  if (outC->IfBlock1_clock_1) {
    outC->_L5_14_IfBlock1 = kcg_false;
    _10_error_1 = outC->_L5_14_IfBlock1;
    outC->error_1 = _10_error_1;
  }
  else {
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      error_1 = outC->_L5_1_IfBlock1;
      _8_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _7_error_1 = outC->_L4_1_IfBlock1;
        _2_error_1 = _7_error_1;
      }
      else {
        outC->_L1_1_IfBlock1 = kcg_true;
        _5_error_1 = outC->_L1_1_IfBlock1;
        _2_error_1 = _5_error_1;
      }
      _8_error_1 = _2_error_1;
    }
    outC->error_1 = _8_error_1;
  }
  outC->_L13_1 = outC->error_1;
  noname_1 = outC->_L13_1;
}
/* TM_conversions::C_P057_tracksim_compr */
void C_P057_tracksim_compr_TM_conversions(
  /* TM_conversions::C_P057_tracksim_compr::P057_from_track */P057_trackside_int_T_TM *P057_from_track,
  outC_C_P057_tracksim_compr_TM_conversions *outC)
{
  static kcg_int i;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _10_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _8_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _5_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _4_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _3_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _2_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _1_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool error_1;
  static kcg_bool noname_1;
  
  kcg_copy_P057_trackside_int_T_TM(&outC->_L1, P057_from_track);
  outC->_L391 = outC->_L1.T_CYCRQST;
  outC->_L392 = outC->_L1.T_TIMEOUTRQST;
  outC->_L217 = outC->_L1.T_MAR;
  outC->_L216 = outC->_L1.L_PACKET;
  outC->_L215 = outC->_L1.Q_DIR;
  outC->_L387 = outC->_L1.NID_PACKET;
  /* 2 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    0,
    57,
    INT_M_VERSION_2_0_TM,
    &outC->Context_2);
  outC->_L394 = outC->Context_2.nid_packet_meta;
  outC->_L388 = DIM_MaxElementsPacket057_TM;
  outC->_L373[0] = outC->_L387;
  outC->_L373[1] = outC->_L215;
  outC->_L373[2] = outC->_L216;
  outC->_L373[3] = outC->_L217;
  outC->_L373[4] = outC->_L392;
  outC->_L373[5] = outC->_L391;
  outC->_L336 = 0;
  for (i = 0; i < 494; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_6(&outC->_L383[0], &outC->_L373);
  kcg_copy_array_int_494(&outC->_L383[6], &outC->_L209);
  outC->q_dir_int_1 = outC->_L215;
  outC->_L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_L12_1;
  outC->IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L4_13_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _10_q_dir_1 = outC->_L4_13_IfBlock1;
    outC->q_dir_1 = _10_q_dir_1;
  }
  else {
    outC->_2_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_1_IfBlock1;
      _8_q_dir_1 = q_dir_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L2_11_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _5_q_dir_1 = outC->_L2_11_IfBlock1;
        _2_q_dir_1 = _5_q_dir_1;
      }
      else {
        outC->_L2_1_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _3_q_dir_1 = outC->_L2_1_IfBlock1;
        _2_q_dir_1 = _3_q_dir_1;
      }
      _8_q_dir_1 = _2_q_dir_1;
    }
    outC->q_dir_1 = _8_q_dir_1;
  }
  outC->_L356 = outC->q_dir_1;
  outC->_L214 = outC->_L1.valid;
  outC->_L213 = 1;
  outC->_L212 = outC->_L388 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L394;
  outC->_L204.q_dir = outC->_L356;
  outC->_L204.valid = outC->_L214;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P005_compressed,
    &outC->_L383);
  if (outC->IfBlock1_clock_1) {
    outC->_L5_14_IfBlock1 = kcg_false;
    _9_error_1 = outC->_L5_14_IfBlock1;
    outC->error_1 = _9_error_1;
  }
  else {
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      error_1 = outC->_L5_1_IfBlock1;
      _7_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _6_error_1 = outC->_L4_1_IfBlock1;
        _1_error_1 = _6_error_1;
      }
      else {
        outC->_L1_1_IfBlock1 = kcg_true;
        _4_error_1 = outC->_L1_1_IfBlock1;
        _1_error_1 = _4_error_1;
      }
      _7_error_1 = _1_error_1;
    }
    outC->error_1 = _7_error_1;
  }
  outC->_L13_1 = outC->error_1;
  noname_1 = outC->_L13_1;
}