/* TA_SpeedProfiles::SP_SignalingRelated */ void SP_SignalingRelated_TA_SpeedProfiles( /* TA_SpeedProfiles::SP_SignalingRelated::MessageIn */ReceivedMessage_T_Common_Types_Pkg *MessageIn, outC_SP_SignalingRelated_TA_SpeedProfiles *outC) { ReceivedMessage_T_Common_Types_Pkg noname; kcg_copy_SSP_cat_t_TA_MRSP( &outC->_L2, (SSP_cat_t_TA_MRSP *) &TOP_SSP_cat_TA_MRSP); kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->_L1, MessageIn); kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&noname, &outC->_L1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->SignalingRelated, &outC->_L2); }
/* TA_SpeedProfiles::SP_TSR */ void SP_TSR_TA_SpeedProfiles( /* TA_SpeedProfiles::SP_TSR::PacketsIn */ReceivedMessage_T_Common_Types_Pkg *PacketsIn, outC_SP_TSR_TA_SpeedProfiles *outC) { ReceivedMessage_T_Common_Types_Pkg noname; kcg_copy_SSP_cat_t_TA_MRSP( &outC->_L2, (SSP_cat_t_TA_MRSP *) &TOP_SSP_cat_TA_MRSP); kcg_copy_SSP_cat_t_TA_MRSP(&outC->TSR, &outC->_L2); kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->_L1, PacketsIn); kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&noname, &outC->_L1); }
/* CheckBGConsistency_Pkg::CheckBGConsistency */ void CheckBGConsistency_CheckBGConsistency_Pkg( /* CheckBGConsistency_Pkg::CheckBGConsistency::storedBGs */ positionedBGs_T_TrainPosition_Types_Pck *storedBGs, /* CheckBGConsistency_Pkg::CheckBGConsistency::trainPosition */ trainPosition_T_TrainPosition_Types_Pck *trainPosition, /* CheckBGConsistency_Pkg::CheckBGConsistency::mMode */ M_MODE mMode, /* CheckBGConsistency_Pkg::CheckBGConsistency::trackSide_ForCheck */ TrackSide_ForCheck_T_Common_Types_Pkg *trackSide_ForCheck, /* CheckBGConsistency_Pkg::CheckBGConsistency::q_nvlocacc */ Q_NVLOCACC q_nvlocacc, /* CheckBGConsistency_Pkg::CheckBGConsistency::passedBG_out */ ReceivedMessage_T_Common_Types_Pkg *passedBG_out, /* CheckBGConsistency_Pkg::CheckBGConsistency::applyServiceBrake */ kcg_bool *applyServiceBrake, /* CheckBGConsistency_Pkg::CheckBGConsistency::badBaliseMessageToDMI */ kcg_bool *badBaliseMessageToDMI, /* CheckBGConsistency_Pkg::CheckBGConsistency::errorLinkedBG */ kcg_bool *errorLinkedBG, /* CheckBGConsistency_Pkg::CheckBGConsistency::errorUnlinkedBG */ kcg_bool *errorUnlinkedBG) { /* CheckBGConsistency_Pkg::CheckBGConsistency::IfBlock1 */ kcg_bool IfBlock1_clock; /* CheckBGConsistency_Pkg::CheckBGConsistency::startTheCheck */ kcg_bool startTheCheck; startTheCheck = /* 1 */ CheckMode_CheckBGConsistency_Pkg_SubFunction(mMode) & (*trackSide_ForCheck).valid; IfBlock1_clock = startTheCheck & ((*trainPosition).linkingIsUsedOnboard & (*trainPosition).valid) & ((*trackSide_ForCheck).telegramHeaders.Telegrams[0].telegramheader.q_link == Q_LINK_Linked); if (IfBlock1_clock) { *errorUnlinkedBG = kcg_false; *badBaliseMessageToDMI = kcg_false; *applyServiceBrake = kcg_false; /* 1 */ CaseLinkingInUse_CheckBGConsistency_Pkg( storedBGs, trackSide_ForCheck, q_nvlocacc, passedBG_out, errorLinkedBG); } else { *errorLinkedBG = kcg_false; if (startTheCheck) { /* 2 */ CaseLinkingNotInUse_CheckBGConsistency_Pkg( trackSide_ForCheck, q_nvlocacc, applyServiceBrake, badBaliseMessageToDMI, passedBG_out, errorUnlinkedBG); } else { *badBaliseMessageToDMI = kcg_false; *applyServiceBrake = kcg_false; kcg_copy_ReceivedMessage_T_Common_Types_Pkg( passedBG_out, (ReceivedMessage_T_Common_Types_Pkg *) &cRecivedMesg_PlaceHolder_CheckBGConsistency_Pkg); *errorUnlinkedBG = kcg_false; } } }
/* CheckBGConsistency_Pkg::SubFunction::WriteDirection2PassedBG */ void WriteDirection2PassedBG_CheckBGConsistency_Pkg_SubFunction( /* CheckBGConsistency_Pkg::SubFunction::WriteDirection2PassedBG::isNominal */ kcg_bool isNominal, /* CheckBGConsistency_Pkg::SubFunction::WriteDirection2PassedBG::passedBG_in */ ReceivedMessage_T_Common_Types_Pkg *passedBG_in, /* CheckBGConsistency_Pkg::SubFunction::WriteDirection2PassedBG::passedBG_out */ ReceivedMessage_T_Common_Types_Pkg *passedBG_out) { /* 1 */ if (isNominal) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(passedBG_out, passedBG_in); (*passedBG_out).BG_Common_Header.trainOrientationToBG = cQDirLrbgNominal_CheckBGConsistency_Pkg; (*passedBG_out).BG_Common_Header.trainRunningDirectionToBG = cQqDirTrainNominal_CheckBGConsistency_Pkg; } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(passedBG_out, passedBG_in); (*passedBG_out).BG_Common_Header.trainOrientationToBG = cQDirLrbgRevers_CheckBGConsistency_Pkg; (*passedBG_out).BG_Common_Header.trainRunningDirectionToBG = cQqDirTrainRevers_CheckBGConsistency_Pkg; } }
/* InformationFilter_Pkg::MessageBuffer */ void MessageBuffer_InformationFilter_Pkg( /* InformationFilter_Pkg::MessageBuffer::inMessageFromTrain */ ReceivedMessage_T_Common_Types_Pkg *inMessageFromTrain, /* InformationFilter_Pkg::MessageBuffer::inMessageFromLevelTransitionBuffer */ ReceivedMessage_T_Common_Types_Pkg *inMessageFromLevelTransitionBuffer, /* InformationFilter_Pkg::MessageBuffer::inMessageFromLevelTransitionBufferValid */ kcg_bool inMessageFromLevelTransitionBufferValid, /* InformationFilter_Pkg::MessageBuffer::inMessageFromRBCTransitionBuffer */ ReceivedMessage_T_Common_Types_Pkg *inMessageFromRBCTransitionBuffer, /* InformationFilter_Pkg::MessageBuffer::inMessageFromRBCTransitionBufferValid */ kcg_bool inMessageFromRBCTransitionBufferValid, outC_MessageBuffer_InformationFilter_Pkg *outC) { /* InformationFilter_Pkg::MessageBuffer::_L36 */ static kcg_bool _L36; /* 3 */ FIFO_InformationFilter_Pkg_Common_3( inMessageFromLevelTransitionBuffer, inMessageFromLevelTransitionBufferValid, (kcg_bool) !(*inMessageFromTrain).valid, &outC->Context_3); _L36 = (*inMessageFromTrain).valid | outC->Context_3.outValid; /* 2 */ FIFO_InformationFilter_Pkg_Common_3( inMessageFromRBCTransitionBuffer, inMessageFromRBCTransitionBufferValid, (kcg_bool) !_L36, &outC->Context_2); /* 1 */ if ((*inMessageFromTrain).valid) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->outMessage, inMessageFromTrain); } else /* 5 */ if (outC->Context_3.outValid) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->outMessage, &outC->Context_3.outData); } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->outMessage, &outC->Context_2.outData); } outC->outMessageValid = _L36 | outC->Context_2.outValid; }
/* TA_Lib_internal::Eval_LRBG */ void Eval_LRBG_TA_Lib_internal( /* TA_Lib_internal::Eval_LRBG::MessageIn */ReceivedMessage_T_Common_Types_Pkg *MessageIn, outC_Eval_LRBG_TA_Lib_internal *outC) { /* TA_Lib_internal::Eval_LRBG::LRBG */ kcg_int LRBG1; /* TA_Lib_internal::Eval_LRBG::LRBG */ kcg_int LRBG; /* TA_Lib_internal::Eval_LRBG::LRBG */ kcg_int LRBG2; /* TA_Lib_internal::Eval_LRBG::LRBG */ kcg_int LRBG3; kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->_L1, MessageIn); outC->_L14 = outC->_L1.source; outC->source = outC->_L14; outC->IfBlock1_clock = outC->source == ENUM_MsgSource_Balise_TA_Lib_internal; if (outC->IfBlock1_clock) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->_L1_IfBlock1, MessageIn); outC->_L2_IfBlock1 = outC->_L1_IfBlock1.BG_Common_Header.nid_bg; LRBG1 = outC->_L2_IfBlock1; outC->LRBG = LRBG1; } else { outC->else_clock_IfBlock1 = outC->source == ENUM_MsgSource_Euroradio_TA_Lib_internal; if (outC->else_clock_IfBlock1) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->_L22_IfBlock1, MessageIn); outC->_L11_IfBlock1 = outC->_L22_IfBlock1.Radio_Common_Header.nid_lrbg; LRBG3 = outC->_L11_IfBlock1; LRBG = LRBG3; } else { outC->_L13_IfBlock1 = 0; LRBG2 = outC->_L13_IfBlock1; LRBG = LRBG2; } outC->LRBG = LRBG; } }
/* InformationFilter_Pkg::TransitionBuffer_write_only */ void TransitionBuffer_write_only_InformationFilter_Pkg( /* InformationFilter_Pkg::TransitionBuffer_write_only::Buffer_In */ TransitionBuffer_T_InformationFilter_Pkg *Buffer_In, /* InformationFilter_Pkg::TransitionBuffer_write_only::Stacksize_old */ kcg_int Stacksize_old, /* InformationFilter_Pkg::TransitionBuffer_write_only::Message_In */ ReceivedMessage_T_Common_Types_Pkg *Message_In, /* InformationFilter_Pkg::TransitionBuffer_write_only::Reset */ kcg_bool Reset, /* InformationFilter_Pkg::TransitionBuffer_write_only::Buffer_Out */ TransitionBuffer_T_InformationFilter_Pkg *Buffer_Out, /* InformationFilter_Pkg::TransitionBuffer_write_only::Stacksize_new */ kcg_int *Stacksize_new, /* InformationFilter_Pkg::TransitionBuffer_write_only::Message_out */ ReceivedMessage_T_Common_Types_Pkg *Message_out) { /* InformationFilter_Pkg::TransitionBuffer_write_only */ static array_100297 tmp; /* InformationFilter_Pkg::TransitionBuffer_write_only::_L2 */ static kcg_int _L2; kcg_copy_ReceivedMessage_T_Common_Types_Pkg( Message_out, (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); /* 2 */ if (Reset) { _L2 = 0 + 1; kcg_copy_array_100297( &tmp, (array_100297 *) &DEFAULT_TransitionBuffer_t_InformationFilter_Pkg[0]); } else { _L2 = Stacksize_old + 1; kcg_copy_array_100297(&tmp, (array_100297 *) &(*Buffer_In)[0]); } kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &(&(*Buffer_Out)[0])[0], Message_In); kcg_copy_array_100297(&(*Buffer_Out)[1], &tmp); /* 1 */ if (_L2 > DIM_TransitionBuffer_InformationFilter_Pkg) { *Stacksize_new = DIM_TransitionBuffer_InformationFilter_Pkg; } else { *Stacksize_new = _L2; } }
/* InformationFilter_Pkg::FilterSequence */ void FilterSequence_InformationFilter_Pkg( /* InformationFilter_Pkg::FilterSequence::message */ReceivedMessage_T_Common_Types_Pkg *message, /* InformationFilter_Pkg::FilterSequence::inLevel */M_LEVEL inLevel, /* InformationFilter_Pkg::FilterSequence::inFilterEvents */filterRelatedEvents_T_Common_Types_Pkg *inFilterEvents, /* InformationFilter_Pkg::FilterSequence::inSupervisingDevice */kcg_int inSupervisingDevice, /* InformationFilter_Pkg::FilterSequence::inMode */M_MODE inMode, /* InformationFilter_Pkg::FilterSequence::outMessage */ReceivedMessage_T_Common_Types_Pkg *outMessage, /* InformationFilter_Pkg::FilterSequence::bufferMessage */ReceivedMessage_T_Common_Types_Pkg *bufferMessage, /* InformationFilter_Pkg::FilterSequence::storeInBuffer */kcg_bool *storeInBuffer) { /* InformationFilter_Pkg::FilterSequence::_L6 */ static ReceivedMessage_T_Common_Types_Pkg _L6; /* InformationFilter_Pkg::FilterSequence::_L7 */ static ReceivedMessage_T_Common_Types_Pkg _L7; /* InformationFilter_Pkg::FilterSequence::_L8 */ static kcg_bool _L8; /* InformationFilter_Pkg::FilterSequence::_L9 */ static ReceivedMessage_T_Common_Types_Pkg _L9; /* InformationFilter_Pkg::FilterSequence::_L11 */ static kcg_bool _L11; /* 1 */ FirstFilter_InformationFilter_Pkg_FirstFilter( message, inLevel, inFilterEvents, &_L6, &_L7, &_L8); /* 1 */ SecondFilter_InformationFilter_Pkg_SecondFilter( &_L6, &_L7, inSupervisingDevice, &_L11, bufferMessage, &_L9); *storeInBuffer = _L8 | _L11; if (_L9.valid) { /* 1 */ ThirdFilter_InformationFilter_Pkg_ThirdFilter(&_L9, inMode, outMessage); } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(outMessage, &_L9); } }
/* TA_MA::Build_MA */ void Build_MA_TA_MA( /* TA_MA::Build_MA::MessageIn */ReceivedMessage_T_Common_Types_Pkg *MessageIn, /* TA_MA::Build_MA::NV_onboard_in */P003V1_OBU_T_TM_baseline2 *NV_onboard_in, outC_Build_MA_TA_MA *outC) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->_L5, MessageIn); kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L6, &outC->_L5.packets); /* 1 */ StoreRaw_MA_TA_MA(&outC->_L6, &outC->Context_1); outC->_L2 = outC->Context_1.vald_MA; outC->_L4 = outC->Context_1.new_MA; kcg_copy_P015_OBU_T_TM(&outC->_L3, &outC->Context_1.MA_onboard_out); kcg_copy_P003V1_OBU_T_TM_baseline2(&outC->_L7, NV_onboard_in); /* 1 */ Decode_P015_TA_MA(&outC->_L3, &outC->_L7, &outC->_1_Context_1); kcg_copy_MovementAuthority_t_TrackAtlasTypes( &outC->_L1, &outC->_1_Context_1.MA_decoded_out); kcg_copy_MovementAuthority_t_TrackAtlasTypes( &outC->MA_onboard_out, &outC->_L1); outC->new_MA = outC->_L4; outC->vald_MA = outC->_L2; }
/* InformationFilter_Pkg::Common::FIFO */ void FIFO_InformationFilter_Pkg_Common_3( /* InformationFilter_Pkg::Common::FIFO::inData */ ReceivedMessage_T_Common_Types_Pkg *inData, /* InformationFilter_Pkg::Common::FIFO::inValid */ kcg_bool inValid, /* InformationFilter_Pkg::Common::FIFO::inReady */ kcg_bool inReady, outC_FIFO_InformationFilter_Pkg_Common_3 *outC) { /* InformationFilter_Pkg::Common::FIFO */ static kcg_int tmp1; /* InformationFilter_Pkg::Common::FIFO */ static kcg_int tmp; /* InformationFilter_Pkg::Common::FIFO::entry */ static kcg_int entry; /* InformationFilter_Pkg::Common::FIFO::_L38 */ static kcg_int _L38; /* InformationFilter_Pkg::Common::FIFO::_L44 */ static kcg_bool _L44; /* ck_inValid */ if (inValid) { /* fby_1_init_8 */ if (outC->init1) { entry = 0; for (_L38 = 0; _L38 < 3; _L38++) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->_L4_IfBlock1[_L38], (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); } } else { entry = outC->_L20_IfBlock1; } if ((0 <= entry) & (entry < 3)) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->_L4_IfBlock1[entry], inData); } kcg_copy_array_97860(&outC->buffer, &outC->_L4_IfBlock1); outC->_L20_IfBlock1 = (entry + 1) % 3; tmp1 = 1; outC->init1 = kcg_false; } else { /* last_init_ck_buffer */ if (outC->init) { for (_L38 = 0; _L38 < 3; _L38++) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->buffer[_L38], (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); } } tmp1 = 0; } /* fby_1_init_4 */ if (outC->init) { entry = 0; outC->init = kcg_false; _L38 = 0; } else { entry = outC->_L50; _L38 = outC->_L32; } if ((0 <= entry) & (entry < 3)) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->outData, &outC->buffer[entry]); } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->outData, (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); } /* 1 */ if (_L38 <= 3) { outC->size = _L38; } else { outC->size = 3; } _L44 = inReady & (outC->size > 0); /* 8 */ if (_L44) { tmp = - 1; _L38 = 1; outC->outValid = kcg_true; } else { tmp = 0; _L38 = 0; outC->outValid = kcg_false; } outC->_L32 = outC->size + tmp1 + tmp; /* 7 */ if (inValid & (outC->size == 3)) { tmp = 1; } else { tmp = 0; } outC->_L50 = (entry + _L38 + tmp) % 3; }
/* CheckBGConsistency_Pkg::CaseLinkingNotInUse */ void CaseLinkingNotInUse_CheckBGConsistency_Pkg( /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::trackSideForCheck */ TrackSide_ForCheck_T_Common_Types_Pkg *trackSideForCheck, /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::q_nvlocacc */ Q_NVLOCACC q_nvlocacc, /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::applyServiceBrake */ kcg_bool *applyServiceBrake, /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::badBaliseMessageToDMI */ kcg_bool *badBaliseMessageToDMI, /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::passedBG_out */ ReceivedMessage_T_Common_Types_Pkg *passedBG_out, /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::errorUnlinkedBG */ kcg_bool *errorUnlinkedBG) { kcg_int tmp2; kcg_int tmp1; ReceivedMessage_T_Common_Types_Pkg tmp; /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::IfBlock1 */ kcg_bool IfBlock1_clock; /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::isComplete */ kcg_bool isComplete; /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::isSingle */ kcg_bool isSingle; /* CheckBGConsistency_Pkg::CaseLinkingNotInUse::lastTelegram */ Telegram_T_BG_Types_Pkg lastTelegram; /* 1 */ CheckCompleteness_CheckBGConsistency_Pkg( &(*trackSideForCheck).telegramHeaders, &IfBlock1_clock, &isSingle, &lastTelegram); isComplete = IfBlock1_clock ^ isSingle; IfBlock1_clock = isComplete & isSingle; if (IfBlock1_clock) { *errorUnlinkedBG = kcg_false; /* 1 */ BuildCheckedMessage_CheckBGConsistency_Pkg_SubFunction( trackSideForCheck, q_nvlocacc, passedBG_out); } else if (isComplete) { *errorUnlinkedBG = kcg_false; tmp2 = /* 16 */ N_PIG2int_CheckBGConsistency_Pkg_SubFunction( lastTelegram.telegramheader.n_pig); tmp1 = /* 17 */ N_PIG2int_CheckBGConsistency_Pkg_SubFunction( (*trackSideForCheck).telegramHeaders.Telegrams[0].telegramheader.n_pig); /* 2 */ BuildCheckedMessage_CheckBGConsistency_Pkg_SubFunction( trackSideForCheck, q_nvlocacc, &tmp); /* 1 */ WriteDirection2PassedBG_CheckBGConsistency_Pkg_SubFunction( (kcg_bool) (tmp2 > tmp1), &tmp, passedBG_out); } else { *errorUnlinkedBG = kcg_true; kcg_copy_ReceivedMessage_T_Common_Types_Pkg( passedBG_out, (ReceivedMessage_T_Common_Types_Pkg *) &cRecivedMesg_PlaceHolder_CheckBGConsistency_Pkg); } *applyServiceBrake = *errorUnlinkedBG; *badBaliseMessageToDMI = *errorUnlinkedBG; }
/* ValidateDataDirection_Pkg::validateDataDirection */ void validateDataDirection_ValidateDataDirection_Pkg( /* ValidateDataDirection_Pkg::validateDataDirection::inMessage */ ReceivedMessage_T_Common_Types_Pkg *inMessage, /* ValidateDataDirection_Pkg::validateDataDirection::inLRBG */ positionedBG_T_TrainPosition_Types_Pck *inLRBG, /* ValidateDataDirection_Pkg::validateDataDirection::inPositionedBGs */ positionedBGs_T_TrainPosition_Types_Pck *inPositionedBGs, /* ValidateDataDirection_Pkg::validateDataDirection::trainPosition */ trainPosition_T_TrainPosition_Types_Pck *trainPosition, /* ValidateDataDirection_Pkg::validateDataDirection::outMessage */ ReceivedMessage_T_Common_Types_Pkg *outMessage) { /* ValidateDataDirection_Pkg::validateDataDirection */ Q_DIRTRAIN tmp1; /* ValidateDataDirection_Pkg::validateDataDirection */ kcg_bool tmp; /* ValidateDataDirection_Pkg::validateDataDirection::IfBlock1::else */ kcg_bool else_clock_IfBlock1; /* ValidateDataDirection_Pkg::validateDataDirection::IfBlock1::else::then::IfBlock2::else::_L48 */ positionedBG_T_TrainPosition_Types_Pck _L48_IfBlock1_IfBlock2; /* ValidateDataDirection_Pkg::validateDataDirection::IfBlock1::else::then::IfBlock2 */ kcg_bool IfBlock2_clock_IfBlock1; /* ValidateDataDirection_Pkg::validateDataDirection::IfBlock1::else::then::trainRunningDirection */ Q_DIRTRAIN trainRunningDirection_IfBlock1; /* ValidateDataDirection_Pkg::validateDataDirection::IfBlock1::else::then::coordinateSystemAssigned */ kcg_bool coordinateSystemAssigned_IfBlock1; /* ValidateDataDirection_Pkg::validateDataDirection::IfBlock1::else::then::_L22 */ positionedBG_T_TrainPosition_Types_Pck _L22_IfBlock1; /* ValidateDataDirection_Pkg::validateDataDirection::IfBlock1::else::then::_L107 */ kcg_bool _L107_IfBlock1; /* ValidateDataDirection_Pkg::validateDataDirection::IfBlock1 */ kcg_bool IfBlock1_clock; IfBlock1_clock = (*inMessage).source == msrc_Eurobalise_Common_Types_Pkg; /* ck_IfBlock1 */ if (IfBlock1_clock) { /* 2 */ validateDataDirection_General_ValidateDataDirectionGeneral_Pkg( inMessage, (*inMessage).BG_Common_Header.trainRunningDirectionToBG, kcg_true, trainPosition, (kcg_bool) !(*inMessage).BG_Common_Header.noCoordinateSystemHasBeenAssigned, outMessage); } else { else_clock_IfBlock1 = (*inMessage).source == msrc_Euroradio_Common_Types_Pkg; /* ck_anon_activ */ if (else_clock_IfBlock1) { /* 10 */ getLRBGForRadioMessage_ValidateDataDirectionGeneral_Pkg_Subfunctions( inMessage, inPositionedBGs, &_L22_IfBlock1); _L107_IfBlock1 = (*trainPosition).valid & !(*trainPosition).trainPositionIsUnknown; /* 12 */ if (_L22_IfBlock1.valid) { trainRunningDirection_IfBlock1 = _L22_IfBlock1.infoFromPassing.BG_Header.trainRunningDirectionToBG; coordinateSystemAssigned_IfBlock1 = !_L22_IfBlock1.infoFromPassing.BG_Header.noCoordinateSystemHasBeenAssigned; } else { trainRunningDirection_IfBlock1 = Q_DIRTRAIN_Unknown; coordinateSystemAssigned_IfBlock1 = kcg_false; } IfBlock2_clock_IfBlock1 = (*inMessage).radioMetadata.q_dir & !((((*inMessage).Radio_Common_Header.q_dir == Q_DIR_Nominal) & (Q_DIRTRAIN_Nominal == trainRunningDirection_IfBlock1) & _L107_IfBlock1 & coordinateSystemAssigned_IfBlock1 & (*inLRBG).valid) | (((*inMessage).Radio_Common_Header.q_dir == Q_DIR_Reverse) & (Q_DIRTRAIN_Reverse == trainRunningDirection_IfBlock1) & _L107_IfBlock1 & coordinateSystemAssigned_IfBlock1 & (*inLRBG).valid) | ((*inMessage).Radio_Common_Header.q_dir == Q_DIR_Both_directions)); /* ck_IfBlock2 */ if (IfBlock2_clock_IfBlock1) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(outMessage, inMessage); (*outMessage).valid = kcg_false; } else { /* 6 */ getLRBGForRadioMessage_ValidateDataDirectionGeneral_Pkg_Subfunctions( inMessage, inPositionedBGs, &_L48_IfBlock1_IfBlock2); /* 9 */ if (_L48_IfBlock1_IfBlock2.valid) { tmp1 = _L48_IfBlock1_IfBlock2.infoFromPassing.BG_Header.trainRunningDirectionToBG; tmp = !_L48_IfBlock1_IfBlock2.infoFromPassing.BG_Header.noCoordinateSystemHasBeenAssigned; } else { tmp = kcg_false; tmp1 = Q_DIRTRAIN_Unknown; } /* 6 */ validateDataDirection_General_ValidateDataDirectionGeneral_Pkg( inMessage, tmp1, (*inLRBG).valid, trainPosition, tmp, outMessage); } } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(outMessage, inMessage); } } }
/* InformationFilter_Pkg::SecondFilter::SecondFilter */ void SecondFilter_InformationFilter_Pkg_SecondFilter( /* InformationFilter_Pkg::SecondFilter::SecondFilter::messageForFilter2 */ReceivedMessage_T_Common_Types_Pkg *messageForFilter2, /* InformationFilter_Pkg::SecondFilter::SecondFilter::inMessageForBuffer */ReceivedMessage_T_Common_Types_Pkg *inMessageForBuffer, /* InformationFilter_Pkg::SecondFilter::SecondFilter::inSupervisingDevice */kcg_int inSupervisingDevice, /* InformationFilter_Pkg::SecondFilter::SecondFilter::storeInBuffer2 */kcg_bool *storeInBuffer2, /* InformationFilter_Pkg::SecondFilter::SecondFilter::outMessageForBuffer */ReceivedMessage_T_Common_Types_Pkg *outMessageForBuffer, /* InformationFilter_Pkg::SecondFilter::SecondFilter::messageForFilter3 */ReceivedMessage_T_Common_Types_Pkg *messageForFilter3) { /* InformationFilter_Pkg::SecondFilter::SecondFilter::IfBlock1::then::IfBlock2 */ static kcg_bool IfBlock2_clock_IfBlock1; /* InformationFilter_Pkg::SecondFilter::SecondFilter::IfBlock1::then::IfBlock2::then::IfBlock3::then::messagesForTransitionBuffer */ static kcg_bool messagesForTransitionBuffer_IfBlock1_IfBlock2_IfBlock3; /* InformationFilter_Pkg::SecondFilter::SecondFilter::IfBlock1::then::IfBlock2::then::IfBlock3 */ static kcg_bool IfBlock3_clock_IfBlock1_IfBlock2; /* InformationFilter_Pkg::SecondFilter::SecondFilter::isFromRBC */ static kcg_bool isFromRBC; isFromRBC = (*messageForFilter2).source == msrc_Euroradio_Common_Types_Pkg; if (isFromRBC) { IfBlock2_clock_IfBlock1 = !((*messageForFilter2).Radio_Common_Header.radioDevice == inSupervisingDevice); if (IfBlock2_clock_IfBlock1) { switch ((*messageForFilter2).Radio_Common_Header.nid_message) { case 9 : IfBlock3_clock_IfBlock1_IfBlock2 = !kcg_true; break; case 18 : IfBlock3_clock_IfBlock1_IfBlock2 = !kcg_true; break; default : IfBlock3_clock_IfBlock1_IfBlock2 = !kcg_false; } if (IfBlock3_clock_IfBlock1_IfBlock2) { switch ((*messageForFilter2).Radio_Common_Header.nid_message) { case 8 : messagesForTransitionBuffer_IfBlock1_IfBlock2_IfBlock3 = !kcg_true; break; case 38 : messagesForTransitionBuffer_IfBlock1_IfBlock2_IfBlock3 = !kcg_true; break; case 39 : messagesForTransitionBuffer_IfBlock1_IfBlock2_IfBlock3 = !kcg_true; break; default : messagesForTransitionBuffer_IfBlock1_IfBlock2_IfBlock3 = !kcg_false; } if (messagesForTransitionBuffer_IfBlock1_IfBlock2_IfBlock3) { *storeInBuffer2 = kcg_true; (*messageForFilter3).valid = kcg_false; (*messageForFilter3).source = (*messageForFilter2).source; kcg_copy_RadioMetadata_T_Common_Types_Pkg( &(*messageForFilter3).radioMetadata, &(*messageForFilter2).radioMetadata); kcg_copy_BG_Header_T_BG_Types_Pkg( &(*messageForFilter3).BG_Common_Header, &(*messageForFilter2).BG_Common_Header); kcg_copy_Radio_TrackTrain_Header_T_Radio_Types_Pkg( &(*messageForFilter3).Radio_Common_Header, &(*messageForFilter2).Radio_Common_Header); kcg_copy_CompressedPackets_T_Common_Types_Pkg( &(*messageForFilter3).packets, &(*messageForFilter2).packets); kcg_copy_RBC_Id_T_Common_Types_Pkg( &(*messageForFilter3).sendingRBC, &(*messageForFilter2).sendingRBC); /* 1 */ DetermineBufferMessage_InformationFilter_Pkg_SecondFilter( messageForFilter2, inMessageForBuffer, outMessageForBuffer); } else { *storeInBuffer2 = kcg_false; kcg_copy_ReceivedMessage_T_Common_Types_Pkg( outMessageForBuffer, inMessageForBuffer); kcg_copy_ReceivedMessage_T_Common_Types_Pkg( messageForFilter3, messageForFilter2); } } else { *storeInBuffer2 = kcg_false; (*messageForFilter3).valid = kcg_false; (*messageForFilter3).source = (*messageForFilter2).source; kcg_copy_RadioMetadata_T_Common_Types_Pkg( &(*messageForFilter3).radioMetadata, &(*messageForFilter2).radioMetadata); kcg_copy_BG_Header_T_BG_Types_Pkg( &(*messageForFilter3).BG_Common_Header, &(*messageForFilter2).BG_Common_Header); kcg_copy_Radio_TrackTrain_Header_T_Radio_Types_Pkg( &(*messageForFilter3).Radio_Common_Header, &(*messageForFilter2).Radio_Common_Header); kcg_copy_CompressedPackets_T_Common_Types_Pkg( &(*messageForFilter3).packets, &(*messageForFilter2).packets); kcg_copy_RBC_Id_T_Common_Types_Pkg( &(*messageForFilter3).sendingRBC, &(*messageForFilter2).sendingRBC); kcg_copy_ReceivedMessage_T_Common_Types_Pkg( outMessageForBuffer, inMessageForBuffer); } } else { *storeInBuffer2 = kcg_false; kcg_copy_ReceivedMessage_T_Common_Types_Pkg( outMessageForBuffer, inMessageForBuffer); kcg_copy_ReceivedMessage_T_Common_Types_Pkg( messageForFilter3, messageForFilter2); } } else { *storeInBuffer2 = kcg_false; kcg_copy_ReceivedMessage_T_Common_Types_Pkg( outMessageForBuffer, inMessageForBuffer); kcg_copy_ReceivedMessage_T_Common_Types_Pkg( messageForFilter3, messageForFilter2); } }
/* InformationFilter_Pkg::TransitionBuffer */ void TransitionBuffer_InformationFilter_Pkg( /* InformationFilter_Pkg::TransitionBuffer::In */ ReceivedMessage_T_Common_Types_Pkg *In, /* InformationFilter_Pkg::TransitionBuffer::Write */ kcg_bool Write, /* InformationFilter_Pkg::TransitionBuffer::Reset */ kcg_bool Reset, outC_TransitionBuffer_InformationFilter_Pkg *outC) { /* InformationFilter_Pkg::TransitionBuffer::IfBlock1::else */ kcg_bool _1_else_clock_IfBlock1; /* InformationFilter_Pkg::TransitionBuffer::IfBlock1::else::else */ kcg_bool else_clock_IfBlock1; /* InformationFilter_Pkg::TransitionBuffer::buffer */ TransitionBuffer_T_InformationFilter_Pkg last_buffer; /* InformationFilter_Pkg::TransitionBuffer::stacksize */ kcg_int last_stacksize; /* InformationFilter_Pkg::TransitionBuffer::c_r */ kcg_bool c_r; c_r = !(*In).valid & Write; /* last_init_ck_stacksize */ if (outC->init) { outC->init = kcg_false; kcg_copy_TransitionBuffer_T_InformationFilter_Pkg( &last_buffer, (TransitionBuffer_T_InformationFilter_Pkg *) &DEFAULT_TransitionBuffer_t_InformationFilter_Pkg); last_stacksize = 0; } else { kcg_copy_TransitionBuffer_T_InformationFilter_Pkg( &last_buffer, &outC->buffer); last_stacksize = outC->outStacksize; } /* ck_c_r */ if (c_r) { /* 2 */ TransitionBuffer_read_only_InformationFilter_Pkg( &last_buffer, last_stacksize, In, Reset, &outC->buffer, &outC->outStacksize, &outC->Out); } else { _1_else_clock_IfBlock1 = (*In).valid & Write; /* ck_anon_activ */ if (_1_else_clock_IfBlock1) { /* 1 */ TransitionBuffer_read_write_InformationFilter_Pkg( &last_buffer, last_stacksize, In, Reset, &outC->buffer, &outC->outStacksize, &outC->Out); } else { else_clock_IfBlock1 = !Write & (*In).valid; /* ck_anon_activ */ if (else_clock_IfBlock1) { /* 1 */ TransitionBuffer_write_only_InformationFilter_Pkg( &last_buffer, last_stacksize, In, Reset, &outC->buffer, &outC->outStacksize, &outC->Out); } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->Out, In); /* 1 */ if (Reset) { outC->outStacksize = 0; kcg_copy_TransitionBuffer_T_InformationFilter_Pkg( &outC->buffer, (TransitionBuffer_T_InformationFilter_Pkg *) &DEFAULT_TransitionBuffer_t_InformationFilter_Pkg); } else { outC->outStacksize = last_stacksize; kcg_copy_TransitionBuffer_T_InformationFilter_Pkg( &outC->buffer, &last_buffer); } } } } }
/* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ void Manage_TrackSideInformation_Integration_Manage_TrackSideInformation_Integration_Pkg( /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::fullChecks */ kcg_bool fullChecks, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::API_trackSide_Message */ API_TrackSideInput_T_API_Msg_Pkg *API_trackSide_Message, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::ActualOdometry */ odometry_T_Obu_BasicTypes_Pkg *ActualOdometry, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::reset */ kcg_bool reset, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::trainPosition */ trainPosition_T_TrainPosition_Types_Pck *trainPosition, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::modeAndLevel */ T_Mode_Level_Level_And_Mode_Types_Pkg *modeAndLevel, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::tNvContact */ T_internal_Type_Obu_BasicTypes_Pkg tNvContact, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::intrainVersion */ M_VERSION intrainVersion, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::lastRelevantEventTimestamp */ T_internal_Type_Obu_BasicTypes_Pkg lastRelevantEventTimestamp, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::radioStatus */ morcStatus_T_RCM_Session_Types_Pkg *radioStatus, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::inSupervisingRbcId */ connection_ids_T_Handover_Pkg *inSupervisingRbcId, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::inAnnouncedBGs */ positionedBGs_T_TrainPosition_Types_Pck *inAnnouncedBGs, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::q_nvlocacc */ Q_NVLOCACC q_nvlocacc, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::inActiveCab */ kcg_bool inActiveCab, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::inTrainDataValid */ kcg_bool inTrainDataValid, /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::inFilterEvents */ filterRelatedEvents_T_Common_Types_Pkg *inFilterEvents, outC_Manage_TrackSideInformation_Integration_Manage_TrackSideInformation_Integration_Pkg *outC) { /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static ReceivedMessage_T_Common_Types_Pkg tmp5; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static ReceivedMessage_T_Common_Types_Pkg tmp4; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static positionedBG_T_TrainPosition_Types_Pck tmp3; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static kcg_bool tmp2; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static kcg_bool tmp1; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static NID_ERRORBG_BG_Types_Pkg tmp; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static kcg_bool _7_op_call; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static kcg_bool _8_op_call; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static kcg_bool _9_op_call; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static kcg_bool _10_op_call; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static NID_C op_call; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration */ static NID_ERRORBG_BG_Types_Pkg _6_op_call; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::doBaliseBranch */ static kcg_bool doBaliseBranch; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::doRadio */ static kcg_bool doRadio; /* Manage_TrackSideInformation_Integration_Pkg::Manage_TrackSideInformation_Integration::trainPositionTest */ static trainPosition_T_TrainPosition_Types_Pck trainPositionTest; /* 1 */ Receive_TrackSide_Msg_Receive_TrackSide_Msg_Pkg( reset, API_trackSide_Message, ActualOdometry, &outC->Context_1); doRadio = outC->Context_1.outTrackMessage_for_check.msg_type == msrc_Euroradio_Common_Types_Pkg; /* ck_doRadio */ if (doRadio) { /* 1 */ CheckEuroRadioMessage_CheckEuroradioMessage( &outC->Context_1.outTrackMessage_for_check, tNvContact, lastRelevantEventTimestamp, radioStatus, fullChecks, &outC->_1_Context_1); kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &tmp5, &outC->_1_Context_1.checkedMessage); _10_op_call = outC->_1_Context_1.radioSequenceError; _9_op_call = outC->_1_Context_1.tNvContactError; _8_op_call = outC->_1_Context_1.otherTimingError; _7_op_call = outC->_1_Context_1.radioMessageConsistencyError; } doBaliseBranch = outC->Context_1.outTrackMessage_for_check.valid & (msrc_Eurobalise_Common_Types_Pkg == outC->Context_1.outTrackMessage_for_check.msg_type); kcg_copy_trainPosition_T_TrainPosition_Types_Pck( &trainPositionTest, trainPosition); trainPositionTest.trainPositionIsUnknown = kcg_false; kcg_copy_positionedBG_T_TrainPosition_Types_Pck( &tmp3, &(*trainPosition).LRBG); tmp3.valid = kcg_true; /* ck_doBaliseBranch */ if (doBaliseBranch) { /* 1 */ CheckBGConsistency_CheckBGConsistency_Pkg( inAnnouncedBGs, &trainPositionTest, (*modeAndLevel).Mode, &outC->Context_1.outTrackMessage_for_check, q_nvlocacc, intrainVersion, &tmp4, &outC->ApplyServiceBrake, &outC->BadBaliseMessageToDMI, &outC->outCheckErrors.linkedBGError, &tmp2, &tmp1, &_6_op_call, &op_call); } else { outC->ApplyServiceBrake = kcg_false; outC->BadBaliseMessageToDMI = kcg_false; /* ck_doRadio */ if (doRadio) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&tmp4, &tmp5); } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &tmp4, (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); } tmp1 = kcg_false; tmp2 = kcg_false; outC->outCheckErrors.linkedBGError = kcg_false; } /* 1 */ validateDataDirection_ValidateDataDirection_Pkg( &tmp4, &tmp3, inAnnouncedBGs, &trainPositionTest, &tmp5); /* 3 */ InformationFilter_InformationFilter_Pkg( &tmp5, modeAndLevel, 0, inFilterEvents, inActiveCab, inTrainDataValid, radioStatus, &outC->Context_3); kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->outputMessage, &outC->Context_3.outMessage); kcg_copy_T_Data_From_Track_MASSPGradient_Available_Level_And_Mode_Types_Pkg( &outC->IF_toML, &outC->Context_3.IF_toML); outC->outCheckErrors.unlinkedBGError = tmp2; outC->outCheckErrors.BG_versionIncompatible = tmp1; /* ck_doRadio */ if (doRadio) { outC->outCheckErrors.radioSequenceError = _10_op_call; tmp2 = _9_op_call; } else { tmp2 = kcg_false; outC->outCheckErrors.radioSequenceError = kcg_false; } outC->outCheckErrors.tNvContactError = tmp2 | /* 1 */ ContinuousTimeoutCheck_CheckEuroradioMessage( (*ActualOdometry).timestamp, tNvContact, lastRelevantEventTimestamp, fullChecks, radioStatus); /* ck_doRadio */ if (doRadio) { outC->outCheckErrors.otherTimingError = _8_op_call; tmp1 = _7_op_call; } else { tmp1 = kcg_false; outC->outCheckErrors.otherTimingError = kcg_false; } outC->outCheckErrors.radioMessageConsistencyError = tmp1; /* ck_doBaliseBranch */ if (doBaliseBranch) { outC->outCheckErrors.nid_c = op_call; tmp = _6_op_call; } else { outC->outCheckErrors.nid_c = 0; tmp = cUnknownBG_BG_Types_Pkg; } outC->outCheckErrors.nid_errorbg = tmp; outC->positionM = (kcg_real) (*ActualOdometry).odo.o_nominal / 100.0; /* 1 */ checkOnErrors_xdebugSupport_Pkg( &outC->outCheckErrors, &outC->debug_ErrorMSG, &outC->errorBG); outC->countPackets = /* 1 */ countPackets_xdebugSupport_Pkg(API_trackSide_Message); }
/* InformationFilter_Pkg::InformationFilter */ void InformationFilter_InformationFilter_Pkg( /* InformationFilter_Pkg::InformationFilter::inMessage */ ReceivedMessage_T_Common_Types_Pkg *inMessage, /* InformationFilter_Pkg::InformationFilter::inModeLevel */ T_Mode_Level_Level_And_Mode_Types_Pkg *inModeLevel, /* InformationFilter_Pkg::InformationFilter::inSupervisingDevice */ kcg_int inSupervisingDevice, /* InformationFilter_Pkg::InformationFilter::inFilterEvents */ filterRelatedEvents_T_Common_Types_Pkg *inFilterEvents, /* InformationFilter_Pkg::InformationFilter::inActiveCab */ kcg_bool inActiveCab, /* InformationFilter_Pkg::InformationFilter::inTrainDataValid */ kcg_bool inTrainDataValid, /* InformationFilter_Pkg::InformationFilter::inMorcStatus */ morcStatus_T_RCM_Session_Types_Pkg *inMorcStatus, outC_InformationFilter_InformationFilter_Pkg *outC) { /* InformationFilter_Pkg::InformationFilter */ kcg_int tmp2; /* InformationFilter_Pkg::InformationFilter */ ReceivedMessage_T_Common_Types_Pkg tmp1; /* InformationFilter_Pkg::InformationFilter */ kcg_bool tmp; /* InformationFilter_Pkg::InformationFilter::currBuffersize */ kcg_int last_currBuffersize; /* InformationFilter_Pkg::InformationFilter::SM1 */ _34_SSM_ST_SM1 SM1_state_sel; /* InformationFilter_Pkg::InformationFilter::SM1 */ _34_SSM_ST_SM1 SM1_state_act; /* InformationFilter_Pkg::InformationFilter::_L99 */ ReceivedMessage_T_Common_Types_Pkg _L99; /* last_init_ck_storeInBuffer */ if (outC->init) { SM1_state_sel = SSM_st_State1_SM1; last_currBuffersize = 0; tmp = kcg_false; kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &_L99, (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); } else { SM1_state_sel = outC->SM1_state_nxt; last_currBuffersize = outC->currBuffersize; kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&_L99, &outC->bufferMsg); tmp = outC->storeInBuffer; } /* sel_SM1 */ switch (SM1_state_sel) { case SSM_st_State1_SM1 : SM1_state_act = _33_SSM_st_State2_SM1; break; case _33_SSM_st_State2_SM1 : /* last_init_ck_inSupervisingDevice */ if (outC->init) { tmp2 = 0; } else { tmp2 = outC->rem_inSupervisingDevice; } if (((inSupervisingDevice != tmp2) | (*inModeLevel).newLevel) & (last_currBuffersize > 0)) { SM1_state_act = SSM_st_State3_SM1; } else { SM1_state_act = _33_SSM_st_State2_SM1; } break; case SSM_st_State3_SM1 : if (last_currBuffersize == 0) { SM1_state_act = _33_SSM_st_State2_SM1; } else { SM1_state_act = SSM_st_State3_SM1; } break; } /* 4 */ if (_L99.valid & tmp) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&tmp1, &_L99); } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &tmp1, (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); } /* act_SM1 */ switch (SM1_state_act) { case SSM_st_State3_SM1 : outC->bufferHasPriority = kcg_true; outC->SM1_state_nxt = SSM_st_State3_SM1; break; case _33_SSM_st_State2_SM1 : outC->bufferHasPriority = kcg_false; outC->SM1_state_nxt = _33_SSM_st_State2_SM1; break; case SSM_st_State1_SM1 : /* last_init_ck_bufferHasPriority */ if (outC->init) { outC->bufferHasPriority = kcg_false; } outC->SM1_state_nxt = SSM_st_State1_SM1; break; } /* 1 */ TransitionBuffer_InformationFilter_Pkg( &tmp1, outC->bufferHasPriority, (kcg_bool) ((*inMorcStatus).session.phase == sp_terminated_RCM_Session_Types_Pkg), &outC->Context_1); outC->currBuffersize = outC->Context_1.outStacksize; /* 1 */ if ((*inMessage).valid & outC->bufferHasPriority) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->_L108, inMessage); } else /* 1_fby_1_init_4 */ if (outC->init) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->_L108, (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); } outC->init = kcg_false; /* 3 */ if (outC->bufferHasPriority) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&_L99, &outC->Context_1.Out); } else /* 5 */ if (!kcg_comp_ReceivedMessage_T_Common_Types_Pkg( &outC->_L108, (struct_124791 *) &cDefaultRM_Common_Types_Pkg)) { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&_L99, &outC->_L108); } else { kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&_L99, inMessage); } /* 1 */ flagsForLevelChange_InformationFilter_Pkg( inModeLevel, inMessage, inFilterEvents, &outC->_1_Context_1); kcg_copy_T_Data_From_Track_MASSPGradient_Available_Level_And_Mode_Types_Pkg( &outC->IF_toML, &outC->_1_Context_1.IF_toML); /* 2 */ if (_L99.valid) { /* FilterSequence */ FilterSequence_InformationFilter_Pkg( &_L99, (*inModeLevel).level, &outC->_1_Context_1.outFilterEvents, inSupervisingDevice, (*inModeLevel).Mode, &outC->outMessage, &outC->bufferMsg, &outC->storeInBuffer); } else { outC->storeInBuffer = kcg_false; kcg_copy_ReceivedMessage_T_Common_Types_Pkg( &outC->bufferMsg, (ReceivedMessage_T_Common_Types_Pkg *) &cDefaultRM_Common_Types_Pkg); kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->outMessage, &_L99); } outC->rem_inSupervisingDevice = inSupervisingDevice; }
/* TA_MRSP::Build_MRSP */ void Build_MRSP_TA_MRSP( /* TA_MRSP::Build_MRSP::MessageIn */ReceivedMessage_T_Common_Types_Pkg *MessageIn, /* TA_MRSP::Build_MRSP::TrainDataIn */kcg_int TrainDataIn, /* TA_MRSP::Build_MRSP::ModeDataIn */kcg_bool ModeDataIn, /* TA_MRSP::Build_MRSP::train_length */L_internal_Type_Obu_BasicTypes_Pkg train_length, /* TA_MRSP::Build_MRSP::train_position */trainPosition_T_TrainPosition_Types_Pck *train_position, outC_Build_MRSP_TA_MRSP *outC) { MRSP_Profile_t_TrackAtlasTypes tmp; MRSP_Profile_t_TrackAtlasTypes tmp1; kcg_copy_ReceivedMessage_T_Common_Types_Pkg(&outC->_L16, MessageIn); /* 1 */ SP_ASP_TA_SpeedProfiles(&outC->_L16, &outC->Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L3, &outC->Context_1.ASP); /* 1 */ SP_LX_SR_TA_SpeedProfiles(&outC->_L16, &outC->_1_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L4, &outC->_1_Context_1.LX_SR); outC->_L17 = TrainDataIn; /* 1 */ SP_MaxTrainSpeed_TA_SpeedProfiles(outC->_L17, &outC->_2_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L5, &outC->_2_Context_1.MaxTrainSpeed); outC->_L18 = ModeDataIn; /* 1 */ SP_ModeRelated_TA_SpeedProfiles(&outC->_L16, outC->_L18, &outC->_3_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L7, &outC->_3_Context_1.ModeRelated); /* 1 */ SP_OverrideRelated_TA_SpeedProfiles(&outC->_L16, &outC->_4_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L8, &outC->_4_Context_1.OverrideRelated); /* 1 */ SP_PBD_SR_TA_SpeedProfiles(&outC->_L16, &outC->_5_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L9, &outC->_5_Context_1.PBD_SR); /* 1 */ SP_SignalingRelated_TA_SpeedProfiles(&outC->_L16, &outC->_6_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L11, &outC->_6_Context_1.SignalingRelated); outC->_L22 = train_length; kcg_copy_trainPosition_T_TrainPosition_Types_Pck(&outC->_L23, train_position); /* 1 */ SP_SSP_TA_SpeedProfiles( &outC->_L16, outC->_L22, &outC->_L23, &outC->_7_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L21, &outC->_7_Context_1.SSP); outC->_L20 = outC->_7_Context_1.updated; /* 1 */ SP_STM_MaxSpeed_TA_SpeedProfiles(&outC->_L16, &outC->_8_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L13, &outC->_8_Context_1.STM_MaxSpeed); /* 1 */ SP_STM_SystemSpeed_TA_SpeedProfiles(&outC->_L16, &outC->_9_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L14, &outC->_9_Context_1.STM_SystemSpeed); /* 1 */ SP_TSR_TA_SpeedProfiles(&outC->_L16, &outC->_10_Context_1); kcg_copy_SSP_cat_t_TA_MRSP(&outC->_L15, &outC->_10_Context_1.TSR); /* 1 */ Build_SSP_Matrix_TA_SpeedProfiles( &outC->_L3, &outC->_L4, &outC->_L5, &outC->_L7, &outC->_L8, &outC->_L9, &outC->_L11, &outC->_L21, outC->_L20, &outC->_L13, &outC->_L14, &outC->_L15, &outC->_11_Context_1); outC->_L19 = outC->_11_Context_1.SSP_matrix_updated; kcg_copy_SSP_matrix_t_TA_MRSP( &outC->_L2, &outC->_11_Context_1.SSP_matrix_out); outC->newMRSP = outC->_L19; outC->tmp = outC->_L19; if (outC->tmp) { /* 1 */ Calculate_MRSP_TA_MRSP(&outC->_L2, &outC->_12_Context_1); kcg_copy_MRSP_Profile_t_TrackAtlasTypes(&tmp1, &outC->_12_Context_1.MRSP); kcg_copy_MRSP_Profile_t_TrackAtlasTypes(&outC->_L1, &tmp1); } else { if (outC->init) { kcg_copy_MRSP_Profile_t_TrackAtlasTypes( &tmp, (MRSP_Profile_t_TrackAtlasTypes *) &DEFAULT_MRSP_Profile_TA_MRSP); } else { kcg_copy_MRSP_Profile_t_TrackAtlasTypes(&tmp, &outC->_L1); } kcg_copy_MRSP_Profile_t_TrackAtlasTypes(&outC->_L1, &tmp); } kcg_copy_MRSP_Profile_t_TrackAtlasTypes(&outC->MRSP, &outC->_L1); outC->init = kcg_false; }