private bool ModifyAlarmTexts(AlarmLanguagesDefinition alarmTexts)
        {
            //create list of Strings
            List <string> texts = new List <string>()
            {
                alarmTexts.SysLang1,
                alarmTexts.SysLang2,
                alarmTexts.SysLang3,
                alarmTexts.SysLang4,
                alarmTexts.SysLang5,
                alarmTexts.SysLang6,
                alarmTexts.SysLang7,
                alarmTexts.UserLang1,
                alarmTexts.UserLang2,
                alarmTexts.UserLang3,
                alarmTexts.UserLang4,
                alarmTexts.UserLang5,
                alarmTexts.UserLang6,
                alarmTexts.UserLang7,
                alarmTexts.UserLang8,
                alarmTexts.UserLang9,
            };

            //save to DB
            AlarmTextsModifier modifier = new AlarmTextsModifier(_realmProvider);

            return(modifier.ModifyAlarmTexts(alarmTexts.AlarmIdentity, alarmTexts.PLCconnectionID, texts));
        }
Exemple #2
0
        private bool DeleteSingleAlarmTexts(int alarmIdentity, int plcConnectionID)
        {
            _logger.Info($"Method for deleting single alarm texts fired. Alarm id: {alarmIdentity}, PLC connection ID: {plcConnectionID}.");

            try
            {
                AlarmLanguagesDefinition definition = _realm.All <AlarmLanguagesDefinition>().
                                                      Where(x => x.AlarmIdentity == alarmIdentity && x.PLCconnectionID == plcConnectionID).First();

                using (var trans = _realm.BeginWrite())
                {
                    _realm.Remove(definition);
                    trans.Commit();
                }

                _logger.Info($"Alarm texts for alarm with alarmID: {alarmIdentity} and PLC connection ID: {plcConnectionID} deleted successfully");

                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error($"Error while trying to delete texts of existing alarm: {ex.Message}.");
                return(false);
            }
        }
Exemple #3
0
        private AlarmS7UImodel MergeAlarmDefinitionAndAlarmTexts
            (S7AlarmDefinition alarmDefinition, AlarmLanguagesDefinition alarmTexts)
        {
            if (alarmDefinition != null && alarmTexts != null)
            {
                //merge those 2 objects into one
                AlarmS7UImodel outputObject = new AlarmS7UImodel()
                {
                    Identity                   = alarmDefinition.Identity,
                    PLCconnectionID            = alarmDefinition.PLCconnectionID,
                    AlarmProfileIdentity       = alarmDefinition.AlarmProfileIdentity,
                    SMSrecipientsGroupIdentity = alarmDefinition.SMSrecipientsGroupIdentity,
                    AlarmActivated             = alarmDefinition.AlarmActivated,
                    AlarmTagName               = alarmDefinition.AlarmTagName,
                    AlarmTagDBnumber           = alarmDefinition.AlarmTagDBnumber,
                    AlarmTagByteNumber         = alarmDefinition.AlarmTagByteNumber,
                    AlarmTagBitNumber          = alarmDefinition.AlarmTagBitNumber,
                    AckTagName                 = alarmDefinition.AckTagName,
                    AckTagDBnumber             = alarmDefinition.AckTagDBnumber,
                    AckTagByteNumber           = alarmDefinition.AckTagByteNumber,
                    AckTagBitNumber            = alarmDefinition.AckTagBitNumber,

                    SysLang1  = alarmTexts.SysLang1,
                    SysLang2  = alarmTexts.SysLang2,
                    SysLang3  = alarmTexts.SysLang3,
                    SysLang4  = alarmTexts.SysLang4,
                    SysLang5  = alarmTexts.SysLang5,
                    SysLang6  = alarmTexts.SysLang6,
                    SysLang7  = alarmTexts.SysLang7,
                    UserLang1 = alarmTexts.UserLang1,
                    UserLang2 = alarmTexts.UserLang2,
                    UserLang3 = alarmTexts.UserLang3,
                    UserLang4 = alarmTexts.UserLang4,
                    UserLang5 = alarmTexts.UserLang5,
                    UserLang6 = alarmTexts.UserLang6,
                    UserLang7 = alarmTexts.UserLang7,
                    UserLang8 = alarmTexts.UserLang8,
                    UserLang9 = alarmTexts.UserLang9,

                    ObjectModified = false,
                };

                return(outputObject);
            }
            else
            {
                return(null);
            }
        }
