/* TA_SSP::Convert_P27_to_DistanceProfile_1st_section */
void Convert_P27_to_DistancePr_TA_SSP(
  /* TA_SSP::Convert_P27_to_DistanceProfile_1st_section::q_scale */Q_SCALE q_scale,
  /* TA_SSP::Convert_P27_to_DistanceProfile_1st_section::Section1_in */P027V1_section_enum_T_TM_baseline2 *Section1_in,
  /* TA_SSP::Convert_P27_to_DistanceProfile_1st_section::TrainLength */L_internal_Type_Obu_BasicTypes_Pkg TrainLength,
  outC_Convert_P27_to_DistancePr_TA_SSP *outC)
{
  kcg_copy_P027V1_section_enum_T_TM_baseline2(&outC->_L98, Section1_in);
  outC->_L97 = TrainLength;
  kcg_copy_P027V1_section_enum_T_TM_baseline2(&outC->_L93, Section1_in);
  outC->_L96 = outC->_L93.v_static;
  outC->v_static_section1 = outC->_L96;
  outC->_L89 = q_scale;
  kcg_copy_P027V1_section_enum_T_TM_baseline2(&outC->_L86, Section1_in);
  outC->_L87 = outC->_L86.d_static;
  /* 2 */
  Normalize_Distance_d_inte_TA_Lib_internal(
    outC->_L89,
    outC->_L87,
    &outC->Context_2);
  outC->_L88 = outC->Context_2.d_internal;
  outC->_L95.target = outC->_L88;
  outC->_L95.speed = outC->_L96;
  outC->_L91 = outC->_L98.q_front;
  /* 2 */
  Eval_Q_Front_TA_Lib_internal(outC->_L91, outC->_L97, &outC->_1_Context_2);
  outC->_L90 = outC->_1_Context_2.added_train_length;
  outC->_L92 = outC->_L88 + outC->_L90;
  outC->_L94.target = outC->_L92;
  outC->_L94.speed = outC->_L96;
  kcg_copy_SSP_section_t_TA_MRSP(&outC->section1_delay, &outC->_L94);
  kcg_copy_SSP_section_t_TA_MRSP(&outC->section1, &outC->_L95);
}
/* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop */
void SSP_Convert_P27V1_to_DistanceProfile_loop_TA_SSP(
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop::i */ kcg_int i,
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop::ProfileAccu */ StaticSpeedProfile_t_TrackAtlasTypes *ProfileAccu,
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop::SectionIn */ P027V1_OBU_sectionlist_enum_T_TM_baseline2 *SectionIn,
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop::q_scale */ Q_SCALE q_scale,
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop::SpeedtProfile */ StaticSpeedProfile_t_TrackAtlasTypes *SpeedtProfile)
{
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop */
  static kcg_int tmp2;
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop */
  static kcg_int tmp1;
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop */
  static kcg_bool tmp;
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop::_L135 */
  static L_internal_Type_Obu_BasicTypes_Pkg _L135;
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop::_L123 */
  static P027V1_section_enum_T_TM_baseline2 _L123;
  /* TA_SSP::SSP_Convert_P27V1_to_DistanceProfile_loop::_L143 */
  static StaticSpeedSection_t_TrackAtlasTypes _L143;
  
  if ((0 <= i) & (i < 33)) {
    kcg_copy_P027V1_section_enum_T_TM_baseline2(&_L123, &(*SectionIn)[i]);
  }
  else {
    kcg_copy_P027V1_section_enum_T_TM_baseline2(
      &_L123,
      (P027V1_section_enum_T_TM_baseline2 *)
        &DEFAULT_P027v1_OBU_section_TM_baseline2);
  }
  _L135 = /* 2 */
    Normalize_Distance_d_internal_t_TA_Lib_internal(q_scale, _L123.d_static);
  if ((0 <= i - 1) & (i - 1 < 50)) {
    kcg_copy_StaticSpeedSection_t_TrackAtlasTypes(
      &_L143,
      &(*ProfileAccu)[i - 1]);
  }
  else {
    kcg_copy_StaticSpeedSection_t_TrackAtlasTypes(
      &_L143,
      (StaticSpeedSection_t_TrackAtlasTypes *)
        &DEFAULT_StaticSpeedSection_TrackAtlasTypes);
  }
  kcg_copy_StaticSpeedProfile_t_TrackAtlasTypes(SpeedtProfile, ProfileAccu);
  /* 2 */ if (_L123.valid) {
    tmp2 = _L135 + _L143.d_static_abs;
    tmp1 = _L135 + _L143.d_static_LRBG;
  }
  else {
    tmp2 = 0;
    tmp1 = 0;
  }
  tmp = /* 1 */ Eval_Q_Front_TA_Lib_internal(_L123.q_front);
  if ((0 <= i) & (i < 50)) {
    (*SpeedtProfile)[i].valid = _L123.valid;
    (*SpeedtProfile)[i].d_static_abs = tmp2;
    (*SpeedtProfile)[i].d_static_LRBG = tmp1;
    (*SpeedtProfile)[i].q_train_length_corr = tmp;
    (*SpeedtProfile)[i].v_static = _L123.v_static;
  }
}