/* Receive_TrackSide_Msg_Pkg::setCoordinateSystemPosition */
void setCoordinateSystemPosition_Receive_TrackSide_Msg_Pkg(
  /* Receive_TrackSide_Msg_Pkg::setCoordinateSystemPosition::inOldPosition */ centerOfBalisePosition_T_BG_Types_Pkg *inOldPosition,
  /* Receive_TrackSide_Msg_Pkg::setCoordinateSystemPosition::newTelegram */ Telegram_T_BG_Types_Pkg *newTelegram,
  /* Receive_TrackSide_Msg_Pkg::setCoordinateSystemPosition::incenterOfBalisePosition */ centerOfBalisePosition_T_BG_Types_Pkg *incenterOfBalisePosition,
  outC_setCoordinateSystemPosition_Receive_TrackSide_Msg_Pkg *outC)
{
  kcg_copy_Telegram_T_BG_Types_Pkg(&outC->_L1, newTelegram);
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(&outC->_L2, inOldPosition);
  outC->_L10 = outC->_L1.telegramheader.m_dup;
  outC->_L11 = M_DUP_No_duplicates;
  outC->_L12 = outC->_L10 != outC->_L11;
  outC->_L8 = N_PIG_I_am_the_2nd;
  outC->_L3 = outC->_L1.telegramheader.n_pig;
  outC->_L9 = outC->_L8 == outC->_L3;
  outC->_L18 = outC->_L2.odometerOfBaliseDetection.valid;
  outC->_L16 = !outC->_L18;
  outC->_L13 = outC->_L12 & outC->_L9 & outC->_L16;
  outC->_L6 = N_PIG_I_am_the_1st;
  outC->_L5 = outC->_L3 == outC->_L6;
  outC->_L14 = outC->_L13 | outC->_L5;
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &outC->_L4,
    incenterOfBalisePosition);
  /* 1 */ if (outC->_L14) {
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(&outC->_L7, &outC->_L4);
  }
  else {
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(&outC->_L7, &outC->_L2);
  }
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &outC->outUpdateBGPosition,
    &outC->_L7);
}
/* Receive_TrackSide_Msg_Pkg::BaliseSupport::updateCollectorSendMessage */
void updateCollectorSendMessage_Receive_TrackSide_Msg_Pkg_BaliseSupport(
  /* Receive_TrackSide_Msg_Pkg::BaliseSupport::updateCollectorSendMessage::inCollector */BGCollector_T_Receive_TrackSide_Msg_Pkg *inCollector,
  /* Receive_TrackSide_Msg_Pkg::BaliseSupport::updateCollectorSendMessage::outCollector */BGCollector_T_Receive_TrackSide_Msg_Pkg *outCollector)
{
  (*outCollector).badBaliseFlag = (*inCollector).badBaliseFlag;
  (*outCollector).BGMessageSent = kcg_true;
  (*outCollector).C_ID = (*inCollector).C_ID;
  (*outCollector).BG_ID = (*inCollector).BG_ID;
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &(*outCollector).balisePosition,
    &(*inCollector).balisePosition);
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &(*outCollector).positionFirstContact,
    &(*inCollector).positionFirstContact);
  (*outCollector).collectedTelegrams = (*inCollector).collectedTelegrams;
  (*outCollector).totalTelegrams = (*inCollector).totalTelegrams;
}
/* Receive_TrackSide_Msg_Pkg::BaliseSupport::initCollector */
void initCollector_Receive_TrackSide_Msg_Pkg_BaliseSupport(
  /* Receive_TrackSide_Msg_Pkg::BaliseSupport::initCollector::newTelegram */ Telegram_T_BG_Types_Pkg *newTelegram,
  /* Receive_TrackSide_Msg_Pkg::BaliseSupport::initCollector::outCollector */ BGCollector_T_Receive_TrackSide_Msg_Pkg *outCollector)
{
  (*outCollector).badBaliseFlag = kcg_false;
  (*outCollector).BGMessageSent = kcg_true;
  (*outCollector).C_ID = (*newTelegram).telegramheader.nid_c;
  (*outCollector).BG_ID = (*newTelegram).telegramheader.nid_bg;
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &(*outCollector).balisePosition,
    (centerOfBalisePosition_T_BG_Types_Pkg *) &cemptyPosition_BG_Types_Pkg);
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &(*outCollector).positionFirstContact,
    (centerOfBalisePosition_T_BG_Types_Pkg *) &cemptyPosition_BG_Types_Pkg);
  (*outCollector).collectedTelegrams = 0;
  (*outCollector).totalTelegrams = /* 1 */
    convNTotal_Receive_TrackSide_Msg_Pkg_BaliseSupport(
      (*newTelegram).telegramheader.n_total);
}
/* Receive_TrackSide_Msg_Pkg::BaliseSupport::updateCollectorSingleBB */
void updateCollectorSingleBB_Receive_TrackSide_Msg_Pkg_BaliseSupport(
  /* Receive_TrackSide_Msg_Pkg::BaliseSupport::updateCollectorSingleBB::inSingleBadBalise */ kcg_bool inSingleBadBalise,
  /* Receive_TrackSide_Msg_Pkg::BaliseSupport::updateCollectorSingleBB::inCollector */ BGCollector_T_Receive_TrackSide_Msg_Pkg *inCollector,
  /* Receive_TrackSide_Msg_Pkg::BaliseSupport::updateCollectorSingleBB::outCollector */ BGCollector_T_Receive_TrackSide_Msg_Pkg *outCollector)
{
  (*outCollector).BGMessageSent = (*inCollector).BGMessageSent;
  (*outCollector).C_ID = (*inCollector).C_ID;
  (*outCollector).BG_ID = (*inCollector).BG_ID;
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &(*outCollector).balisePosition,
    &(*inCollector).balisePosition);
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &(*outCollector).positionFirstContact,
    &(*inCollector).positionFirstContact);
  (*outCollector).collectedTelegrams = (*inCollector).collectedTelegrams;
  (*outCollector).totalTelegrams = (*inCollector).totalTelegrams;
  /* 1 */ if (inSingleBadBalise) {
    (*outCollector).badBaliseFlag = kcg_false;
  }
  else {
    (*outCollector).badBaliseFlag = (*inCollector).badBaliseFlag;
  }
}
/* Receive_TrackSide_Msg_Pkg::BuildBGMessage */
void BuildBGMessage_Receive_TrackSide_Msg_Pkg(
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::reset */ kcg_bool reset,
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::inTelegramPresent */ kcg_bool inTelegramPresent,
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::inDecodedTelegram */ Telegram_T_BG_Types_Pkg *inDecodedTelegram,
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::incenterOfBalisePosition */ centerOfBalisePosition_T_BG_Types_Pkg *incenterOfBalisePosition,
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::inActualOdometry */ odometry_T_Obu_BasicTypes_Pkg *inActualOdometry,
  outC_BuildBGMessage_Receive_TrackSide_Msg_Pkg *outC)
{
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage */
  static TelegramStore_T_Receive_TrackSide_Msg_Pkg tmp5;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage */
  static Telegram_T_BG_Types_Pkg tmp4;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage */
  static centerOfBalisePosition_T_BG_Types_Pkg tmp3;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage */
  static kcg_bool tmp2;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage */
  static kcg_bool tmp1;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage */
  static kcg_bool tmp;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::IfBlock4::else::_L11 */
  static Telegram_T_BG_Types_Pkg _L11_IfBlock4;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::IfBlock4::else::_L12 */
  static centerOfBalisePosition_T_BG_Types_Pkg _L12_IfBlock4;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::IfBlock1::then::_L22 */
  static kcg_bool _L22_IfBlock1;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::IfBlock1::else::IfBlock3 */
  static kcg_bool IfBlock3_clock_IfBlock1;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::storeBGTelegramArray */
  static TelegramArray_T_BG_Types_Pkg last_storeBGTelegramArray;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::storeCollector */
  static BGCollector_T_Receive_TrackSide_Msg_Pkg last_storeCollector;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::BGisComplete */
  static kcg_bool BGisComplete;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::telegramPresent */
  static kcg_bool telegramPresent;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::tempCollectorStore */
  static BGCollector_T_Receive_TrackSide_Msg_Pkg tempCollectorStore;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::tempBGTelegramArray */
  static TelegramArray_T_BG_Types_Pkg tempBGTelegramArray;
  /* Receive_TrackSide_Msg_Pkg::BuildBGMessage::_L43 */
  static kcg_bool _L43;
  
  _L43 = !reset;
  /* ck_reset */ if (reset) {
    telegramPresent = kcg_false;
    tmp1 = kcg_false;
  }
  else {
    /* last_init_ck_storeAdditionalTelegram */ if (outC->init) {
      kcg_copy_TelegramStore_T_Receive_TrackSide_Msg_Pkg(
        &tmp5,
        (TelegramStore_T_Receive_TrackSide_Msg_Pkg *)
          &cEmptyStore_Receive_TrackSide_Msg_Pkg);
    }
    else {
      kcg_copy_TelegramStore_T_Receive_TrackSide_Msg_Pkg(
        &tmp5,
        &outC->storeAdditionalTelegram);
    }
    /* 3 */
    manageAdditionalTelegram_Receive_TrackSide_Msg_Pkg(
      inDecodedTelegram,
      incenterOfBalisePosition,
      &tmp5,
      inTelegramPresent,
      &telegramPresent,
      &_L11_IfBlock4,
      &_L12_IfBlock4,
      &tmp1);
  }
  /* last_init_ck_storeBGTelegramArray */ if (outC->init) {
    kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
      &last_storeCollector,
      (BGCollector_T_Receive_TrackSide_Msg_Pkg *)
        &cEmptyCollector_Receive_TrackSide_Msg_Pkg);
    outC->init = kcg_false;
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &last_storeBGTelegramArray,
      (TelegramArray_T_BG_Types_Pkg *) &cEmptyTelegramArray_BG_Types_Pkg);
  }
  else {
    kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
      &last_storeCollector,
      &outC->storeCollector);
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &last_storeBGTelegramArray,
      &outC->storeBGTelegramArray);
  }
  /* ck_telegramPresent */ if (telegramPresent) {
    /* ck_reset */ if (reset) {
      kcg_copy_Telegram_T_BG_Types_Pkg(
        &tmp4,
        (Telegram_T_BG_Types_Pkg *) &cEmpty_BaliseTlg_BG_Types_Pkg);
      kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
        &tmp3,
        (centerOfBalisePosition_T_BG_Types_Pkg *) &cemptyPosition_BG_Types_Pkg);
    }
    else {
      kcg_copy_Telegram_T_BG_Types_Pkg(&tmp4, &_L11_IfBlock4);
      kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(&tmp3, &_L12_IfBlock4);
    }
    /* 1 */
    manageTelegram_Receive_TrackSide_Msg_Pkg(
      &tmp4,
      &tmp3,
      &last_storeCollector,
      &last_storeBGTelegramArray,
      &BGisComplete,
      &tmp,
      &tempCollectorStore,
      &tempBGTelegramArray,
      &_L22_IfBlock1);
  }
  else {
    IfBlock3_clock_IfBlock1 = _L43;
    /* ck_IfBlock3 */ if (IfBlock3_clock_IfBlock1) {
      /* 3 */
      checkOdometry_Receive_TrackSide_Msg_Pkg(
        inActualOdometry,
        &last_storeCollector,
        &BGisComplete,
        &tmp,
        &tempCollectorStore);
      kcg_copy_TelegramArray_T_BG_Types_Pkg(
        &tempBGTelegramArray,
        &last_storeBGTelegramArray);
    }
    else {
      BGisComplete = kcg_false;
      kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
        &tempCollectorStore,
        (BGCollector_T_Receive_TrackSide_Msg_Pkg *)
          &cEmptyCollector_Receive_TrackSide_Msg_Pkg);
      kcg_copy_TelegramArray_T_BG_Types_Pkg(
        &tempBGTelegramArray,
        (TelegramArray_T_BG_Types_Pkg *) &cEmptyTelegramArray_BG_Types_Pkg);
      tmp = kcg_false;
    }
  }
  /* ck_BGisComplete */ if (BGisComplete) {
    outC->outBGMessage.present = kcg_true;
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &outC->outBGMessage.Telegrams,
      &tempBGTelegramArray);
    /* 1 */
    updateCollectorSendMessage_Receive_TrackSide_Msg_Pkg_BaliseSupport(
      &tempCollectorStore,
      &outC->storeCollector);
    outC->outBGMessage.numberBalises = outC->storeCollector.collectedTelegrams;
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->outBGMessage.centerOfBalisePosition,
      &outC->storeCollector.balisePosition);
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &outC->storeBGTelegramArray,
      &tempBGTelegramArray);
  }
  else {
    outC->outBGMessage.present = kcg_false;
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &outC->outBGMessage.Telegrams,
      (TelegramArray_T_BG_Types_Pkg *) &cEmptyTelegramArray_BG_Types_Pkg);
    outC->outBGMessage.numberBalises = 0;
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->outBGMessage.centerOfBalisePosition,
      (centerOfBalisePosition_T_BG_Types_Pkg *) &cemptyPosition_BG_Types_Pkg);
    /* ck_telegramPresent */ if (telegramPresent) {
      tmp2 = _L22_IfBlock1;
    }
    else /* ck_IfBlock3 */ if (IfBlock3_clock_IfBlock1) {
      tmp2 = kcg_false;
    }
    else {
      tmp2 = kcg_true;
    }
    /* ck_IfBlock3 */ if (tmp2) {
      kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
        &outC->storeCollector,
        &tempCollectorStore);
      kcg_copy_TelegramArray_T_BG_Types_Pkg(
        &outC->storeBGTelegramArray,
        &tempBGTelegramArray);
    }
    else {
      kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
        &outC->storeCollector,
        &last_storeCollector);
      kcg_copy_TelegramArray_T_BG_Types_Pkg(
        &outC->storeBGTelegramArray,
        &last_storeBGTelegramArray);
    }
  }
  /* 3 */ if (inTelegramPresent & (tmp1 | tmp) & _L43) {
    outC->storeAdditionalTelegram.valid = kcg_true;
    kcg_copy_Telegram_T_BG_Types_Pkg(
      &outC->storeAdditionalTelegram.telegram,
      inDecodedTelegram);
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->storeAdditionalTelegram.position,
      incenterOfBalisePosition);
  }
  else {
    kcg_copy_TelegramStore_T_Receive_TrackSide_Msg_Pkg(
      &outC->storeAdditionalTelegram,
      (TelegramStore_T_Receive_TrackSide_Msg_Pkg *)
        &cEmptyStore_Receive_TrackSide_Msg_Pkg);
  }
}
/* Receive_TrackSide_Msg_Pkg::addTelegram */
void addTelegram_Receive_TrackSide_Msg_Pkg(
  /* Receive_TrackSide_Msg_Pkg::addTelegram::newTelegram */ Telegram_T_BG_Types_Pkg *newTelegram,
  /* Receive_TrackSide_Msg_Pkg::addTelegram::inCollector */ BGCollector_T_Receive_TrackSide_Msg_Pkg *inCollector,
  /* Receive_TrackSide_Msg_Pkg::addTelegram::inoldTelegramArray */ TelegramArray_T_BG_Types_Pkg *inoldTelegramArray,
  /* Receive_TrackSide_Msg_Pkg::addTelegram::doUpdate */ kcg_bool doUpdate,
  /* Receive_TrackSide_Msg_Pkg::addTelegram::inPosition */ centerOfBalisePosition_T_BG_Types_Pkg *inPosition,
  outC_addTelegram_Receive_TrackSide_Msg_Pkg *outC)
{
  kcg_int i3;
  kcg_int i2;
  kcg_int i1;
  kcg_int i;
  /* Receive_TrackSide_Msg_Pkg::addTelegram::outIsDuplicate */ kcg_bool _7_outIsDuplicate;
  /* Receive_TrackSide_Msg_Pkg::addTelegram::outBGisComplete */ kcg_bool _6_outBGisComplete;
  /* Receive_TrackSide_Msg_Pkg::addTelegram::outTelegramArray */ TelegramArray_T_BG_Types_Pkg _5_outTelegramArray;
  /* Receive_TrackSide_Msg_Pkg::addTelegram::outCollector */ BGCollector_T_Receive_TrackSide_Msg_Pkg _4_outCollector;
  kcg_int noname;
  /* Receive_TrackSide_Msg_Pkg::addTelegram::outIsDuplicate */ kcg_bool outIsDuplicate;
  /* Receive_TrackSide_Msg_Pkg::addTelegram::outBGisComplete */ kcg_bool outBGisComplete;
  /* Receive_TrackSide_Msg_Pkg::addTelegram::outTelegramArray */ TelegramArray_T_BG_Types_Pkg outTelegramArray;
  /* Receive_TrackSide_Msg_Pkg::addTelegram::outCollector */ BGCollector_T_Receive_TrackSide_Msg_Pkg outCollector;
  
  outC->IfBlock1_clock = doUpdate;
  /* ck_IfBlock1 */ if (outC->IfBlock1_clock) {
    kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
      &outC->_L9_IfBlock1,
      inCollector);
    outC->_L3_IfBlock1 = outC->_L9_IfBlock1.badBaliseFlag;
    outC->_L54_IfBlock1 = outC->_L9_IfBlock1.BGMessageSent;
    outC->_L53_IfBlock1 = outC->_L9_IfBlock1.C_ID;
    outC->_L52_IfBlock1 = outC->_L9_IfBlock1.BG_ID;
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->_L51_IfBlock1,
      &outC->_L9_IfBlock1.balisePosition);
    kcg_copy_Telegram_T_BG_Types_Pkg(&outC->_L45_IfBlock1, newTelegram);
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->_L17_IfBlock1,
      inPosition);
    /* 1 */
    setCoordinateSystemPosition_Receive_TrackSide_Msg_Pkg(
      &outC->_L51_IfBlock1,
      &outC->_L45_IfBlock1,
      &outC->_L17_IfBlock1,
      &outC->Context_1);
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->_L15_IfBlock1,
      &outC->Context_1.outUpdateBGPosition);
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->_L50_IfBlock1,
      &outC->_L9_IfBlock1.positionFirstContact);
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->_L47_IfBlock1,
      inPosition);
    /* 1 */
    setIntervalBGPosition_Receive_TrackSide_Msg_Pkg(
      &outC->_L50_IfBlock1,
      &outC->_L47_IfBlock1,
      &outC->_1_Context_1);
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->_L46_IfBlock1,
      &outC->_1_Context_1.outUpdateBGPosition);
    outC->_L49_IfBlock1 = outC->_L9_IfBlock1.collectedTelegrams;
    outC->_L8_IfBlock1 = 1;
    outC->_L1_IfBlock1 = outC->_L49_IfBlock1 + outC->_L8_IfBlock1;
    outC->_L48_IfBlock1 = outC->_L9_IfBlock1.totalTelegrams;
    outC->_L6_IfBlock1.badBaliseFlag = outC->_L3_IfBlock1;
    outC->_L6_IfBlock1.BGMessageSent = outC->_L54_IfBlock1;
    outC->_L6_IfBlock1.C_ID = outC->_L53_IfBlock1;
    outC->_L6_IfBlock1.BG_ID = outC->_L52_IfBlock1;
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->_L6_IfBlock1.balisePosition,
      &outC->_L15_IfBlock1);
    kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
      &outC->_L6_IfBlock1.positionFirstContact,
      &outC->_L46_IfBlock1);
    outC->_L6_IfBlock1.collectedTelegrams = outC->_L1_IfBlock1;
    outC->_L6_IfBlock1.totalTelegrams = outC->_L48_IfBlock1;
    kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
      &_4_outCollector,
      &outC->_L6_IfBlock1);
    kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
      &outC->outCollector,
      &_4_outCollector);
    kcg_copy_Telegram_T_BG_Types_Pkg(&outC->_L41_IfBlock1, newTelegram);
    /* pow */ for (i1 = 0; i1 < 8; i1++) {
      kcg_copy_Telegram_T_BG_Types_Pkg(
        &outC->_L37_IfBlock1[i1],
        &outC->_L41_IfBlock1);
    }
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &outC->_L39_IfBlock1,
      inoldTelegramArray);
    outC->_L40_IfBlock1 = doUpdate;
    kcg_copy_Telegram_T_BG_Types_Pkg(
      &outC->_L55_IfBlock1,
      (Telegram_T_BG_Types_Pkg *) &cEmpty_BaliseTlg_BG_Types_Pkg);
    if (outC->_L40_IfBlock1) {
      for (i = 0; i < 8; i++) {
        /* 3 */
        setFirstFree_Receive_TrackSide_Msg_Pkg_BaliseSupport(
          &outC->_L37_IfBlock1[i],
          &outC->_L39_IfBlock1[i],
          &outC->Context_3[i]);
        kcg_copy_Telegram_T_BG_Types_Pkg(
          &outC->_L36_IfBlock1[i],
          &outC->Context_3[i].outTelegrams);
        outC->_L35_IfBlock1 = i + 1;
        if (!outC->Context_3[i].cont) {
          break;
        }
      }
    }
    else {
      outC->_L35_IfBlock1 = 0;
    }
