/* 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_P021_compr_onboard */
void C_P021_compr_onboard_TM_conversions(
  /* TM_conversions::C_P021_compr_onboard::PacketData */CompressedPacketData_T_Common_Types_Pkg *PacketData,
  /* TM_conversions::C_P021_compr_onboard::Metadata_Element */MetadataElement_T_Common_Types_Pkg *Metadata_Element,
  outC_C_P021_compr_onboard_TM_conversions *outC)
{
  kcg_bool _26_noname_1;
  kcg_bool _25_noname_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _24_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _23_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _22_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _21_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _20_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _19_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _18_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _17_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _16_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _15_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 _14_error_1;
  kcg_bool _13_noname_1;
  kcg_bool _12_noname_1;
  kcg_bool _11_noname_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _10_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _8_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _5_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _4_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _3_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _2_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _1_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool error_1;
  kcg_bool noname_1;
  MetadataElement_T_Common_Types_Pkg noname;
  kcg_int _27_noname;
  
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L9, PacketData);
  kcg_copy_array_int_5(&outC->_L1, (array_int_5 *) &outC->_L9[0]);
  outC->_L31 = outC->_L1[4];
  outC->_L30 = outC->_L1[3];
  outC->_L29 = outC->_L1[2];
  outC->_L28 = outC->_L1[1];
  _27_noname = outC->_L29;
  kcg_copy_array_int_99(&outC->_L32, (array_int_99 *) &outC->_L9[5]);
  outC->_L27 = outC->_L1[0];
  outC->nid_packet_int_1 = outC->_L27;
  outC->_L1_120 = outC->nid_packet_int_1;
  outC->nid_packet_1 = outC->_L1_120;
  outC->_L12 = outC->nid_packet_1;
  outC->_L21 = 21;
  outC->_L22 = outC->_L12 == outC->_L21;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L20, Metadata_Element);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&noname, &outC->_L20);
  outC->q_dir_int_1 = outC->_L28;
  outC->_6__L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_6__L12_1;
  outC->_8_IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->_8_IfBlock1_clock_1) {
    outC->_L4_116_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _24_q_dir_1 = outC->_L4_116_IfBlock1;
    outC->q_dir_1 = _24_q_dir_1;
  }
  else {
    outC->_15_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_15_else_clock_1_IfBlock1) {
      outC->_L3_19_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_19_IfBlock1;
      _22_q_dir_1 = q_dir_1;
    }
    else {
      outC->_10_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->_10_else_clock_1_IfBlock1) {
        outC->_L2_113_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _19_q_dir_1 = outC->_L2_113_IfBlock1;
        _16_q_dir_1 = _19_q_dir_1;
      }
      else {
        outC->_L2_111_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _17_q_dir_1 = outC->_L2_111_IfBlock1;
        _16_q_dir_1 = _17_q_dir_1;
      }
      _22_q_dir_1 = _16_q_dir_1;
    }
    outC->q_dir_1 = _22_q_dir_1;
  }
  outC->_L11 = outC->q_dir_1;
  outC->q_scale_int_1 = outC->_L30;
  outC->_L2_1 = outC->q_scale_int_1;
  outC->q_scale_in_1 = outC->_L2_1;
  outC->IfBlock1_clock_1 = outC->q_scale_in_1 ==
    INT_Q_SCALE_10cm_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L2_14_IfBlock1 = ENUM_Q_SCALE_10cm_TM_conversions;
    _10_q_scale_1 = outC->_L2_14_IfBlock1;
    outC->q_scale_1 = _10_q_scale_1;
  }
  else {
    outC->_3_else_clock_1_IfBlock1 = outC->q_scale_in_1 ==
      INT_Q_SCALE_1m_TM_conversions;
    if (outC->_3_else_clock_1_IfBlock1) {
      outC->_L1_1_IfBlock1 = ENUM_Q_SCALE_1m_TM_conversions;
      q_scale_1 = outC->_L1_1_IfBlock1;
      _8_q_scale_1 = q_scale_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_scale_in_1 ==
        INT_Q_SCALE_10m_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L1_12_IfBlock1 = ENUM_Q_SCALE_10m_TM_conversions;
        _5_q_scale_1 = outC->_L1_12_IfBlock1;
        _2_q_scale_1 = _5_q_scale_1;
      }
      else {
        outC->_L1_11_IfBlock1 = ENUM_Q_SCALE_10cm_TM_conversions;
        _3_q_scale_1 = outC->_L1_11_IfBlock1;
        _2_q_scale_1 = _3_q_scale_1;
      }
      _8_q_scale_1 = _2_q_scale_1;
    }
    outC->q_scale_1 = _8_q_scale_1;
  }
  outC->_L4 = outC->q_scale_1;
  outC->n_iter_int_1 = outC->_L31;
  outC->_L1_1 = outC->n_iter_int_1;
  outC->n_iter_1 = outC->_L1_1;
  outC->_L7 = outC->n_iter_1;
  /* 1 */
  C_P021_unflatten_sections_TM_lib_internal(
    outC->_L22,
    outC->_L7,
    &outC->_L32,
    &outC->Context_1);
  kcg_copy_P021_OBU_sectionlist_enum_T_TM(
    &outC->_L5,
    &outC->Context_1.sections);
  outC->_L10.valid = outC->_L22;
  outC->_L10.q_dir = outC->_L11;
  outC->_L10.q_scale = outC->_L4;
  outC->_L10.n_iter = outC->_L7;
  kcg_copy_P021_OBU_sectionlist_enum_T_TM(&outC->_L10.sections, &outC->_L5);
  kcg_copy_P021_OBU_T_TM(&outC->P021_onboard, &outC->_L10);
  if (outC->IfBlock1_clock_1) {
    outC->_L3_15_IfBlock1 = kcg_false;
    _9_error_1 = outC->_L3_15_IfBlock1;
    outC->error_1 = _9_error_1;
  }
  else {
    if (outC->_3_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = kcg_false;
      error_1 = outC->_L3_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->_L2_1_IfBlock1 = kcg_true;
        _4_error_1 = outC->_L2_1_IfBlock1;
        _1_error_1 = _4_error_1;
      }
      _7_error_1 = _1_error_1;
    }
    outC->error_1 = _7_error_1;
  }
  outC->_L4_1 = outC->error_1;
  noname_1 = outC->_L4_1;
  outC->_L11_1 = 0;
  outC->_L10_1 = outC->_L1_1 < outC->_L11_1;
  _11_noname_1 = outC->_L10_1;
  outC->_L9_1 = 31;
  outC->_L12_1 = outC->_L1_1 > outC->_L9_1;
  _12_noname_1 = outC->_L12_1;
  if (outC->_8_IfBlock1_clock_1) {
    outC->_L5_117_IfBlock1 = kcg_false;
    _23_error_1 = outC->_L5_117_IfBlock1;
    outC->_7_error_1 = _23_error_1;
  }
  else {
    if (outC->_15_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      _14_error_1 = outC->_L5_1_IfBlock1;
      _21_error_1 = _14_error_1;
    }
    else {
      if (outC->_10_else_clock_1_IfBlock1) {
        outC->_L4_114_IfBlock1 = kcg_false;
        _20_error_1 = outC->_L4_114_IfBlock1;
        _15_error_1 = _20_error_1;
      }
      else {
        outC->_L1_112_IfBlock1 = kcg_true;
        _18_error_1 = outC->_L1_112_IfBlock1;
        _15_error_1 = _18_error_1;
      }
      _21_error_1 = _15_error_1;
    }
    outC->_7_error_1 = _21_error_1;
  }
  outC->_L13_1 = outC->_7_error_1;
  _13_noname_1 = outC->_L13_1;
  outC->_L5_1 = 0;
  outC->_L4_119 = outC->_L1_120 < outC->_L5_1;
  outC->_L3_1 = 256;
  outC->_L2_118 = outC->_L1_120 > outC->_L3_1;
  _25_noname_1 = outC->_L2_118;
  _26_noname_1 = outC->_L4_119;
}
/* TM_baseline2::Read_P027V1 */
void Read_P027V1_TM_baseline2(
  /* TM_baseline2::Read_P027V1::Message_IN */ CompressedPackets_T_Common_Types_Pkg *Message_IN,
  /* TM_baseline2::Read_P027V1::received */ kcg_bool *received,
  /* TM_baseline2::Read_P027V1::P027V1_out */ P027V1_OBU_T_TM_baseline2 *P027V1_out)
{
  static kcg_int i;
  /* TM_conversions_baseline2::C_P027V1_compr_onboard_body::_L6 */
  static array_int_5 _L6_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else::else */
  static kcg_bool else_clock_1_1_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1 */
  static kcg_bool IfBlock1_clock_1_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else::else */
  static kcg_bool _1_else_clock_1_1_IfBlock1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1 */
  static kcg_bool _2_IfBlock1_clock_1_1;
  /* TM_baseline2::Read_P027V1::_L5 */
  static CompressedPacketData_T_Common_Types_Pkg _L5;
  /* TM_baseline2::Read_P027V1::_L30 */
  static MetadataElement_T_Common_Types_Pkg _L30;
  /* TM_baseline2::Read_P027V1::_L166 */
  static P027V1_OBU_body_enum_T_TM_baseline2 _L166;
  /* TM_baseline2::Read_P027V1::_L182 */
  static P027V1_OBU_sectionlist_enum_T_TM_baseline2 _L182;
  /* TM_baseline2::Read_P027V1::_L184 */
  static kcg_int _L184;
  
  /* 1 */
  RECV_ReadPackets_TM_lib_internal(
    Message_IN,
    NID_META_P027V1_body_TM_baseline2,
    kcg_true,
    kcg_true,
    &_L5,
    &_L30,
    received);
  _L166.valid = _L5[0] == 27;
  kcg_copy_array_int_5(&_L6_1, (array_int_5 *) &_L5[1]);
  for (i = 0; i < 33; i++) {
    /* 1 */
    Read_P027V1_sections_TM_baseline2(
      i,
      Message_IN,
      _L6_1[3],
      _L6_1[4],
      &IfBlock1_clock_1_1,
      &_L182[i]);
    _L184 = i + 1;
    if (!IfBlock1_clock_1_1) {
      break;
    }
  }
#ifdef KCG_MAPW_CPY
  
  for (i = _L184; i < 33; i++) {
    kcg_copy_P027V1_section_enum_T_TM_baseline2(
      &_L182[i],
      (P027V1_section_enum_T_TM_baseline2 *)
        &DEFAULT_P027V1_section_enum_TM_baseline2);
  }
#endif /* KCG_MAPW_CPY */
  
  kcg_copy_P027V1_OBU_sectionlist_enum_T_TM_baseline2(
    &(*P027V1_out).sections,
    &_L182);
  IfBlock1_clock_1_1 = _L6_1[0] == INT_Q_DIR_nomiinal_TM_conversions;
  _2_IfBlock1_clock_1_1 = _L6_1[2] == INT_Q_SCALE_10cm_TM_conversions;
  /* 1_1_ck_IfBlock1 */ if (IfBlock1_clock_1_1) {
    _L166.q_dir = ENUM_Q_DIR_nominal_TM_conversions;
  }
  else {
    _1_else_clock_1_1_IfBlock1 = _L6_1[0] == INT_Q_DIR_reverse_TM_conversions;
    /* 1_1_ck_anon_activ */ if (_1_else_clock_1_1_IfBlock1) {
      _L166.q_dir = ENUM_Q_DIR_reverse_TM_conversions;
    }
    else {
      else_clock_1_1_IfBlock1 = _L6_1[0] == INT_Q_DIR_both_TM_conversions;
      /* 1_1_ck_anon_activ */ if (else_clock_1_1_IfBlock1) {
        _L166.q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
      else {
        _L166.q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
    }
  }
  /* 1_1_ck_IfBlock1 */ if (_2_IfBlock1_clock_1_1) {
    _L166.q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
  }
  else {
    IfBlock1_clock_1_1 = _L6_1[2] == INT_Q_SCALE_1m_TM_conversions;
    /* 1_1_ck_anon_activ */ if (IfBlock1_clock_1_1) {
      _L166.q_scale = ENUM_Q_SCALE_1m_TM_conversions;
    }
    else {
      _1_else_clock_1_1_IfBlock1 = _L6_1[2] == INT_Q_SCALE_10m_TM_conversions;
      /* 1_1_ck_anon_activ */ if (_1_else_clock_1_1_IfBlock1) {
        _L166.q_scale = ENUM_Q_SCALE_10m_TM_conversions;
      }
      else {
        _L166.q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
      }
    }
  }
  (*P027V1_out).valid = _L166.valid;
  (*P027V1_out).q_dir = _L166.q_dir;
  (*P027V1_out).q_scale = _L166.q_scale;
}
/* TM_conversions::C_P021_compr_onboard */
void C_P021_compr_onboard_TM_conversions(
  /* TM_conversions::C_P021_compr_onboard::PacketData */ CompressedPacketData_T_Common_Types_Pkg *PacketData,
  /* TM_conversions::C_P021_compr_onboard::Metadata_Element */ MetadataElement_T_Common_Types_Pkg *Metadata_Element,
  /* TM_conversions::C_P021_compr_onboard::P021_onboard */ P021_OBU_T_TM *P021_onboard)
{
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1 */
  static kcg_bool IfBlock1_clock_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else::else */
  static kcg_bool _1_else_clock_1_IfBlock1;
  /* 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 else_clock_1_IfBlock1;
  /* TM_conversions::C_P021_compr_onboard::_L1 */
  static array_int_5 _L1;
  /* TM_conversions::C_P021_compr_onboard::_L22 */
  static kcg_bool _L22;
  
  kcg_copy_array_int_5(&_L1, (array_int_5 *) &(*PacketData)[0]);
  (*P021_onboard).n_iter = _L1[4];
  _L22 = _L1[0] == 21;
  (*P021_onboard).valid = _L22;
  _1_else_clock_1_IfBlock1 = _L1[1] == INT_Q_DIR_nomiinal_TM_conversions;
  IfBlock1_clock_1 = _L1[3] == INT_Q_SCALE_10cm_TM_conversions;
  /* 1_ck_IfBlock1 */ if (_1_else_clock_1_IfBlock1) {
    (*P021_onboard).q_dir = ENUM_Q_DIR_nominal_TM_conversions;
  }
  else {
    else_clock_1_IfBlock1 = _L1[1] == INT_Q_DIR_reverse_TM_conversions;
    /* 1_ck_anon_activ */ if (else_clock_1_IfBlock1) {
      (*P021_onboard).q_dir = ENUM_Q_DIR_reverse_TM_conversions;
    }
    else {
      _2_else_clock_1_IfBlock1 = _L1[1] == INT_Q_DIR_both_TM_conversions;
      /* 1_ck_anon_activ */ if (_2_else_clock_1_IfBlock1) {
        (*P021_onboard).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
      else {
        (*P021_onboard).q_dir = ENUM_Q_DIR_both_TM_conversions;
      }
    }
  }
  /* 1_ck_IfBlock1 */ if (IfBlock1_clock_1) {
    (*P021_onboard).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
  }
  else {
    _2_else_clock_1_IfBlock1 = _L1[3] == INT_Q_SCALE_1m_TM_conversions;
    /* 1_ck_anon_activ */ if (_2_else_clock_1_IfBlock1) {
      (*P021_onboard).q_scale = ENUM_Q_SCALE_1m_TM_conversions;
    }
    else {
      _1_else_clock_1_IfBlock1 = _L1[3] == INT_Q_SCALE_10m_TM_conversions;
      /* 1_ck_anon_activ */ if (_1_else_clock_1_IfBlock1) {
        (*P021_onboard).q_scale = ENUM_Q_SCALE_10m_TM_conversions;
      }
      else {
        (*P021_onboard).q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
      }
    }
  }
  /* 1 */
  C_P021_unflatten_sections_TM_lib_internal(
    _L22,
    _L1[4],
    (P021_sections_array_flat_T_TM *) &(*PacketData)[5],
    &(*P021_onboard).sections);
}