/* TM_trackside_baseline2::Write_P003V1 */
void Write_P003V1_TM_trackside_baseline2(
  /* TM_trackside_baseline2::Write_P003V1::Packet003V1 */P003V1_trackside_int_T_TM_baseline2 *Packet003V1,
  /* TM_trackside_baseline2::Write_P003V1::Packets */CompressedPackets_T_Common_Types_Pkg *Packets,
  outC_Write_P003V1_TM_trackside_baseline2 *outC)
{
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L40, Packets);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L42,
    &outC->_L40.PacketData);
  kcg_copy_P003V1_trackside_int_T_TM_baseline2(&outC->_L1, Packet003V1);
  /* 1 */
  C_P003V1_tracksim_compr_TM_conversions_baseline2(
    &outC->_L1,
    &outC->Context_1);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L43,
    &outC->Context_1.Header);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L44,
    &outC->Context_1.P003V1_compressed);
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L41, &outC->_L40.PacketHeaders);
  /* 1 */
  SEND_WriteBaliseMessageHeader_TM_lib_internal(
    &outC->_L41,
    &outC->_L43,
    &outC->_1_Context_1);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L4,
    &outC->_1_Context_1.HeadersOut);
  outC->_L21 = outC->_1_Context_1.NewStartAddr;
  outC->_L22 = outC->_1_Context_1.NewEndAddr;
  /* 1 */
  SEND_MessageData_TM_lib_internal(
    outC->_L21,
    outC->_L22,
    &outC->_L42,
    &outC->_L44,
    &outC->_2_Context_1);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L10,
    &outC->_2_Context_1.DataOut);
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L39.PacketHeaders, &outC->_L4);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L39.PacketData,
    &outC->_L10);
  outC->_L18 = kcg_false;
  outC->Error = outC->_L18;
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(
    &outC->RadioPacketsOut,
    &outC->_L39);
}
/* TM_lib_internal::RECV_ReadPackets */
void RECV_ReadPackets_TM_lib_internal(
  /* TM_lib_internal::RECV_ReadPackets::Packets */CompressedPackets_T_Common_Types_Pkg *Packets,
  /* TM_lib_internal::RECV_ReadPackets::PacketID */kcg_int PacketID,
  /* TM_lib_internal::RECV_ReadPackets::F_version */kcg_bool F_version,
  /* TM_lib_internal::RECV_ReadPackets::F_id */kcg_bool F_id,
  outC_RECV_ReadPackets_TM_lib_internal *outC)
{
  array_int_500 tmp;
  kcg_int noname;
  
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L46, Packets);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L48,
    &outC->_L46.PacketData);
  outC->_L45 = PacketID;
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L47, &outC->_L46.PacketHeaders);
  outC->_L49 = F_version;
  outC->_L50 = F_id;
  /* 1 */
  RECV_LookupPacket_TM_lib_internal(
    outC->_L45,
    &outC->_L47,
    outC->_L49,
    outC->_L50,
    &outC->Context_1);
  outC->_L1 = outC->Context_1.Found;
  outC->_L2 = outC->Context_1.Index;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L3,
    &outC->Context_1.HeaderFound);
  outC->received = outC->_L1;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Metadata, &outC->_L3);
  outC->tmp = outC->_L1;
  if (outC->tmp) {
    /* 1 */
    RECV_ReadPacketKernel_TM_lib_internal(
      &outC->_L3,
      &outC->_L48,
      &outC->_1_Context_1);
    kcg_copy_array_int_500(&tmp, &outC->_1_Context_1.PacketOut);
  }
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L44,
    (CompressedPacketData_T_Common_Types_Pkg *) &DEFAULT_CompressedPackets_TM);
  if (outC->tmp) {
    kcg_copy_array_int_500(&outC->_L4, &tmp);
  }
  else {
    kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L4, &outC->_L44);
  }
  kcg_copy_array_int_500(&outC->Data, &outC->_L4);
  noname = outC->_L2;
}
/* TM_lib_internal::SEND_WriteBaliseMessageHeader */
void SEND_WriteBaliseMessageHeader_TM_lib_internal(
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader::HeadersIn */ Metadata_T_Common_Types_Pkg *HeadersIn,
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader::NewHeader */ MetadataElement_T_Common_Types_Pkg *NewHeader,
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader::HeadersOut */ Metadata_T_Common_Types_Pkg *HeadersOut,
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader::NewStartAddr */ kcg_int *NewStartAddr,
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader::NewEndAddr */ kcg_int *NewEndAddr)
{
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader */
  static kcg_int acc;
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader */
  static kcg_bool cond_iterw;
  static kcg_int i;
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader */
  static MetadataElement_T_Common_Types_Pkg tmp;
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader::_L7 */
  static kcg_int _L7;
  /* TM_lib_internal::SEND_WriteBaliseMessageHeader::_L3 */
  static kcg_int _L3;
  
  _L7 = 0;
  for (i = 0; i < 30; i++) {
    acc = _L7;
    /* 1 */
    SEND_FindSlot_TM_lib_internal(
      acc,
      &(*HeadersIn)[i],
      (MetadataElement_T_Common_Types_Pkg *) &DEFAULT_Headers_TM[i],
      &cond_iterw,
      &_L7);
    _L3 = i + 1;
    if (!cond_iterw) {
      break;
    }
  }
  /* 1 */ if (_L7 == 0) {
    *NewStartAddr = 0;
  }
  else {
    *NewStartAddr = _L7 + 1;
  }
  *NewEndAddr = *NewStartAddr + ((*NewHeader).endAddress -
      (*NewHeader).startAddress);
  kcg_copy_Metadata_T_Common_Types_Pkg(HeadersOut, HeadersIn);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&tmp, NewHeader);
  tmp.startAddress = *NewStartAddr;
  tmp.endAddress = *NewEndAddr;
  if ((0 <= _L3 - 1) & (_L3 - 1 < 30)) {
    kcg_copy_MetadataElement_T_Common_Types_Pkg(&(*HeadersOut)[_L3 - 1], &tmp);
  }
}
/* InformationFilter_Pkg::ThirdFilter::ThirdFilter */
void ThirdFilter_InformationFilter_Pkg_ThirdFilter(
  /* InformationFilter_Pkg::ThirdFilter::ThirdFilter::inMessage */ ReceivedMessage_T_Common_Types_Pkg *inMessage,
  /* InformationFilter_Pkg::ThirdFilter::ThirdFilter::inModus */ M_MODE inModus,
  /* InformationFilter_Pkg::ThirdFilter::ThirdFilter::outMessage */ ReceivedMessage_T_Common_Types_Pkg *outMessage)
{
  /* InformationFilter_Pkg::ThirdFilter::ThirdFilter */
  static Metadata_T_Common_Types_Pkg tmp;
  static kcg_int i;
  static kcg_bool tmp_1_1;
  
  (*outMessage).valid = (*inMessage).valid;
  (*outMessage).source = (*inMessage).source;
  kcg_copy_RadioMetadata_T_Common_Types_Pkg(
    &(*outMessage).radioMetadata,
    &(*inMessage).radioMetadata);
  kcg_copy_BG_Header_T_BG_Types_Pkg(
    &(*outMessage).BG_Common_Header,
    &(*inMessage).BG_Common_Header);
  kcg_copy_Radio_TrackTrain_Header_T_Radio_Types_Pkg(
    &(*outMessage).Radio_Common_Header,
    &(*inMessage).Radio_Common_Header);
  kcg_copy_RBC_Id_T_Common_Types_Pkg(
    &(*outMessage).sendingRBC,
    &(*inMessage).sendingRBC);
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(
    &(*outMessage).packets,
    &(*inMessage).packets);
  for (i = 0; i < 30; i++) {
    tmp_1_1 = /* 2 */
      ModeFilter_InformationFilter_Pkg_ThirdFilter(
        inModus,
        /* 1 */
        GetPacketId_InformationFilter_Pkg_Common(
          &(*inMessage).packets.PacketHeaders[i]));
    /* 1 */
    SetValidFlag_InformationFilter_Pkg_Common(
      tmp_1_1,
      &(*inMessage).packets.PacketHeaders[i],
      &tmp[i]);
  }
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &(*outMessage).packets.PacketHeaders,
    &tmp);
}
/* TM_trackside_baseline2::Write_P027V1 */
void Write_P027V1_TM_trackside_baseline2(
  /* TM_trackside_baseline2::Write_P027V1::Packet27V1 */P027V1_trackside_int_T_TM_baseline2 *Packet27V1,
  /* TM_trackside_baseline2::Write_P027V1::Packets */CompressedPackets_T_Common_Types_Pkg *Packets,
  outC_Write_P027V1_TM_trackside_baseline2 *outC)
{
  static kcg_int i2;
  static kcg_int i1;
  static CompressedPackets_T_Common_Types_Pkg tmp;
  static kcg_int i;
  static kcg_int noname;
  
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L40, Packets);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L42,
    &outC->_L40.PacketData);
  kcg_copy_P027V1_trackside_int_T_TM_baseline2(&outC->_L1, Packet27V1);
  /* 1 */
  C_P027V1_tracksim_compr_body_TM_conversions_baseline2(
    &outC->_L1,
    &outC->Context_1);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L43,
    &outC->Context_1.Header);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L44,
    &outC->Context_1.P027V1_body_compressed);
  kcg_copy__2_P027V1_OBU_sectionlist_int_T_TM_baseline2(
    &outC->_L45,
    &outC->Context_1.P027V1_sections);
  outC->_L46 = outC->Context_1.n_iter_k_out;
  outC->_L56 = outC->Context_1.meta_first_section;
  for (i2 = 0; i2 < 33; i2++) {
    outC->_L55[i2] = outC->_L56;
  }
  for (i1 = 0; i1 < 33; i1++) {
    outC->_L54[i1] = outC->_L46;
  }
  outC->_L52 = kcg_true;
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L41, &outC->_L40.PacketHeaders);
  /* 1 */
  SEND_WriteMessageHeader_TM_lib_internal(
    &outC->_L41,
    &outC->_L43,
    &outC->_1_Context_1);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L4,
    &outC->_1_Context_1.HeadersOut);
  outC->_L21 = outC->_1_Context_1.NewStartAddr;
  outC->_L22 = outC->_1_Context_1.NewEndAddr;
  /* 1 */
  SEND_MessageData_TM_lib_internal(
    outC->_L21,
    outC->_L22,
    &outC->_L42,
    &outC->_L44,
    &outC->_2_Context_1);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L10,
    &outC->_2_Context_1.DataOut);
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L39.PacketHeaders, &outC->_L4);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L39.PacketData,
    &outC->_L10);
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L51, &outC->_L39);
  if (outC->_L52) {
    for (i = 0; i < 33; i++) {
      kcg_copy_CompressedPackets_T_Common_Types_Pkg(&tmp, &outC->_L51);
      /* 1 */
      C_P027V1_tracksim_merge_s_TM_conversions_baseline2(
        i,
        &tmp,
        &outC->_L45[i],
        outC->_L54[i],
        outC->_L55[i],
        &outC->_3_Context_1[i]);
      kcg_copy_CompressedPackets_T_Common_Types_Pkg(
        &outC->_L51,
        &outC->_3_Context_1[i].Packets_Out);
      outC->_L50 = i + 1;
      if (!outC->_3_Context_1[i].cont) {
        break;
      }
    }
  }
  else {
    outC->_L50 = 0;
  }
  noname = outC->_L50;
  outC->_L18 = kcg_false;
  outC->Error = outC->_L18;
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->PacketsOut, &outC->_L51);
}
/* TM_lib_internal::SEND_WriteMessageHeader */
void SEND_WriteMessageHeader_TM_lib_internal(
  /* TM_lib_internal::SEND_WriteMessageHeader::HeadersIn */Metadata_T_Common_Types_Pkg *HeadersIn,
  /* TM_lib_internal::SEND_WriteMessageHeader::NewHeader */MetadataElement_T_Common_Types_Pkg *NewHeader,
  outC_SEND_WriteMessageHeader_TM_lib_internal *outC)
{
  kcg_int tmp;
  kcg_int i;
  
  outC->_L5 = 0;
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L1, HeadersIn);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L8,
    (Metadata_T_Common_Types_Pkg *) &DEFAULT_Headers_TM);
  outC->_L4 = kcg_true;
  outC->_L7 = outC->_L5;
  if (outC->_L4) {
    for (i = 0; i < 30; i++) {
      tmp = outC->_L7;
      /* 1 */
      SEND_FindSlot_TM_lib_internal(
        tmp,
        &outC->_L1[i],
        &outC->_L8[i],
        &outC->Context_1[i]);
      outC->_L7 = outC->Context_1[i].Acc;
      outC->_L3 = i + 1;
      if (!outC->Context_1[i].Cont) {
        break;
      }
    }
  }
  else {
    outC->_L3 = 0;
  }
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L9, NewHeader);
  outC->_L33 = 0;
  outC->_L32 = outC->_L7 == outC->_L33;
  outC->_L34 = 1;
  outC->_L35 = outC->_L7 + outC->_L34;
  if (outC->_L32) {
    outC->_L31 = outC->_L33;
  }
  else {
    outC->_L31 = outC->_L35;
  }
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L43, &outC->_L9);
  if (kcg_true) {
    outC->_L43.startAddress = outC->_L31;
  }
  outC->_L37 = outC->_L9.endAddress;
  outC->_L36 = outC->_L9.startAddress;
  outC->_L18 = outC->_L37 - outC->_L36;
  outC->_L22 = outC->_L31 + outC->_L18;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L44, &outC->_L43);
  if (kcg_true) {
    outC->_L44.endAddress = outC->_L22;
  }
  outC->NewEndAddr = outC->_L22;
  outC->NewStartAddr = outC->_L31;
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L24, HeadersIn);
  outC->_L16 = 1;
  outC->_L17 = outC->_L3 - outC->_L16;
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L23, &outC->_L24);
  if ((0 <= outC->_L17) & (outC->_L17 < 30)) {
    kcg_copy_MetadataElement_T_Common_Types_Pkg(
      &outC->_L23[outC->_L17],
      &outC->_L44);
  }
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->HeadersOut, &outC->_L23);
}
/* TM_lib_internal::RECV_LookupPacket */
void RECV_LookupPacket_TM_lib_internal(
  /* TM_lib_internal::RECV_LookupPacket::Message_ID */kcg_int Message_ID,
  /* TM_lib_internal::RECV_LookupPacket::HeadersIN */Metadata_T_Common_Types_Pkg *HeadersIN,
  /* TM_lib_internal::RECV_LookupPacket::F_version */kcg_bool F_version,
  /* TM_lib_internal::RECV_LookupPacket::F_id */kcg_bool F_id,
  outC_RECV_LookupPacket_TM_lib_internal *outC)
{
  kcg_int i3;
  kcg_int i2;
  kcg_int i1;
  MetadataElement_T_Common_Types_Pkg tmp;
  kcg_int i;
  
  outC->_L36 = F_id;
  for (i3 = 0; i3 < 30; i3++) {
    outC->_L40[i3] = outC->_L36;
  }
  outC->_L35 = F_version;
  for (i2 = 0; i2 < 30; i2++) {
    outC->_L38[i2] = outC->_L35;
  }
  outC->_L34 = Message_ID;
  outC->_L32 = F_id;
  outC->_L31 = F_version;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L22,
    (MetadataElement_T_Common_Types_Pkg *) &DEFAULT_PHeader_TM);
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L1, HeadersIN);
  for (i1 = 0; i1 < 30; i1++) {
    outC->_L3[i1] = outC->_L34;
  }
  outC->_L5 = kcg_true;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L23, &outC->_L22);
  if (outC->_L5) {
    for (i = 0; i < 30; i++) {
      kcg_copy_MetadataElement_T_Common_Types_Pkg(&tmp, &outC->_L23);
      /* 1 */
      RECV_LookupPacketLoop_TM_lib_internal(
        i,
        &tmp,
        &outC->_L1[i],
        outC->_L3[i],
        outC->_L38[i],
        outC->_L40[i],
        &outC->Context_1[i]);
      kcg_copy_MetadataElement_T_Common_Types_Pkg(
        &outC->_L23,
        &outC->Context_1[i].HeaderFound);
      outC->_L4 = i + 1;
      if (!outC->Context_1[i].Cont) {
        break;
      }
    }
  }
  else {
    outC->_L4 = 0;
  }
  outC->_L24 = outC->_L23.nid_packet;
  outC->_L2 = Message_ID;
  /* 1 */
  T_Filter_Metadata_TM_lib_internal(
    outC->_L24,
    outC->_L2,
    outC->_L31,
    outC->_L32,
    &outC->_1_Context_1);
  outC->_L30 = outC->_1_Context_1.data_match;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L27,
    (MetadataElement_T_Common_Types_Pkg *) &DEFAULT_PHeader_TM);
  if (outC->_L30) {
    kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L26, &outC->_L23);
  }
  else {
    kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L26, &outC->_L27);
  }
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->HeaderFound, &outC->_L26);
  outC->_L29 = 1;
  outC->_L28 = outC->_L4 - outC->_L29;
  outC->Index = outC->_L28;
  outC->Found = outC->_L30;
}
/* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections */
void C_P027V1_tracksim_merge_s_TM_conversions_baseline2(
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::i */ kcg_int i,
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::PacketStream_in */ CompressedPackets_T_Common_Types_Pkg *PacketStream_in,
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::P027V1_sections_from_track */ P027V1_section_int_T_TM_baseline2 *P027V1_sections_from_track,
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::n_iter */ kcg_int n_iter,
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::meta_first_section_in */ kcg_int meta_first_section_in,
  outC_C_P027V1_tracksim_merge_s_TM_conversions_baseline2 *outC)
{
  outC->_L446 = i;
  kcg_copy_P027V1_section_int_T_TM_baseline2(
    &outC->_L440,
    P027V1_sections_from_track);
  outC->_L448 = meta_first_section_in;
  /* 2 */
  C_P027V1_tracksim_compr_o_TM_conversions_baseline2(
    outC->_L446,
    &outC->_L440,
    outC->_L448,
    &outC->Context_2);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L431,
    &outC->Context_2.Header);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L432,
    &outC->Context_2.P027V1_sections_compressed);
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L439, PacketStream_in);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L442,
    &outC->_L439.PacketHeaders);
  /* 1 */
  SEND_WriteMessageHeader_TM_lib_internal(
    &outC->_L442,
    &outC->_L431,
    &outC->Context_1);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L435,
    &outC->Context_1.HeadersOut);
  outC->_L436 = outC->Context_1.NewStartAddr;
  outC->_L437 = outC->Context_1.NewEndAddr;
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L443,
    &outC->_L439.PacketData);
  /* 1 */
  SEND_MessageData_TM_lib_internal(
    outC->_L436,
    outC->_L437,
    &outC->_L443,
    &outC->_L432,
    &outC->_1_Context_1);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L433,
    &outC->_1_Context_1.DataOut);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L434.PacketHeaders,
    &outC->_L435);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L434.PacketData,
    &outC->_L433);
  outC->_L438 = i;
  outC->_L441 = n_iter;
  outC->_L447 = outC->_L441 > outC->_L438;
  outC->cont = outC->_L447;
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(
    &outC->Packets_Out,
    &outC->_L434);
}
/* InformationFilter_Pkg::FirstFilter::FirstFilter */
void FirstFilter_InformationFilter_Pkg_FirstFilter(
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inMessage */ ReceivedMessage_T_Common_Types_Pkg *inMessage,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inLevel */ M_LEVEL inLevel,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inPendingL1Transition */ kcg_bool inPendingL1Transition,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inPendingL2L3Transition */ kcg_bool inPendingL2L3Transition,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inPendingAckOfTrainData */ kcg_bool inPendingAckOfTrainData,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inEmergencyStopAccepted */ kcg_bool inEmergencyStopAccepted,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inLastAckTextMessageId */ kcg_int inLastAckTextMessageId,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inPendingNTCTransition */ kcg_bool inPendingNTCTransition,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inSPPAndGradientOnBoard */ kcg_bool inSPPAndGradientOnBoard,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::inMACoverNotFullLength */ kcg_bool inMACoverNotFullLength,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::outMessage */ ReceivedMessage_T_Common_Types_Pkg *outMessage,
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::outStoreInTransitionBuffer */ kcg_bool *outStoreInTransitionBuffer)
{
    static kcg_int tmp_1;
    /* InformationFilter_Pkg::FirstFilter::FirstFilter */
    static Metadata_T_Common_Types_Pkg tmp;
    static kcg_int i;
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::_L1 */
    static array_bool_30 _L1;
    /* InformationFilter_Pkg::FirstFilter::FirstFilter::_L114 */
    static array_bool_30 _L114;

    *outStoreInTransitionBuffer = kcg_false;
    (*outMessage).valid = (*inMessage).valid;
    (*outMessage).source = (*inMessage).source;
    kcg_copy_RadioMetadata_T_Common_Types_Pkg(
        &(*outMessage).radioMetadata,
        &(*inMessage).radioMetadata);
    kcg_copy_BG_Header_T_BG_Types_Pkg(
        &(*outMessage).BG_Common_Header,
        &(*inMessage).BG_Common_Header);
    kcg_copy_Radio_TrackTrain_Header_T_Radio_Types_Pkg(
        &(*outMessage).Radio_Common_Header,
        &(*inMessage).Radio_Common_Header);
    kcg_copy_RBC_Id_T_Common_Types_Pkg(
        &(*outMessage).sendingRBC,
        &(*inMessage).sendingRBC);
    for (i = 0; i < 30; i++) {
        tmp_1 = /* 1 */
            GetPacketId_InformationFilter_Pkg_Common(
                &(*inMessage).packets.PacketHeaders[i]);
        /* 1 */
        LevelFilter_InformationFilter_Pkg_FirstFilter(
            inPendingL1Transition,
            inPendingL2L3Transition,
            inPendingAckOfTrainData,
            inEmergencyStopAccepted,
            inLastAckTextMessageId,
            inPendingNTCTransition,
            inSPPAndGradientOnBoard,
            inMACoverNotFullLength,
            inLevel,
            (*inMessage).source,
            tmp_1,
            &_L114[i],
            &_L1[i]);
    }
    kcg_copy_CompressedPackets_T_Common_Types_Pkg(
        &(*outMessage).packets,
        &(*inMessage).packets);
    for (i = 0; i < 30; i++) {
        /* SetValidFlag */
        SetValidFlag_InformationFilter_Pkg_Common(
            _L1[i],
            &(*inMessage).packets.PacketHeaders[i],
            &tmp[i]);
        *outStoreInTransitionBuffer = *outStoreInTransitionBuffer | _L114[i];
    }
    kcg_copy_Metadata_T_Common_Types_Pkg(
        &(*outMessage).packets.PacketHeaders,
        &tmp);
}