/// <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); }