private void AssignAlarmTexts(AlarmS7UImodel modifiedAlarmData) { _logger.Info($"Assgning S7 alarm texts."); //create list of alarm texts = data passed in constructor. Otained from DB List <string> currentTexts = CreateAlarmsList(modifiedAlarmData); //clear and initiate instance of all texts _listOfAllAlarmTexts = new List <S7AlarmEnabledTextsModel>(); for (int i = 0; i < _runtimeData.CustomLanguageList.Count; i++) { //if new alarm, alarm texts are "", but in modification mode, get thse from DB string alarmText; if (currentTexts.Count < 16) { alarmText = ""; } else { alarmText = currentTexts[i]; } //add new wlement to list with all texts - not showed in GUI _listOfAllAlarmTexts.Add(new S7AlarmEnabledTextsModel() { LanguageEnabled = _runtimeData.CustomLanguageList[i].Enabled, LanguageName = _runtimeData.CustomLanguageList[i].Language, AlarmText = alarmText, AlarmTextIdex = i, }); } }
private void AssignAlarmDefinitionData(AlarmS7UImodel modifiedAlarmData) { _logger.Info($"Assigning S7 alarm definition data."); if (modifiedAlarmData == null) //creating new alarm { AlarmActivated = true; AlmTagName = ""; AlmDBnumber = 0; AlmByteNumber = 0; AlmBitNumber = 0; AckTagName = ""; AckDBnumber = 0; AckByteNumber = 0; AckBitNumber = 0; } else //modifying alarm { AlarmActivated = modifiedAlarmData.AlarmActivated; AlmTagName = modifiedAlarmData.AlarmTagName; AlmDBnumber = modifiedAlarmData.AlarmTagDBnumber; AlmByteNumber = modifiedAlarmData.AlarmTagByteNumber; AlmBitNumber = modifiedAlarmData.AlarmTagBitNumber; AckTagName = modifiedAlarmData.AckTagName; AckDBnumber = modifiedAlarmData.AckTagDBnumber; AckByteNumber = modifiedAlarmData.AckTagByteNumber; AckBitNumber = modifiedAlarmData.AckTagBitNumber; } }
private List <string> CreateAlarmsList(AlarmS7UImodel modifiedAlarmData) { _logger.Info($"Creating list of alarm texts = 16 elements in List."); List <string> alarmTexts = new List <string>(); if (modifiedAlarmData != null) { alarmTexts.Add(modifiedAlarmData.SysLang1); alarmTexts.Add(modifiedAlarmData.SysLang2); alarmTexts.Add(modifiedAlarmData.SysLang3); alarmTexts.Add(modifiedAlarmData.SysLang4); alarmTexts.Add(modifiedAlarmData.SysLang5); alarmTexts.Add(modifiedAlarmData.SysLang6); alarmTexts.Add(modifiedAlarmData.SysLang7); alarmTexts.Add(modifiedAlarmData.UserLang1); alarmTexts.Add(modifiedAlarmData.UserLang2); alarmTexts.Add(modifiedAlarmData.UserLang3); alarmTexts.Add(modifiedAlarmData.UserLang4); alarmTexts.Add(modifiedAlarmData.UserLang5); alarmTexts.Add(modifiedAlarmData.UserLang6); alarmTexts.Add(modifiedAlarmData.UserLang7); alarmTexts.Add(modifiedAlarmData.UserLang8); alarmTexts.Add(modifiedAlarmData.UserLang9); } return(alarmTexts); }
private int CheckIfAlarmProfileExists(AlarmS7UImodel alarmModel) { //create instance of alarm profile reader AlarmProfileReader reader = new AlarmProfileReader(_realmPRovider); //check if alarm profile with this name exists return(reader.GetIdOfAlarmProfileOfName(alarmModel.AlarmProfileName)); }
private bool SavingDataOfModifiedS7Alarm(AlarmS7UImodel model) { _logger.Info($"Procedure of sending gathered data about modified alarm, to DB, started."); AlarmS7Modifier modifier = new AlarmS7Modifier(_realmProvider); return(modifier.ModifySingleS7Alarm(model)); }
private int CheckIfRecipientsGroupExists(AlarmS7UImodel alarmModel) { //create instance of SMS reciipents group reader SMSrecipientsGroupReader reader = new SMSrecipientsGroupReader(_realmPRovider); //check if SMS recipients group with this name exists return(reader.GetIdOfGroupOfName(alarmModel.SMSrecipientsGroupName)); }
public void ModifyS7AlarmAndTexts(int identity) { if (!_multipleDeletionEnabled && CheckModifyingOrAddingNewAlarmsConditions()) { AlarmS7UImodel model = AlarmsForSelectedS7Connection.Where(x => x.Identity == identity).First(); DefaultS7AlarmHendlerViewModel ds7ahvm = new DefaultS7AlarmHendlerViewModel(SelectedShortPLCconnection, true, model, _realmProvider, _runtimeData); _manager.ShowDialog(ds7ahvm); GetAlarmsForS7Connection(SelectedShortPLCconnection.PLCconnectionID); } }
private string ObtainAlarmProperText(int langID) { //create instance of alarms reader AlarmS7Reader reader = new AlarmS7Reader(_realmProvider); //get alarm definition with texts AlarmS7UImodel alarmWithTexts = reader.GetSingleAlarmOfS7plcConnectionWithTexts(_alarm.PLCconnectionID, _alarm.Identity); //return proper text return(GetAlarmProperText(alarmWithTexts, langID)); }
private bool CheckLanguages(AlarmS7UImodel internalModel) { if (internalModel.SysLang1 == null || internalModel.SysLang2 == null || internalModel.SysLang3 == null || internalModel.SysLang4 == null || internalModel.SysLang5 == null || internalModel.SysLang6 == null || internalModel.SysLang7 == null || internalModel.UserLang1 == null || internalModel.UserLang2 == null || internalModel.UserLang3 == null || internalModel.UserLang4 == null || internalModel.UserLang5 == null || internalModel.UserLang6 == null || internalModel.UserLang7 == null || internalModel.UserLang8 == null || internalModel.UserLang9 == null) { return(false); } else { return(true); } }
private void AssignWindowData(AlarmS7UImodel modifiedAlarmData) { _logger.Info($"Assigning properties of window at the window creation."); GetListOfActualProfiles(); GetListOfActualSMSgroups(); AssignAlarmDefinitionData(modifiedAlarmData); AssignAlarmTexts(modifiedAlarmData); PopulateListViewWithAlarmTexts(); //in case of modifying - assign sms recipients group and alarm profile names to selected items in comboboxes if (modifiedAlarmData != null) { SelectedAlarmUrgencyProfile = AlarmUrgencyProfile.Where(x => x.Identity == modifiedAlarmData.AlarmProfileIdentity).First(); SelectedSMSrecipientsGroup = SmsRecipientsGroups.Where(x => x.Identity == modifiedAlarmData.SMSrecipientsGroupIdentity).First(); } }
private void AddAlarmToDB(AlarmS7Creator creator, AlarmS7UImodel item, int profileID, int smsGroupID) { List <string> alarmTexts = new List <string> { item.SysLang1, item.SysLang2, item.SysLang3, item.SysLang4, item.SysLang5, item.SysLang6, item.SysLang7, item.UserLang1, item.UserLang2, item.UserLang3, item.UserLang4, item.UserLang5, item.UserLang6, item.UserLang7, item.UserLang8, item.UserLang9, }; bool added = creator.AddNewS7Alarm(_plcConnectionID, profileID, smsGroupID, item.AlarmActivated, item.AlarmTagName, item.AlarmTagDBnumber, item.AlarmTagByteNumber, item.AlarmTagBitNumber, item.AckTagName, item.AckTagDBnumber, item.AckTagByteNumber, item.AckTagBitNumber, alarmTexts); string message; if (added) { message = $"Alarm successfully added to database. PLC connection ID: {_plcConnectionID.ToString()}."; } else { message = $"Alarm NOT ADDED to Database."; } OnSingleImportDone(added, item.AlarmTagName, message, false); }
public void ApplyAndCLose() { _logger.Info($"Button for applying changes pressed; window mode is: {_windowMode}."); bool dataOK = ExecuteDataCorrectnessCheck(); if (dataOK) { if (!_windowMode) //new alarm { _logger.Info($"Attempt to save new S7 alarm to DB."); bool done = SendDataOfNewS7AlarmToDB(); if (!done) { MessageBox.Show($"Error while trying to save new S7 alarm to DB.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } else { TryClose(); } } else //modify alarm { _logger.Info($"Attempt to save modifications of existing S7 alarm. Alarm ID: {_modifiedAlarmData.Identity}."); AlarmS7UImodel model = GatherDataForModifyingExistingS7Alarm(); bool done = SavingDataOfModifiedS7Alarm(model); if (!done) { MessageBox.Show($"Error while trying to save S7 alarm modifications to DB.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } else { TryClose(); } } } }
private AlarmS7UImodel GatherDataForModifyingExistingS7Alarm() { _logger.Info($"Gathering data for modification of existing S7 alarm stated."); AlarmS7UImodel outputModel = new AlarmS7UImodel() { Identity = _modifiedAlarmData.Identity, PLCconnectionID = _modifiedAlarmData.PLCconnectionID, AlarmProfileIdentity = SelectedAlarmUrgencyProfile.Identity, SMSrecipientsGroupIdentity = SelectedSMSrecipientsGroup.Identity, AlarmActivated = AlarmActivated, AlarmTagName = AlmTagName, AlarmTagDBnumber = AlmDBnumber, AlarmTagByteNumber = AlmByteNumber, AlarmTagBitNumber = AlmBitNumber, AckTagName = AckTagName, AckTagDBnumber = AckDBnumber, AckTagByteNumber = AckByteNumber, AckTagBitNumber = AckBitNumber, SysLang1 = _listOfAllAlarmTexts[0].AlarmText, SysLang2 = _listOfAllAlarmTexts[1].AlarmText, SysLang3 = _listOfAllAlarmTexts[2].AlarmText, SysLang4 = _listOfAllAlarmTexts[3].AlarmText, SysLang5 = _listOfAllAlarmTexts[4].AlarmText, SysLang6 = _listOfAllAlarmTexts[5].AlarmText, SysLang7 = _listOfAllAlarmTexts[6].AlarmText, UserLang1 = _listOfAllAlarmTexts[7].AlarmText, UserLang2 = _listOfAllAlarmTexts[8].AlarmText, UserLang3 = _listOfAllAlarmTexts[9].AlarmText, UserLang4 = _listOfAllAlarmTexts[10].AlarmText, UserLang5 = _listOfAllAlarmTexts[11].AlarmText, UserLang6 = _listOfAllAlarmTexts[12].AlarmText, UserLang7 = _listOfAllAlarmTexts[13].AlarmText, UserLang8 = _listOfAllAlarmTexts[14].AlarmText, UserLang9 = _listOfAllAlarmTexts[15].AlarmText, }; return(outputModel); }
private string GetAlarmProperText(AlarmS7UImodel model, int LangID) { switch (LangID) { case 1: return(model.SysLang1); case 2: return(model.SysLang2); case 3: return(model.SysLang3); case 4: return(model.SysLang4); case 5: return(model.SysLang5); case 6: return(model.SysLang6); case 7: return(model.SysLang7); case 8: return(model.UserLang1); case 9: return(model.UserLang2); case 10: return(model.UserLang3); case 11: return(model.UserLang4); case 12: return(model.UserLang5); case 13: return(model.UserLang6); case 14: return(model.UserLang7); case 15: return(model.UserLang8); case 16: return(model.UserLang9); default: return(""); } }
public DefaultS7AlarmHendlerViewModel(PLCconnectionComboBoxModel connectionData, bool windowMode, AlarmS7UImodel modifiedAlarmData, IRealmProvider realmProvider, IRuntimeData runtimeData) { _realmProvider = realmProvider; _runtimeData = runtimeData; _logger = NLog.LogManager.GetCurrentClassLogger(); //assign data of modified alarm _modifiedAlarmData = modifiedAlarmData; //assing window parameters _connectionData = connectionData; _windowMode = windowMode; //assign connection name ConnectionName = _connectionData.ConnectionName; //Assign data of modified alarm(in case of alarm modification) AssignWindowData(modifiedAlarmData); _logger.Info($"Default S7 alarm handler window created."); }
private bool CheckIfAddressesAreAlreadyDefined(AlarmS7Creator creator, AlarmS7UImodel alarmModel) { return(creator.CheckAdditionPermissions(alarmModel.AlarmTagDBnumber, alarmModel.AlarmTagByteNumber, alarmModel.AlarmTagBitNumber, alarmModel.AlarmTagString, alarmModel.AckTagDBnumber, alarmModel.AckTagByteNumber, alarmModel.AckTagBitNumber, alarmModel.AckTagString, _plcConnectionID)); }
public AlarmS7UImodel Validate(AlarmS7UImodel model) { //create output model AlarmS7UImodel internalModel = model; //if there is no error at this point if (!model.CanModifyAlarm) { bool validationCorrect; //checking properties values validationCorrect = internalModel.Identity >= 1; if (validationCorrect) { validationCorrect = internalModel.PLCconnectionID >= 1; } if (validationCorrect) { validationCorrect = internalModel.AlarmProfileIdentity >= 1; } if (validationCorrect) { validationCorrect = internalModel.SMSrecipientsGroupIdentity >= 1; } if (validationCorrect) { validationCorrect = internalModel.AlarmTagName != null && internalModel.AlarmTagName != ""; } if (validationCorrect) { validationCorrect = internalModel.AlarmTagDBnumber >= 0; } if (validationCorrect) { validationCorrect = internalModel.AlarmTagByteNumber >= 0; } if (validationCorrect) { validationCorrect = internalModel.AlarmTagBitNumber >= 0 && internalModel.AlarmTagBitNumber <= 7; } if (validationCorrect) { validationCorrect = internalModel.AckTagName != null && internalModel.AckTagName != ""; } if (validationCorrect) { validationCorrect = internalModel.AckTagDBnumber >= 0; } if (validationCorrect) { validationCorrect = internalModel.AckTagByteNumber >= 0; } if (validationCorrect) { validationCorrect = internalModel.AckTagBitNumber >= 0 && internalModel.AckTagBitNumber <= 7; } if (validationCorrect) { validationCorrect = CheckLanguages(internalModel); } internalModel.CanModifyAlarm = !validationCorrect; } return(internalModel); }