/* TM_RBC_conversions::C_header_to_M018 */
void C_header_to_M018_TM_RBC_conversions(
  /* TM_RBC_conversions::C_header_to_M018::header_in */M_TrackTrain_Radio_T_TM_radio_messages *header_in,
  outC_C_header_to_M018_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_T_TRAIN_TM_conversions(outC->_L5, &outC->Context_1);
  outC->_L33 = outC->Context_1.t_train;
  /* 1 */ CAST_Int_to_L_MESSAGE_TM_conversions(outC->_L4, &outC->_1_Context_1);
  outC->_L32 = outC->_1_Context_1.l_message;
  /* 1 */
  CAST_Int_to_NID_MESSAGE_TM_conversions(outC->_L3, &outC->_2_Context_1);
  outC->_L31 = outC->_2_Context_1.nid_message;
  _4_noname = outC->_L12;
  _3_noname = outC->_L11;
  _2_noname = outC->_L10;
  _1_noname = outC->_L9;
  /* 1 */ CAST_Int_to_NID_EM_TM_conversions(outC->_L8, &outC->_3_Context_1);
  outC->_L29 = outC->_3_Context_1.nid_em;
  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->_L31;
  outC->_L26.l_message = outC->_L32;
  outC->_L26.t_train = outC->_L33;
  outC->_L26.m_ack = outC->_L27;
  outC->_L26.nid_lrbg = outC->_L28;
  outC->_L26.nid_em = outC->_L29;
  kcg_copy_M_018_T_TM_radio_messages(&outC->message_out, &outC->_L26);
}
/* TM_RBC_conversions::C_header_to_M018 */
void C_header_to_M018_TM_RBC_conversions(
  /* TM_RBC_conversions::C_header_to_M018::header_in */M_TrackTrain_Radio_T_TM_radio_messages *header_in,
  /* TM_RBC_conversions::C_header_to_M018::message_out */M_018_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).nid_em = /* 1 */
    CAST_Int_to_NID_EM_TM_conversions((*header_in).field3);
}
/* 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);
}
/* TM_radio_messages::C_header_to_M015 */
void C_header_to_M015_TM_radio_messages(
  /* TM_radio_messages::C_header_to_M015::header_in */M_TrackTrain_Radio_T_TM_radio_messages *header_in,
  /* TM_radio_messages::C_header_to_M015::message_out */M_015_T_TM_radio_messages *message_out)
{
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else */
  static kcg_bool _2_else_clock_1_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else::else */
  static kcg_bool _1_else_clock_1_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1 */
  static kcg_bool IfBlock1_clock_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else */
  static kcg_bool else_clock_1_IfBlock1;
  
  (*message_out).valid = (*header_in).valid;
  _1_else_clock_1_IfBlock1 = (*header_in).field4 ==
    INT_Q_SCALE_10cm_TM_conversions;
  IfBlock1_clock_1 = (*header_in).field6 == INT_Q_DIR_nomiinal_TM_conversions;
  (*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).nid_em = /* 1 */
    CAST_Int_to_NID_EM_TM_conversions((*header_in).field3);
  if (_1_else_clock_1_IfBlock1) {
    (*message_out).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
  }
  else {
    else_clock_1_IfBlock1 = (*header_in).field4 ==
      INT_Q_SCALE_1m_TM_conversions;
    if (else_clock_1_IfBlock1) {
      (*message_out).q_scale = ENUM_Q_SCALE_1m_TM_conversions;
    }
    else {
      _2_else_clock_1_IfBlock1 = (*header_in).field4 ==
        INT_Q_SCALE_10m_TM_conversions;
      if (_2_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_ref = /* 1 */
    CAST_Int_to_D_REF_TM_conversions((*header_in).field5);
  if (IfBlock1_clock_1) {
    (*message_out).q_dir = ENUM_Q_DIR_nominal_TM_conversions;
  }
  else {
    _2_else_clock_1_IfBlock1 = (*header_in).field6 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (_2_else_clock_1_IfBlock1) {
      (*message_out).q_dir = ENUM_Q_DIR_reverse_TM_conversions;
    }
    else {
      _1_else_clock_1_IfBlock1 = (*header_in).field6 ==
        INT_Q_DIR_both_TM_conversions;
      if (_1_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((*header_in).field7);
}