Esempio n. 1
0
 /// <summary>
 /// Adds a <see cref="IManageCurrentAlarmsPlugin"/> to this composite alarm manager.
 /// </summary>
 /// <param name="plugin">The plugin to be used for current alarms management.</param>
 public void AddPlugin(IManageCurrentAlarmsPlugin plugin)
 {
     lock (_currentAlarmsPlugins)
     {
         _currentAlarmsPlugins.Add(plugin);
         _pluginsSnapshot = _currentAlarmsPlugins.ToReadOnly();
     }
     plugin.AlarmAdded += RaiseAlarmsChangedEvent;
     RaiseAlarmsChangedEvent(null);
 }
        public static Alarm CopyPlcAlarmToAlarm(this IManageCurrentAlarmsPlugin alarmPlugin, IAlarm plcAlarm, string source)
        {
            DateTime timeStamp = plcAlarm.Timestamp;

            var alarm = new Alarm
            {
                AlarmId    = (int)plcAlarm.Id,
                Type       = plcAlarm.AlarmType.ToEntity(),
                Message    = plcAlarm.Text,
                Source     = source,
                Timestamp  = timeStamp,
                SourceType = AlarmSourceType.Plc
            };

            return(alarm);
        }