Example #1
0
        private List <AlarmS7UImodel> ReadingSpecifiedS7DetailedAlarms(List <int> PLCconnectionIDlidt, List <int> alarmIdentityList)
        {
            _logger.Info($"Method for returning list of specified full definitions of alarms, fired. AMount of alarms: {alarmIdentityList.Count}.");

            //read alarm definitions list - ordered by Identity
            List <S7AlarmDefinition> alarmDefinitions = ReadSpecificAlarmsDefinitions(PLCconnectionIDlidt, alarmIdentityList);

            //read list of alarm texts - ordered by alarm identity
            AlarmTextsReader reader = new AlarmTextsReader(_realmProvider);
            List <AlarmLanguagesDefinition> alarmTexts = reader.ReadTextsForSpecificAlarms(alarmIdentityList, PLCconnectionIDlidt);

            //Merge read data int one list of objects
            List <AlarmS7UImodel> outputList = new List <AlarmS7UImodel>();

            if (alarmDefinitions.Count == alarmTexts.Count)
            {
                for (int i = 0; i < alarmDefinitions.Count; i++)
                {
                    outputList.Add(MergeAlarmDefinitionAndAlarmTexts(alarmDefinitions[i], alarmTexts[i]));
                }

                return(outputList);
            }
            else
            {
                _logger.Error($"List of read alarm definitions and list of alarm texts do not have the same amount of items!.");
                return(new List <AlarmS7UImodel>());
            }
        }
Example #2
0
        private List <AlarmS7UImodel> ReadAllS7DetailedAlarms(int plcConnectionID)
        {
            _logger.Info($"Method for reading all alarms for specific PLC connection, fired. Connection ID: {plcConnectionID}.");

            //read list of alarms - ordered by identity
            List <S7AlarmDefinition> alarmDefinitions = ReadAllAlarmsDefinitions(plcConnectionID);

            //read list of all texts for those data - ordered by  alarm dentity
            AlarmTextsReader reader = new AlarmTextsReader(_realmProvider);
            List <AlarmLanguagesDefinition> alarmTexts = reader.ReadAllTextsForSpecificConnection(plcConnectionID);

            //Merge read data int one list of objects
            List <AlarmS7UImodel> outputList = new List <AlarmS7UImodel>();

            if (alarmDefinitions.Count == alarmTexts.Count)
            {
                for (int i = 0; i < alarmDefinitions.Count; i++)
                {
                    outputList.Add(MergeAlarmDefinitionAndAlarmTexts(alarmDefinitions[i], alarmTexts[i]));
                }

                return(outputList);
            }
            else
            {
                _logger.Error($"List of read alarm definitions and list of alarm texts do not have the same amount of items!.");
                return(new List <AlarmS7UImodel>());
            }
        }
Example #3
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));
        }