private void NotifyQualityChange(List <ItemState> badItems, List <ItemState> goodItems) { if (badItems.Count == 1) { string msg = "Bad quality for reading data item: " + badItems[0].Name; var ev = AlarmOrEventInfo.Warning("Quality", msg, ObjectRef.Make(moduleID, badItems[0].ID)); notifier.Notify_AlarmOrEvent(ev); } else if (badItems.Count > 1) { string names = string.Join(", ", badItems.Select(it => it.Name)); string msg = $"Bad quality for reading {badItems.Count} data items: " + names; ObjectRef[] objs = badItems.Select(it => ObjectRef.Make(moduleID, it.ID)).ToArray(); var ev = AlarmOrEventInfo.Warning("Quality", msg, objs); notifier.Notify_AlarmOrEvent(ev); } if (goodItems.Count == 1) { string msg = "Good quality restored for data item: " + goodItems[0].Name; var ev = AlarmOrEventInfo.Info("Quality", msg, ObjectRef.Make(moduleID, goodItems[0].ID)); notifier.Notify_AlarmOrEvent(ev); } else if (goodItems.Count > 1) { string names = string.Join(", ", goodItems.Select(it => it.Name)); string msg = $"Good quality restored for {goodItems.Count} data items: " + names; ObjectRef[] objs = goodItems.Select(it => ObjectRef.Make(moduleID, it.ID)).ToArray(); var ev = AlarmOrEventInfo.Info("Quality", msg, objs); notifier.Notify_AlarmOrEvent(ev); } }
private void Do_Notify_AlarmOrEvent(AdapterAlarmOrEvent eventInfo, Adapter adapter) { var ae = new AlarmOrEventInfo() { Time = eventInfo.Time, Severity = eventInfo.Severity, Type = eventInfo.Type, Message = adapter.Name + ": " + eventInfo.Message, Details = eventInfo.Details, AffectedObjects = eventInfo.AffectedDataItems.Select(di => ObjectRef.Make(moduleID, di)).ToArray(), Initiator = null }; notifier.Notify_AlarmOrEvent(ae); }
private void Log_Event(Severity severity, string type, string msg, Origin?initiator = null, string details = "") { var ae = new AlarmOrEventInfo() { Time = Timestamp.Now, Severity = severity, Type = type, Message = msg, Details = details, AffectedObjects = new ObjectRef[0], Initiator = initiator }; notifier.Notify_AlarmOrEvent(ae); }
private void Do_Notify_AlarmOrEvent(AdapterAlarmOrEvent eventInfo, Calculation adapter) { var ae = new AlarmOrEventInfo() { Time = eventInfo.Time, Severity = eventInfo.Severity, Type = eventInfo.Type, ReturnToNormal = eventInfo.ReturnToNormal, Message = adapter.Name + ": " + eventInfo.Message, Details = eventInfo.Details, AffectedObjects = eventInfo.AffectedObjects.Select(obj => ObjectRef.Make(moduleID, obj)).ToArray(), Initiator = null }; notifier !.Notify_AlarmOrEvent(ae); }
private void Log_Event(Severity severity, string type, string msg, Origin?initiator = null, string details = "", ObjectRef[]?affectedObjects = null, bool returnToNormal = false) { var ae = new AlarmOrEventInfo() { Time = Timestamp.Now, Severity = severity, Type = type, ReturnToNormal = returnToNormal, Message = msg, Details = details ?? "", AffectedObjects = affectedObjects ?? new ObjectRef[0], Initiator = initiator }; notifier !.Notify_AlarmOrEvent(ae); }