/* manage_TextMessages_Pkg::sendTextMessage */ void sendTextMessage_manage_TextMessages_Pkg( /* manage_TextMessages_Pkg::sendTextMessage::inSystemTime */ T_internal_Type_Obu_BasicTypes_Pkg inSystemTime, /* manage_TextMessages_Pkg::sendTextMessage::inStatusList */ DMI_TXT_MSGList_status_T_DMI_Types_Pkg *inStatusList, /* manage_TextMessages_Pkg::sendTextMessage::intextMessage */ DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *intextMessage, /* manage_TextMessages_Pkg::sendTextMessage::inTextReport */ Q_TEXTREPORT inTextReport, /* manage_TextMessages_Pkg::sendTextMessage::inNID_TextMessage */ NID_TEXTMESSAGE inNID_TextMessage, /* manage_TextMessages_Pkg::sendTextMessage::inContext */ DMI_context_TXT_MSG_T_DMI_Types_Pkg inContext, /* manage_TextMessages_Pkg::sendTextMessage::inWhichMode */ M_MODE inWhichMode, /* manage_TextMessages_Pkg::sendTextMessage::inWhichLevel */ M_LEVEL inWhichLevel, /* manage_TextMessages_Pkg::sendTextMessage::outStatusList */ DMI_TXT_MSGList_status_T_DMI_Types_Pkg *outStatusList, /* manage_TextMessages_Pkg::sendTextMessage::dmi_textMessage */ DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_textMessage) { /* manage_TextMessages_Pkg::sendTextMessage */ static DMI_TXT_MSG_status_T_DMI_Types_Pkg mk_struct; /* manage_TextMessages_Pkg::sendTextMessage::needsStore */ static kcg_bool needsStore; needsStore = (Q_TEXTCONFIRM_No_confirmation_required != (*intextMessage).q_textConfirm) & (*intextMessage).valid; /* ck_needsStore */ if (needsStore) { mk_struct.valid = kcg_true; mk_struct.dmi_textMessageID = (*intextMessage).textMessage_ID; mk_struct.timeStamp = inSystemTime; mk_struct.textReport = inTextReport; mk_struct.context = inContext; mk_struct.nid_textmessage = inNID_TextMessage; mk_struct.whichLevel = inWhichLevel; mk_struct.whichMode = inWhichMode; /* 1 */ saveStatus_manage_TextMessages_Pkg(inStatusList, &mk_struct, outStatusList); kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( dmi_textMessage, intextMessage); } else /* ck_anon_activ */ if ((*intextMessage).valid) { kcg_copy_DMI_TXT_MSGList_status_T_DMI_Types_Pkg( outStatusList, inStatusList); kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( dmi_textMessage, intextMessage); } else { kcg_copy_DMI_TXT_MSGList_status_T_DMI_Types_Pkg( outStatusList, inStatusList); kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( dmi_textMessage, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cDefaultText_manage_DMI_Output_Pkg); } }
/* manage_DMI_Output_Pkg::doTextMessages */ void doTextMessages_manage_DMI_Output_Pkg( /* manage_DMI_Output_Pkg::doTextMessages::dmi_FromBG */ kcg_bool dmi_FromBG, /* manage_DMI_Output_Pkg::doTextMessages::inSystemTime */ T_internal_Type_Obu_BasicTypes_Pkg inSystemTime, /* manage_DMI_Output_Pkg::doTextMessages::dmi_textMessage */ DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_textMessage) { if (dmi_FromBG) { kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( dmi_textMessage, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cTextSpecial_BG_manage_DMI_Output_Pkg); (*dmi_textMessage).system_clock = inSystemTime; } else { kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( dmi_textMessage, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cDefaultText_manage_DMI_Output_Pkg); } }
/* manage_TextMessages_Pkg::manageTextMessages */ void manageTextMessages_manage_TextMessages_Pkg( /* manage_TextMessages_Pkg::manageTextMessages::inSystemTime */ T_internal_Type_Obu_BasicTypes_Pkg inSystemTime, /* manage_TextMessages_Pkg::manageTextMessages::inStatusList */ DMI_TXT_MSGList_status_T_DMI_Types_Pkg *inStatusList, /* manage_TextMessages_Pkg::manageTextMessages::dmi_FromBG */ kcg_bool dmi_FromBG, /* manage_TextMessages_Pkg::manageTextMessages::inModeLevel_Ack */ T_AcknoledgementRequest_Level_And_Mode_Types_Pkg *inModeLevel_Ack, /* manage_TextMessages_Pkg::manageTextMessages::announcedLevelTransition */ T_AnnouncedLevel_Level_And_Mode_Types_Pkg *announcedLevelTransition, /* manage_TextMessages_Pkg::manageTextMessages::dmi_textMessage */ DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_textMessage, /* manage_TextMessages_Pkg::manageTextMessages::outStatusList */ DMI_TXT_MSGList_status_T_DMI_Types_Pkg *outStatusList) { /* manage_TextMessages_Pkg::manageTextMessages */ DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg tmp1; /* manage_TextMessages_Pkg::manageTextMessages */ DMI_context_TXT_MSG_T_DMI_Types_Pkg tmp; /* manage_TextMessages_Pkg::manageTextMessages::levelNeedsAck */ kcg_bool levelNeedsAck; /* manage_TextMessages_Pkg::manageTextMessages::modeChange */ kcg_bool modeChange; /* manage_TextMessages_Pkg::manageTextMessages::_L29 */ kcg_bool _L29; /* ck__L6 */ if ((*inModeLevel_Ack).valid) { _L29 = /* 1 */ checkIfNeeded_manage_TextMessages_Pkg( inModeLevel_Ack, (*announcedLevelTransition).LevelTransition.transition.level, inStatusList); } else { _L29 = kcg_false; } levelNeedsAck = (*inModeLevel_Ack).LevelNeedsAck & _L29; modeChange = _L29 & !levelNeedsAck; /* ck_modeChange */ if (modeChange) { switch ((*inModeLevel_Ack).whichMode) { case M_MODE_Staff_Responsible : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Mode_SR_manage_TextMessages_Pkg); break; case M_MODE_On_Sight : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Mode_OS_manage_TextMessages_Pkg); break; case M_MODE_Shunting : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Mode_SH_manage_TextMessages_Pkg); break; case M_MODE_Limited_Supervision : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Mode_LS_manage_TextMessages_Pkg); break; case M_MODE_National_System : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Mode_SN_manage_TextMessages_Pkg); break; case M_MODE_Unfitted : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Mode_UN_manage_TextMessages_Pkg); break; case M_MODE_Trip : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Mode_TR_manage_TextMessages_Pkg); break; default : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cDefaultText_manage_DMI_Output_Pkg); } tmp = con_modeChange_DMI_Types_Pkg; } else /* ck_anon_activ */ if (levelNeedsAck) { switch ((*announcedLevelTransition).LevelTransition.transition.level) { case M_LEVEL_Level_0 : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Level_0_manage_TextMessages_Pkg); break; case M_LEVEL_Level_1 : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Level_1_manage_TextMessages_Pkg); break; case M_LEVEL_Level_2 : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Level_2_manage_TextMessages_Pkg); break; case M_LEVEL_Level_3 : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Level_3_manage_TextMessages_Pkg); break; case M_LEVEL_Level_NTC_specified_by_NID_NTC : kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cText_Level_NTC_manage_TextMessages_Pkg); break; } /* 1 */ if ((*inModeLevel_Ack).LevelNeedsAck) { tmp1.q_textConfirm = Q_TEXTCONFIRM_Confirmation_required; } else { tmp1.q_textConfirm = Q_TEXTCONFIRM_No_confirmation_required; } tmp = con_levelMgmt_DMI_Types_Pkg; } else /* ck_anon_activ */ if (dmi_FromBG) { kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cTextSpecial_BG_manage_DMI_Output_Pkg); tmp = con_trackRequest_DMI_Types_Pkg; } else { kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &tmp1, (DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *) &cDefaultText_manage_DMI_Output_Pkg); tmp = con_undefined_DMI_Types_Pkg; } /* 2 */ sendTextMessage_manage_TextMessages_Pkg( inSystemTime, inStatusList, &tmp1, Q_TEXTREPORT_No_driver_acknowledgement_report_required, 111, tmp, (*inModeLevel_Ack).whichMode, (*announcedLevelTransition).LevelTransition.transition.level, outStatusList, dmi_textMessage); }
/* manage_DMI_Output_Pkg::collectDMIPackets */ void collectDMIPackets_manage_DMI_Output_Pkg( /* manage_DMI_Output_Pkg::collectDMIPackets::TIU_TrainStatus */TIU_trainStatus_T_TIU_Types_Pkg *TIU_TrainStatus, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_dynamic */DMI_Dynamic_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_dynamic, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_menuRequest */DMI_Menu_Request_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_menuRequest, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_entryRequest */DMI_Entry_Request_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_entryRequest, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_evc_coded_train_data */DMI_EVC_Coded_Train_Data_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_evc_coded_train_data, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_text_message */DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_text_message, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_trackDescription */DMI_Track_Description_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_trackDescription, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_identifierRequest */DMI_Identifier_Request_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_identifierRequest, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_systemVersion */DMI_System_Version_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_systemVersion, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_displayControl */DMI_Display_Control_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_displayControl, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_EVC_levelData */DMI_EVC_Level_Data_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_EVC_levelData, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_EVC_radioNet */DMI_EVC_Radio_Net_Data_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_EVC_radioNet, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_driverIdentifier */DMI_Driver_Identifier_T_DMI_Messages_Bothways_Pkg *dmi_driverIdentifier, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_trainRunningNumber */DMI_Train_Running_Number_T_DMI_Messages_Bothways_Pkg *dmi_trainRunningNumber, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_trainData */DMI_Train_Data_T_DMI_Messages_Bothways_Pkg *dmi_trainData, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_adhesionFactor */DMI_Adhesion_Factor_Data_T_DMI_Messages_Bothways_Pkg *dmi_adhesionFactor, /* manage_DMI_Output_Pkg::collectDMIPackets::dmi_iconRequest */DMI_Icons_T_DMI_Messages_EVC_to_DMI_Pkg *dmi_iconRequest, /* manage_DMI_Output_Pkg::collectDMIPackets::systemTime */T_internal_Type_Obu_BasicTypes_Pkg systemTime, outC_collectDMIPackets_manage_DMI_Output_Pkg *outC) { static dmiOutputs_T_manage_DMI_Output_Pkg tmp; outC->to_DMI.present = (*dmi_dynamic).valid | (*dmi_menuRequest).valid | (*dmi_entryRequest).valid | (*dmi_evc_coded_train_data).valid | (*dmi_text_message).valid | (*dmi_trackDescription).valid | (*dmi_identifierRequest).valid | (*dmi_systemVersion).valid | ((*dmi_displayControl).valid | (*dmi_EVC_levelData).valid | (*dmi_EVC_radioNet).valid | (*dmi_driverIdentifier).valid | (*dmi_trainRunningNumber).valid | (*dmi_trainData).valid | (*dmi_adhesionFactor).valid | (*dmi_iconRequest).valid); kcg_copy_DMI_Dynamic_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.dynamic, dmi_dynamic); kcg_copy_DMI_Menu_Request_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.menu_request, dmi_menuRequest); kcg_copy_DMI_Entry_Request_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.entry_request, dmi_entryRequest); kcg_copy_DMI_EVC_Coded_Train_Data_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.evc_coded_train_data, dmi_evc_coded_train_data); kcg_copy_DMI_Text_Message_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.textMessage, dmi_text_message); kcg_copy_DMI_Track_Description_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.trackDescription, dmi_trackDescription); kcg_copy_DMI_System_Version_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.systemVersion, dmi_systemVersion); kcg_copy_DMI_Display_Control_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.displayControl, dmi_displayControl); kcg_copy_DMI_EVC_Level_Data_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.EVC_levelData, dmi_EVC_levelData); kcg_copy_DMI_EVC_Radio_Net_Data_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.EVC_radioNetData, dmi_EVC_radioNet); kcg_copy_DMI_Driver_Identifier_T_DMI_Messages_Bothways_Pkg( &outC->to_DMI.driverIdentifier, dmi_driverIdentifier); kcg_copy_DMI_Train_Running_Number_T_DMI_Messages_Bothways_Pkg( &outC->to_DMI.trainRunningNumber, dmi_trainRunningNumber); kcg_copy_DMI_Train_Data_T_DMI_Messages_Bothways_Pkg( &outC->to_DMI.trainData, dmi_trainData); kcg_copy_DMI_Adhesion_Factor_Data_T_DMI_Messages_Bothways_Pkg( &outC->to_DMI.adhesionFactor, dmi_adhesionFactor); kcg_copy_DMI_Icons_T_DMI_Messages_EVC_to_DMI_Pkg( &outC->to_DMI.iconRequest, dmi_iconRequest); if (outC->init) { outC->init = kcg_false; kcg_copy_dmiOutputs_T_manage_DMI_Output_Pkg( &tmp, (dmiOutputs_T_manage_DMI_Output_Pkg *) &cOutputStatus_manage_DMI_Output_Pkg); } else { kcg_copy_dmiOutputs_T_manage_DMI_Output_Pkg(&tmp, &outC->rem_outputStatus); } /* 1 */ synchWithDMI_manage_DMI_Output_Pkg( dmi_identifierRequest, TIU_TrainStatus, &tmp, systemTime, &outC->to_DMI.identifierRequest, &outC->rem_outputStatus); }