#ifdef KCG_MAPW_CPY
    
    for (i = outC->_L35_IfBlock1; i < 8; i++) {
      kcg_copy_Telegram_T_BG_Types_Pkg(
        &outC->_L36_IfBlock1[i],
        &outC->_L55_IfBlock1);
    }
#endif /* KCG_MAPW_CPY */
    
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &_5_outTelegramArray,
      &outC->_L36_IfBlock1);
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &outC->outTelegramArray,
      &_5_outTelegramArray);
    outC->_L21_IfBlock1 = outC->_L1_IfBlock1 >= outC->_L48_IfBlock1;
    _6_outBGisComplete = outC->_L21_IfBlock1;
    outC->outBGisComplete = _6_outBGisComplete;
    _7_outIsDuplicate = kcg_false;
    outC->outIsDuplicate = _7_outIsDuplicate;
    noname = outC->_L35_IfBlock1;
  }
  else {
    kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
      &outC->_L19_IfBlock1,
      inCollector);
    kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
      &outCollector,
      &outC->_L19_IfBlock1);
    kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
      &outC->outCollector,
      &outCollector);
    kcg_copy_Telegram_T_BG_Types_Pkg(&outC->_L174_IfBlock1, newTelegram);
    /* pow */ for (i3 = 0; i3 < 8; i3++) {
      kcg_copy_Telegram_T_BG_Types_Pkg(
        &outC->_L16_IfBlock1[i3],
        &outC->_L174_IfBlock1);
    }
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &outC->_L13_IfBlock1,
      inoldTelegramArray);
    outC->_L18_IfBlock1 = kcg_true;
    kcg_copy_Telegram_T_BG_Types_Pkg(
      &outC->_L20_IfBlock1,
      (Telegram_T_BG_Types_Pkg *) &cEmpty_BaliseTlg_BG_Types_Pkg);
    outC->_L22_IfBlock1 = kcg_false;
    if (outC->_L18_IfBlock1) {
      for (i2 = 0; i2 < 8; i2++) {
        /* 1 */
        replaceTelegram_Receive_TrackSide_Msg_Pkg_BaliseSupport(
          &outC->_L16_IfBlock1[i2],
          &outC->_L13_IfBlock1[i2],
          &outC->_2_Context_1[i2]);
        kcg_copy_Telegram_T_BG_Types_Pkg(
          &outC->_L155_IfBlock1[i2],
          &outC->_2_Context_1[i2].outTelegrams);
        outC->_L213_IfBlock1[i2] = outC->_2_Context_1[i2].outIsDuplicate;
        outC->_L14_IfBlock1 = i2 + 1;
        if (!outC->_2_Context_1[i2].cont) {
          break;
        }
      }
    }
    else {
      outC->_L14_IfBlock1 = 0;
    }