Exemple #4
0
        private AlarmS7UImodel ReadSingleS7DetailedAlarm(int plcConnectionID, int alarmIdentity)
        {
            _logger.Info($"Method for obtaining full data of single alarm with PLC connection ID: {plcConnectionID}, and Identity: {alarmIdentity}; fired.");

            //read alarm definition
            S7AlarmDefinition alarmDefinition = ReadSingleAlarmDefinition(plcConnectionID, alarmIdentity);

            //create instance of alarm texts reader
            AlarmTextsReader reader = new AlarmTextsReader(_realmProvider);

            //read alarm texts
            AlarmLanguagesDefinition alarmTexts = reader.GetTextsTorSingleAlarm(alarmIdentity, plcConnectionID);

            //merge objects into one
            return(MergeAlarmDefinitionAndAlarmTexts(alarmDefinition, alarmTexts));
        }
        public static (S7AlarmDefinition, AlarmLanguagesDefinition) DivideToDifferentObjects(AlarmS7UImodel uiModel)
        {
            S7AlarmDefinition alarmDefinition = new S7AlarmDefinition()
            {
                Identity                   = uiModel.Identity,
                PLCconnectionID            = uiModel.PLCconnectionID,
                AlarmProfileIdentity       = uiModel.AlarmProfileIdentity,
                SMSrecipientsGroupIdentity = uiModel.SMSrecipientsGroupIdentity,
                AlarmActivated             = uiModel.AlarmActivated,
                AlarmTagName               = uiModel.AlarmTagName,
                AlarmTagDBnumber           = uiModel.AlarmTagDBnumber,
                AlarmTagByteNumber         = uiModel.AlarmTagByteNumber,
                AlarmTagBitNumber          = uiModel.AlarmTagBitNumber,
                AckTagName                 = uiModel.AckTagName,
                AckTagDBnumber             = uiModel.AckTagDBnumber,
                AckTagByteNumber           = uiModel.AckTagByteNumber,
                AckTagBitNumber            = uiModel.AckTagBitNumber,
            };

            AlarmLanguagesDefinition alarmTexts = new AlarmLanguagesDefinition()
            {
                Identity        = 0,
                AlarmIdentity   = uiModel.Identity,
                PLCconnectionID = uiModel.PLCconnectionID,
                SysLang1        = uiModel.SysLang1,
                SysLang2        = uiModel.SysLang2,
                SysLang3        = uiModel.SysLang3,
                SysLang4        = uiModel.SysLang4,
                SysLang5        = uiModel.SysLang5,
                SysLang6        = uiModel.SysLang6,
                SysLang7        = uiModel.SysLang7,
                UserLang1       = uiModel.UserLang1,
                UserLang2       = uiModel.UserLang2,
                UserLang3       = uiModel.UserLang3,
                UserLang4       = uiModel.UserLang4,
                UserLang5       = uiModel.UserLang5,
                UserLang6       = uiModel.UserLang6,
                UserLang7       = uiModel.UserLang7,
                UserLang8       = uiModel.UserLang8,
                UserLang9       = uiModel.UserLang9,
            };

            return(alarmDefinition, alarmTexts);
        }
Exemple #6
0
        private bool ModifySingleAlarmTexts(int AlarmIdentity, int plcConnectionID, List <string> texts)
        {
            _logger.Info($"Method for modification single alarm texts fired.");

            try
            {
                AlarmLanguagesDefinition definition = _realm.All <AlarmLanguagesDefinition>().
                                                      Where(x => x.PLCconnectionID == plcConnectionID && x.AlarmIdentity == AlarmIdentity).First();

                using (var trans = _realm.BeginWrite())
                {
                    definition.SysLang1  = texts[0];
                    definition.SysLang2  = texts[1];
                    definition.SysLang3  = texts[2];
                    definition.SysLang4  = texts[3];
                    definition.SysLang5  = texts[4];
                    definition.SysLang6  = texts[5];
                    definition.SysLang7  = texts[6];
                    definition.UserLang1 = texts[7];
                    definition.UserLang2 = texts[8];
                    definition.UserLang3 = texts[9];
                    definition.UserLang4 = texts[10];
                    definition.UserLang5 = texts[11];
                    definition.UserLang6 = texts[12];
                    definition.UserLang7 = texts[13];
                    definition.UserLang8 = texts[14];
                    definition.UserLang9 = texts[15];
                    trans.Commit();
                }

                _logger.Info($"Changing definition alarm texts for alarm with alarm id: {AlarmIdentity}, and connection ID: {plcConnectionID} successfull.");

                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error($"Error while trying to modify existing alarm texts definitions. Alarm ID: {AlarmIdentity}, connection ID: {plcConnectionID}. Error: {ex.Message}.");
                return(false);
            }
        }