Пример #1
0
        private void AddAlarmsToDB()
        {
            AlarmS7Creator creator = new AlarmS7Creator(_realmPRovider);

            //validation
            AlarmsImportItemValidator validator = new AlarmsImportItemValidator();

            foreach (var item in _parsedAlarms)
            {
                item.CanModifyAlarm = validator.Validate(item).CanModifyAlarm;

                //check if no error with specific parsed alarm
                if (!item.CanModifyAlarm)
                {
                    //check if alarm tith this alarm or ack tag already exists
                    if (CheckIfAddressesAreAlreadyDefined(creator, item))
                    {
                        //check if alarm profile exists
                        int alarmProfileID = CheckIfAlarmProfileExists(item);
                        if (alarmProfileID > 0)
                        {
                            int smsGroupID = CheckIfRecipientsGroupExists(item);
                            if (smsGroupID > 0)
                            {
                                AddAlarmToDB(creator, item, alarmProfileID, smsGroupID);
                            }
                            else
                            {
                                OnSingleImportDone(false, item.AlarmTagName, $"SMS recipients group '{item.SMSrecipientsGroupName}' does not exist in DB.", false);
                            }
                        }
                        else
                        {
                            OnSingleImportDone(false, item.AlarmTagName, $"The alarm urgency profile '{item.AlarmProfileName}' does not exist in DB.", false);
                        }
                    }
                    else
                    {
                        OnSingleImportDone(false, item.AlarmTagName, "Alarm with this alm or ack address is already defined for this PLC connection", false);
                    }
                }
                else
                {
                    OnSingleImportDone(false, item.AlarmTagName, "There was an error while parsing this alarm. Alarm not imported.", false);
                }
            }

            OnSingleImportDone(true, "Import finished", "Importing of all alarms from file finished", true);
        }
Пример #2
0
        private bool AddSingleS7AlarmToDB(AlarmSaveToDBDataModel model)
        {
            _logger.Info("Procedure for adding single S7 alarm to DB started.");

            List <string> texts = new List <string>();

            for (int i = 0; i < 16; i++)
            {
                texts.Add("");
            }

            AlarmS7Creator creator = new AlarmS7Creator(_realmProvider);

            return(creator.AddNewS7Alarm(model.PLcconnectionID, model.AlarmProfileID, model.SMSrecipientsGroup,
                                         model.ActivateAlarm, model.AlmTagName, model.AlmTagDBNumber, model.AlmTagByteNumber, model.AlmTagBitNumber,
                                         model.AckTagName, model.AckTagDBNumber, model.AckTagByteNumber, model.AckTagBitNumber, texts));
        }
        private bool SendDataOfNewS7AlarmToDB()
        {
            _logger.Info($"Gathering data for definition of new S7 alarms and texts.");

            List <string> texts = new List <string>();

            foreach (var item in _listOfAllAlarmTexts)
            {
                texts.Add(item.AlarmText);
            }

            _logger.Info($"Attempt of adding new S7 alarm definition to DB.");

            AlarmS7Creator creator = new AlarmS7Creator(_realmProvider);

            return(creator.AddNewS7Alarm(_connectionData.PLCconnectionID, SelectedAlarmUrgencyProfile.Identity,
                                         SelectedSMSrecipientsGroup.Identity, AlarmActivated, AlmTagName, AlmDBnumber, AlmByteNumber,
                                         AlmBitNumber, AckTagName, AckDBnumber, AckByteNumber, AckBitNumber, texts));
        }
Пример #4
0
        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);
        }
Пример #5
0
 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));
 }