#ifdef KCG_MAPW_CPY
    
    for (i2 = outC->_L14_IfBlock1; i2 < 8; i2++) {
      kcg_copy_Telegram_T_BG_Types_Pkg(
        &outC->_L155_IfBlock1[i2],
        &outC->_L20_IfBlock1);
      outC->_L213_IfBlock1[i2] = outC->_L22_IfBlock1;
    }
#endif /* KCG_MAPW_CPY */
    
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &outTelegramArray,
      &outC->_L155_IfBlock1);
    kcg_copy_TelegramArray_T_BG_Types_Pkg(
      &outC->outTelegramArray,
      &outTelegramArray);
    outC->_L31_IfBlock1 = kcg_false;
    outC->_L30_IfBlock1 = 1;
    outC->_L29_IfBlock1 = outC->_L14_IfBlock1 - outC->_L30_IfBlock1;
    if ((0 <= outC->_L29_IfBlock1) & (outC->_L29_IfBlock1 < 8)) {
      outC->_L27_IfBlock1 = outC->_L213_IfBlock1[outC->_L29_IfBlock1];
    }
    else {
      outC->_L27_IfBlock1 = outC->_L31_IfBlock1;
    }
    outC->_L33_IfBlock1 = !outC->_L27_IfBlock1;
    outC->_L4_IfBlock1 = outC->_L19_IfBlock1.collectedTelegrams;
    outC->_L5_IfBlock1 = outC->_L19_IfBlock1.totalTelegrams;
    outC->_L87_IfBlock1 = outC->_L4_IfBlock1 >= outC->_L5_IfBlock1;
    outC->_L96_IfBlock1 = outC->_L19_IfBlock1.BGMessageSent;
    outC->_L10_IfBlock1 = !outC->_L96_IfBlock1;
    outC->_L11_IfBlock1 = outC->_L87_IfBlock1 & outC->_L10_IfBlock1;
    outC->_L32_IfBlock1 = outC->_L33_IfBlock1 & outC->_L11_IfBlock1;
    outBGisComplete = outC->_L32_IfBlock1;
    outC->outBGisComplete = outBGisComplete;
    outIsDuplicate = outC->_L27_IfBlock1;
    outC->outIsDuplicate = outIsDuplicate;
  }
}
/* Receive_TrackSide_Msg_Pkg::manageTelegram */
void manageTelegram_Receive_TrackSide_Msg_Pkg(
  /* Receive_TrackSide_Msg_Pkg::manageTelegram::newTelegram */ Telegram_T_BG_Types_Pkg *newTelegram,
  /* Receive_TrackSide_Msg_Pkg::manageTelegram::incenterOfBalisePosition */ centerOfBalisePosition_T_BG_Types_Pkg *incenterOfBalisePosition,
  /* Receive_TrackSide_Msg_Pkg::manageTelegram::inCollector */ BGCollector_T_Receive_TrackSide_Msg_Pkg *inCollector,
  /* Receive_TrackSide_Msg_Pkg::manageTelegram::inoldTelegramArray */ TelegramArray_T_BG_Types_Pkg *inoldTelegramArray,
  outC_manageTelegram_Receive_TrackSide_Msg_Pkg *outC)
{
  kcg_copy_Telegram_T_BG_Types_Pkg(&outC->_L6, newTelegram);
  kcg_copy_TelegramArray_T_BG_Types_Pkg(&outC->_L60, inoldTelegramArray);
  kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(&outC->_L51, inCollector);
  /* 1 */
  checkInit_Receive_TrackSide_Msg_Pkg(
    &outC->_L6,
    &outC->_L51,
    &outC->Context_1);
  kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
    &outC->_L66,
    &outC->Context_1.outCollector);
  /* 1 */
  checkTelegram_Receive_TrackSide_Msg_Pkg(
    &outC->_L6,
    &outC->_L60,
    &outC->_L66,
    &outC->_1_Context_1);
  kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
    &outC->_L63,
    &outC->_1_Context_1.outCollector);
  kcg_copy_TelegramArray_T_BG_Types_Pkg(
    &outC->_L64,
    &outC->_1_Context_1.outTelegramArray);
  outC->_L10 = outC->_1_Context_1.outTelegramNotInGroup;
  outC->_L11 = outC->_1_Context_1.outBGchangedEarly;
  outC->isNotReceivedAlready = outC->_L10;
  outC->_L69 = outC->isNotReceivedAlready;
  kcg_copy_centerOfBalisePosition_T_BG_Types_Pkg(
    &outC->_L47,
    incenterOfBalisePosition);
  /* 4 */
  addTelegram_Receive_TrackSide_Msg_Pkg(
    &outC->_L6,
    &outC->_L63,
    &outC->_L64,
    outC->_L69,
    &outC->_L47,
    &outC->Context_4);
  kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
    &outC->_L54,
    &outC->Context_4.outCollector);
  kcg_copy_TelegramArray_T_BG_Types_Pkg(
    &outC->_L58,
    &outC->Context_4.outTelegramArray);
  outC->_L53 = outC->Context_4.outBGisComplete;
  outC->_L67 = outC->Context_4.outIsDuplicate;
  outC->_L65 = outC->_L53 | outC->_L11;
  outC->outBGisComplete = outC->_L65;
  outC->outBGisChangedEarly = outC->_L11;
  kcg_copy_BGCollector_T_Receive_TrackSide_Msg_Pkg(
    &outC->outCollector,
    &outC->_L54);
  kcg_copy_TelegramArray_T_BG_Types_Pkg(&outC->outTelegramArray, &outC->_L58);
  outC->_L70 = outC->isNotReceivedAlready;
  outC->_L73 = !outC->_L67;
  outC->needsReplace = outC->_L73;
  outC->_L72 = outC->needsReplace;
  outC->_L68 = outC->_L70 | outC->_L72;
  outC->outStoresChanged = outC->_L68;
}