internal void Notify_AlarmOrEvent(ModuleState module, AlarmOrEventInfo e) { var ae = new AlarmOrEvent() { ModuleID = module.ID, ModuleName = module.Name, Time = e.Time, IsSystem = false, Severity = e.Severity, Type = e.Type, Message = e.Message, Details = e.Details, AffectedObjects = e.AffectedObjects, Initiator = e.Initiator }; reqHandler.OnAlarmOrEvent(ae); string msg = e.Message; switch (e.Severity) { case Severity.Info: module.logger.Info(msg); break; case Severity.Warning: module.logger.Warn(msg); break; case Severity.Alarm: module.logger.Error(msg); break; } }
public bool UpdateWarningAlarmState(AlarmOrEventInfo e) { bool warnOrAlarm = e.Severity == Severity.Warning || e.Severity == Severity.Alarm; if (warnOrAlarm) { if (!map.ContainsKey(e.Type)) { map[e.Type] = new HashSet <ObjectRef>(); } var set = map[e.Type]; if (e.AffectedObjects != null) { foreach (var obj in e.AffectedObjects) { set.Add(obj); } } return(false); } else if (e.ReturnToNormal && map.ContainsKey(e.Type)) { var set = map[e.Type]; bool anyRemoved = false; if (e.AffectedObjects != null) { foreach (var obj in e.AffectedObjects) { anyRemoved |= set.Remove(obj); } } bool logInfo = anyRemoved || set.Count == 0; if (set.Count == 0) { map.Remove(e.Type); } return(logInfo); } else { return(e.Severity == Severity.Info && !e.ReturnToNormal); } }
public void Notify_AlarmOrEvent(AlarmOrEventInfo eventInfo) { connector.SendEvent(ID_Event_AlarmOrEvent, s => StdJson.ObjectToStream(eventInfo, s)); }
public void Notify_AlarmOrEvent(AlarmOrEventInfo alarmOrEventInfo) { syncContext.Post(delegate(object?state) { core.Notify_AlarmOrEvent(this, alarmOrEventInfo); }, null); }
internal void Notify_AlarmOrEvent(ModuleState module, AlarmOrEventInfo e) { Origin?initiator = e.Initiator; if (initiator.HasValue) { Origin origin = initiator.Value; string id = origin.ID; if (origin.Type == OriginType.User) { User user = userManagement.Users.FirstOrDefault(u => u.ID == id); if (user != null) { origin.Name = user.Name; } else if (origin.Name == null) { origin.Name = ""; } } else if (origin.Type == OriginType.Module) { var theModule = modules.FirstOrDefault(m => m.ID == id); if (theModule != null) { origin.Name = theModule.Name; } else if (origin.Name == null) { origin.Name = ""; } } initiator = origin; } var ae = new AlarmOrEvent() { ModuleID = module.ID, ModuleName = module.Name, Time = e.Time, IsSystem = false, Severity = e.Severity, ReturnToNormal = e.ReturnToNormal, Type = e.Type, Message = e.Message, Details = e.Details, AffectedObjects = e.AffectedObjects, Initiator = initiator }; reqHandler.OnAlarmOrEvent(ae); bool logInfo = module.UpdateWarningAlarmState(e); string msg = e.Message; switch (e.Severity) { case Severity.Info: if (logInfo) { module.logger.Info(msg); } break; case Severity.Warning: module.logger.Warn(msg); break; case Severity.Alarm: module.logger.Error(msg); break; } }