/* Internal_Tests::TestP041_specific */
void TestP041_specific_Internal_Tests(void)
{
  static P41_LevelTransistionOrders_T_Packet_Types_Pkg tmp;
  static kcg_bool noname;
  
  kcg_copy_P041_trackside_int_T_TM(
    &Ctxt_TestP041_specific_Internal_Tests._L5,
    (P041_trackside_int_T_TM *) &BG356_P041_Packets426);
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(
    &Ctxt_TestP041_specific_Internal_Tests._L4,
    (CompressedPackets_T_Common_Types_Pkg *)
      &DEFAULT_CompressedPackets_Internal_Tests);
  /* 1 */
  Write_P041_TM_trackside(
    &Ctxt_TestP041_specific_Internal_Tests._L5,
    &Ctxt_TestP041_specific_Internal_Tests._L4,
    &Ctxt_TestP041_specific_Internal_Tests.Context_1);
  Ctxt_TestP041_specific_Internal_Tests._L2 =
    Ctxt_TestP041_specific_Internal_Tests.Context_1.Error;
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(
    &Ctxt_TestP041_specific_Internal_Tests._L3,
    &Ctxt_TestP041_specific_Internal_Tests.Context_1.RadioPacketsOut);
  /* 1 */
  Read_P041_TM(
    &Ctxt_TestP041_specific_Internal_Tests._L3,
    &Ctxt_TestP041_specific_Internal_Tests._1_Context_1);
  Ctxt_TestP041_specific_Internal_Tests._L1 =
    Ctxt_TestP041_specific_Internal_Tests._1_Context_1.received;
  kcg_copy_P041_OBU_T_TM(
    &Ctxt_TestP041_specific_Internal_Tests._L6,
    &Ctxt_TestP041_specific_Internal_Tests._1_Context_1.P041_OBU_out);
  Ctxt_TestP041_specific_Internal_Tests.tmp =
    Ctxt_TestP041_specific_Internal_Tests._L1;
  if (Ctxt_TestP041_specific_Internal_Tests.tmp) {
    /* 1 */
    C_P041_to_legacy_t_TM_conversions(
      &Ctxt_TestP041_specific_Internal_Tests._L6,
      &Ctxt_TestP041_specific_Internal_Tests._2_Context_1);
    kcg_copy_P41_LevelTransistionOrders_T_Packet_Types_Pkg(
      &tmp,
      &Ctxt_TestP041_specific_Internal_Tests._2_Context_1.P041_legacy_out);
    kcg_copy_P41_LevelTransistionOrders_T_Packet_Types_Pkg(
      &Ctxt_TestP041_specific_Internal_Tests._L7,
      &tmp);
  }
  else {
    kcg_copy_P41_LevelTransistionOrders_T_Packet_Types_Pkg(
      &Ctxt_TestP041_specific_Internal_Tests._L7,
      (P41_LevelTransistionOrders_T_Packet_Types_Pkg *)
        &DEFAULT_P041_legacy_TM_specific);
  }
  kcg_copy_P41_LevelTransistionOrders_T_Packet_Types_Pkg(
    &PacketOut,
    &Ctxt_TestP041_specific_Internal_Tests._L7);
  noname = Ctxt_TestP041_specific_Internal_Tests._L2;
}
/* TM_specific::Read_P041_Legacy */
void Read_P041_Legacy_TM_specific(
  /* TM_specific::Read_P041_Legacy::Message_IN */ CompressedPackets_T_Common_Types_Pkg *Message_IN,
  /* TM_specific::Read_P041_Legacy::P041_legacy_out */ P41_LevelTransistionOrders_T_Packet_Types_Pkg *P041_legacy_out)
{
  /* TM_specific::Read_P041_Legacy::_L2 */ P041_OBU_T_TM _L2;
  /* TM_specific::Read_P041_Legacy::_L1 */ kcg_bool _L1;
  
  /* 1 */ Read_P041_TM(Message_IN, &_L1, &_L2);
  /* ck__L1 */ if (_L1) {
    /* 1 */ C_P041_to_legacy_t_TM_conversions(&_L2, P041_legacy_out);
  }
  else {
    kcg_copy_P41_LevelTransistionOrders_T_Packet_Types_Pkg(
      P041_legacy_out,
      (P41_LevelTransistionOrders_T_Packet_Types_Pkg *)
        &DEFAULT_P041_legacy_TM_specific);
  }
}
/* InformationFilter_Pkg::flagsFromMessages */
void flagsFromMessages_InformationFilter_Pkg(
  /* InformationFilter_Pkg::flagsFromMessages::doReset */ kcg_bool doReset,
  /* InformationFilter_Pkg::flagsFromMessages::actualMessage */ ReceivedMessage_T_Common_Types_Pkg *actualMessage,
  /* InformationFilter_Pkg::flagsFromMessages::inFilterEvents */ filterRelatedEvents_T_Common_Types_Pkg *inFilterEvents,
  outC_flagsFromMessages_InformationFilter_Pkg *outC)
{
  /* InformationFilter_Pkg::flagsFromMessages */ kcg_bool tmp4;
  /* InformationFilter_Pkg::flagsFromMessages */ kcg_bool tmp3;
  /* InformationFilter_Pkg::flagsFromMessages */ kcg_bool tmp2;
  /* InformationFilter_Pkg::flagsFromMessages */ P27_InternationalStaticSpeedProfile_T_Packet_Types_Pkg tmp1;
  /* InformationFilter_Pkg::flagsFromMessages */ kcg_bool tmp;
  /* InformationFilter_Pkg::flagsFromMessages::_L208 */ kcg_bool _L208;
  /* InformationFilter_Pkg::flagsFromMessages::_L184 */ P021_OBU_T_TM _L184;
  /* InformationFilter_Pkg::flagsFromMessages::_L183 */ kcg_bool _L183;
  /* InformationFilter_Pkg::flagsFromMessages::_L182 */ P015_OBU_T_TM _L182;
  /* InformationFilter_Pkg::flagsFromMessages::_L181 */ kcg_bool _L181;
  /* InformationFilter_Pkg::flagsFromMessages::_L178 */ P012_OBU_T_TM _L178;
  /* InformationFilter_Pkg::flagsFromMessages::_L177 */ kcg_bool _L177;
  /* InformationFilter_Pkg::flagsFromMessages::p41 */ P041_OBU_T_TM p41;
  
  /* 1 */ Read_P041_TM(&(*actualMessage).packets, &_L177, &p41);
  /* ck_p41valid */ if (_L177) {
    outC->L2L3_transitionPending = (M_LEVELTR_Level_2 ==
        p41.sections[0].m_leveltr) | (p41.sections[0].m_leveltr ==
        M_LEVELTR_Level_3);
    outC->L1_transitionPending = p41.sections[0].m_leveltr == M_LEVELTR_Level_1;
    outC->NTC_transitionPending = p41.sections[0].m_leveltr ==
      M_LEVELTR_Level_NTC_specified_by_NID_NTC;
  }
  else /* ck_anon_activ */ if (doReset) {
    outC->NTC_transitionPending = kcg_false;
    outC->L1_transitionPending = kcg_false;
    outC->L2L3_transitionPending = kcg_false;
  }
  else /* last_init_ck_NTC_transitionPending */ if (outC->init) {
    outC->NTC_transitionPending = kcg_false;
    outC->L1_transitionPending = kcg_false;
    outC->L2L3_transitionPending = kcg_false;
  }
  kcg_copy_filterRelatedEvents_T_Common_Types_Pkg(
    &outC->outFilterEvents,
    inFilterEvents);
  outC->outFilterEvents.pendingL12L3Transition = outC->L2L3_transitionPending;
  outC->outFilterEvents.SPPAndGradientOnBoard = outC->L2L3_transitionPending;
  outC->outFilterEvents.pendingL1Transition = outC->L1_transitionPending;
  /* 1 */ Read_P012_TM(&(*actualMessage).packets, &_L177, &_L178);
  /* 1 */ Read_P015_TM(&(*actualMessage).packets, &_L181, &_L182);
  /* 1 */ Read_P021_TM(&(*actualMessage).packets, &_L183, &_L184);
  _L208 = !doReset;
  /* last_init_ck_p27valid */ if (outC->init) {
    tmp4 = kcg_false;
    tmp3 = kcg_false;
    tmp2 = kcg_false;
    outC->init = kcg_false;
    tmp = kcg_false;
  }
  else {
    tmp4 = outC->p12valid;
    tmp3 = outC->p15valid;
    tmp2 = outC->p21valid;
    tmp = outC->p27valid;
  }
  outC->p12valid = _L208 & (_L177 | tmp4);
  outC->IF_toML.P12_received = outC->NTC_transitionPending | outC->p12valid;
  outC->p15valid = _L208 & (_L181 | tmp3);
  outC->IF_toML.P15_received = outC->p15valid;
  outC->p21valid = _L208 & (_L183 | tmp2);
  outC->IF_toML.P21_received = outC->p21valid;
  /* 1 */
  Read_P027V1_Legacy_for_ML_TM_specific(&(*actualMessage).packets, &tmp1);
  outC->p27valid = _L208 & (tmp1.valid | tmp);
  outC->IF_toML.P27_received = outC->p27valid;
}