/* DATA::Packets::EVC_to_DMI::CAST_int_to_DMI_System_Version */
void CAST_int_to_DMI_System_Version_DATA_Packets_EVC_to_DMI(
  /* DATA::Packets::EVC_to_DMI::CAST_int_to_DMI_System_Version::dmi_system_version_int */ DMI_System_Version_int_array_T_DATA *dmi_system_version_int,
  /* DATA::Packets::EVC_to_DMI::CAST_int_to_DMI_System_Version::dmi_system_version_ct */ DMI_System_Version_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_system_version_ct)
{
  (*dmi_system_version_ct).system_clock = (*dmi_system_version_int)[1];
  (*dmi_system_version_ct).valid = /* 1 */
    Int_to_Bool_Utilities((*dmi_system_version_int)[0]);
  (*dmi_system_version_ct).system_version = /* 1 */
    CAST_Int_to_M_VERSION_TM_conversions((*dmi_system_version_int)[2]);
}
/* TM_RBC_conversions::C_header_to_M032 */
void C_header_to_M032_TM_RBC_conversions(
  /* TM_RBC_conversions::C_header_to_M032::header_in */M_TrackTrain_Radio_T_TM_radio_messages *header_in,
  outC_C_header_to_M032_TM_RBC_conversions *outC)
{
  kcg_int noname;
  kcg_int _1_noname;
  kcg_int _2_noname;
  kcg_int _3_noname;
  kcg_int _4_noname;
  
  kcg_copy_M_TrackTrain_Radio_T_TM_radio_messages(&outC->_L1, header_in);
  outC->_L13 = outC->_L1.field8;
  outC->_L12 = outC->_L1.field7;
  outC->_L11 = outC->_L1.field6;
  outC->_L10 = outC->_L1.field5;
  outC->_L9 = outC->_L1.field4;
  outC->_L8 = outC->_L1.field3;
  outC->_L7 = outC->_L1.field2;
  outC->_L6 = outC->_L1.field1;
  outC->_L5 = outC->_L1.t_train;
  outC->_L4 = outC->_L1.l_message;
  outC->_L3 = outC->_L1.nid_message;
  /* 1 */ CAST_Int_to_NID_MESSAGE_TM_conversions(outC->_L3, &outC->Context_1);
  outC->_L33 = outC->Context_1.nid_message;
  /* 1 */ CAST_Int_to_T_TRAIN_TM_conversions(outC->_L5, &outC->_1_Context_1);
  outC->_L32 = outC->_1_Context_1.t_train;
  /* 1 */ CAST_Int_to_L_MESSAGE_TM_conversions(outC->_L4, &outC->_2_Context_1);
  outC->_L31 = outC->_2_Context_1.l_message;
  /* 1 */ CAST_Int_to_M_VERSION_TM_conversions(outC->_L8, &outC->_3_Context_1);
  outC->_L29 = outC->_3_Context_1._8_m_version;
  _4_noname = outC->_L12;
  _3_noname = outC->_L11;
  _2_noname = outC->_L10;
  _1_noname = outC->_L9;
  noname = outC->_L13;
  /* 1 */ CAST_Int_to_NID_LRBG_TM_conversions(outC->_L7, &outC->_4_Context_1);
  outC->_L28 = outC->_4_Context_1.NID_LRBG_out;
  /* 1 */ CAST_Int_to_M_ACK_TM_conversions(outC->_L6, &outC->_5_Context_1);
  outC->_L27 = outC->_5_Context_1.m_ack;
  outC->_L2 = outC->_L1.valid;
  outC->_L26.valid = outC->_L2;
  outC->_L26.nid_message = outC->_L33;
  outC->_L26.l_message = outC->_L31;
  outC->_L26.t_train = outC->_L32;
  outC->_L26.m_ack = outC->_L27;
  outC->_L26.nid_lrbg = outC->_L28;
  outC->_L26._1_m_version = outC->_L29;
  kcg_copy_M_032_T_TM_radio_messages(&outC->message_out, &outC->_L26);
}
/* TM_conversions::CASTLIB_BaliseHeaders */
void CASTLIB_BaliseHeaders_TM_conversions(
  /* TM_conversions::CASTLIB_BaliseHeaders::In */BaliseTelegramHeader_int_T_TM *In,
  /* TM_conversions::CASTLIB_BaliseHeaders::Out */TelegramHeader_T_BG_Types_Pkg *Out)
{
  (*Out).q_updown = /* 1 */ CAST_Int_to_Q_UPDOWN_TM_conversions((*In).q_updown);
  (*Out).m_version = /* 1 */
    CAST_Int_to_M_VERSION_TM_conversions((*In).m_version);
  (*Out).q_media = /* 1 */ CAST_Int_to_Q_MEDIA_TM_conversions((*In).q_media);
  (*Out).n_pig = /* 1 */ CAST_Int_to_N_PIG_TM_conversions((*In).n_pig);
  (*Out).n_total = /* 1 */ CAST_Int_to_N_TOTAL_TM_conversions((*In).n_total);
  (*Out).m_dup = /* 1 */ CAST_Int_to_M_DUP_TM_conversions((*In).m_dup);
  (*Out).m_mcount = /* 1 */ CAST_Int_to_M_MCOUNT_TM_conversions((*In).m_mcount);
  (*Out).nid_c = /* 1 */ CAST_Int_to_NID_C_TM_conversions((*In).nid_c);
  (*Out).nid_bg = /* 1 */ CAST_Int_to_NID_BG_TM_conversions((*In).nid_bg);
  (*Out).q_link = /* 1 */ CAST_Int_to_Q_LINK_TM_conversions((*In).q_link);
}
/* TM_radio_messages::C_header_to_M032 */
void C_header_to_M032_TM_radio_messages(
  /* TM_radio_messages::C_header_to_M032::header_in */M_TrackTrain_Radio_T_TM_radio_messages *header_in,
  /* TM_radio_messages::C_header_to_M032::message_out */M_032_T_TM_radio_messages *message_out)
{
  (*message_out).valid = (*header_in).valid;
  (*message_out).nid_message = /* 1 */
    CAST_Int_to_NID_MESSAGE_TM_conversions((*header_in).nid_message);
  (*message_out).l_message = /* 1 */
    CAST_Int_to_L_MESSAGE_TM_conversions((*header_in).l_message);
  (*message_out).t_train = /* 1 */
    CAST_Int_to_T_TRAIN_TM_conversions((*header_in).t_train);
  (*message_out).m_ack = /* 1 */
    CAST_Int_to_M_ACK_TM_conversions((*header_in).field1);
  (*message_out).nid_lrbg = /* 1 */
    CAST_Int_to_NID_LRBG_TM_conversions((*header_in).field2);
  (*message_out).m_version = /* 1 */
    CAST_Int_to_M_VERSION_TM_conversions((*header_in).field3);
}
/* DATA::Packets::DMI_to_EVC::C_int_to_DMI_identifier */
void C_int_to_DMI_identifier_DATA_Packets_DMI_to_EVC(
  /* DATA::Packets::DMI_to_EVC::C_int_to_DMI_identifier::dmi_identifier_int_in */ DMI_Identifier_int_array_T_DATA *dmi_identifier_int_in,
  /* DATA::Packets::DMI_to_EVC::C_int_to_DMI_identifier::dmi_identifier_ct_out */ DMI_Identifier_T_DMI_Messages_DMI_to_EVC_Pkg *dmi_identifier_ct_out)
{
  (*dmi_identifier_ct_out).systemTime = (*dmi_identifier_int_in)[1];
  (*dmi_identifier_ct_out).l_name = (*dmi_identifier_int_in)[4];
  (*dmi_identifier_ct_out).valid = /* 1 */
    Int_to_Bool_Utilities((*dmi_identifier_int_in)[0]);
  (*dmi_identifier_ct_out).DMI_Identifier = /* 1 */
    CAST_int_to_DMI_DMI_identifier_DATA_Variables((*dmi_identifier_int_in)[2]);
  (*dmi_identifier_ct_out).Cabin_Identifier = /* 1 */
    CAST_int_to_DMI_Cabin_identifier_DATA_Variables(
      (*dmi_identifier_int_in)[3]);
  /* 1 */
  CAST_int_to_DMI_TEXT_DATA_Variables(
    (DMI_TEXT_INT_Array_T_DATA *) &(*dmi_identifier_int_in)[5],
    &(*dmi_identifier_ct_out).DMI_name);
  (*dmi_identifier_ct_out).m_version = /* 1 */
    CAST_Int_to_M_VERSION_TM_conversions((*dmi_identifier_int_in)[260]);
}
/* TM_conversions::C_Int_TrackTrainMessage */
void C_Int_TrackTrainMessage_TM_conversions(
  /* TM_conversions::C_Int_TrackTrainMessage::Message_In */Radio_TrackTrain_Header_T_TM *Message_In,
  /* TM_conversions::C_Int_TrackTrainMessage::Message_Out */Radio_TrackTrain_Header_T_TM_transitional *Message_Out)
{
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else */
  static kcg_bool _2_else_clock_1_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else */
  static kcg_bool _1_else_clock_1_IfBlock1;
  /* 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 */
  static kcg_bool IfBlock1_clock_1;
  
  (*Message_Out).radioDevice = (*Message_In).radioDevice;
  (*Message_Out).receivedSystemTime = (*Message_In).receivedSystemTime;
  else_clock_1_IfBlock1 = (*Message_In).q_scale ==
    INT_Q_SCALE_10cm_TM_conversions;
  IfBlock1_clock_1 = (*Message_In).q_dir == INT_Q_DIR_nomiinal_TM_conversions;
  (*Message_Out).nid_message = /* 1 */
    CAST_Int_to_NID_MESSAGE_TM_conversions((*Message_In).nid_message);
  (*Message_Out).t_train = /* 1 */
    CAST_Int_to_T_TRAIN_TM_conversions((*Message_In).t_train);
  (*Message_Out).m_ack = /* 1 */
    CAST_Int_to_M_ACK_TM_conversions((*Message_In).m_ack);
  (*Message_Out).nid_lrbg = /* 1 */
    CAST_Int_to_NID_LRBG_TM_conversions((*Message_In).nid_lrbg);
  (*Message_Out).t_train_reference = /* 2 */
    CAST_Int_to_T_TRAIN_TM_conversions((*Message_In).t_train_reference);
  (*Message_Out).nid_em = /* 1 */
    CAST_Int_to_NID_EM_TM_conversions((*Message_In).nid_em);
  if (else_clock_1_IfBlock1) {
    (*Message_Out).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
  }
  else {
    _2_else_clock_1_IfBlock1 = (*Message_In).q_scale ==
      INT_Q_SCALE_1m_TM_conversions;
    if (_2_else_clock_1_IfBlock1) {
      (*Message_Out).q_scale = ENUM_Q_SCALE_1m_TM_conversions;
    }
    else {
      _1_else_clock_1_IfBlock1 = (*Message_In).q_scale ==
        INT_Q_SCALE_10m_TM_conversions;
      if (_1_else_clock_1_IfBlock1) {
        (*Message_Out).q_scale = ENUM_Q_SCALE_10m_TM_conversions;
      }
      else {
        (*Message_Out).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
      }
    }
  }
  (*Message_Out).d_sr = /* 1 */
    CAST_Int_to_D_SR_TM_conversions((*Message_In).d_sr);
  (*Message_Out).t_sh_rqst = /* 3 */
    CAST_Int_to_T_TRAIN_TM_conversions((*Message_In).t_sh_rqst);
  (*Message_Out).d_ref = /* 1 */
    CAST_Int_to_D_REF_TM_conversions((*Message_In).d_ref);
  if (IfBlock1_clock_1) {
    (*Message_Out).q_dir = ENUM_Q_DIR_nominal_TM_conversions;
  }
  else {
    _1_else_clock_1_IfBlock1 = (*Message_In).q_dir ==
      INT_Q_DIR_reverse_TM_conversions;
    if (_1_else_clock_1_IfBlock1) {
      (*Message_Out).q_dir = ENUM_Q_DIR_reverse_TM_conversions;
    }
    else {
      else_clock_1_IfBlock1 = (*Message_In).q_dir ==
        INT_Q_DIR_both_TM_conversions;
      if (else_clock_1_IfBlock1) {
        (*Message_Out).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
      else {
        (*Message_Out).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
    }
  }
  (*Message_Out).d_emergencystop = /* 1 */
    CAST_Int_to_D_EMERGENCYSTOP_TM_conversions((*Message_In).d_emergencystop);
  (*Message_Out).m_version = /* 1 */
    CAST_Int_to_M_VERSION_TM_conversions((*Message_In).m_version);
}