// Generates an alarm tag name private string GetTagName(DataModels.Alarm item) { string measurementLabel; StringBuilder description = new StringBuilder("AL-"); AlarmSeverity severity = item.Severity.GetEnumValueOrDefault <AlarmSeverity>(AlarmSeverity.None); AlarmOperation operation = item.Operation.GetEnumValueOrDefault <AlarmOperation>(AlarmOperation.Equal); switch (severity) { case AlarmSeverity.None: description.Append("EXEMPT"); break; case AlarmSeverity.Unreasonable: switch (operation) { case AlarmOperation.GreaterThan: case AlarmOperation.GreaterOrEqual: description.Append("HIGH"); break; case AlarmOperation.LessThan: case AlarmOperation.LessOrEqual: description.Append("LOW"); break; default: description.Append(severity.GetDescription()); break; } break; default: description.Append(severity.GetDescription()); break; } description.Append(':'); if (m_measurementLabels.TryGetValue(item.SignalID, out measurementLabel)) { description.Append(measurementLabel); } return(description.ToString()); }
/// <summary> /// Creates a new instance of the <see cref="Alarm"/> class. /// </summary> /// <param name="operation">The operation to be performed when testing values from the incoming signal.</param> public Alarm(AlarmOperation operation) { Operation = operation; }
/// <summary> /// Gets an operation description for an alarm. /// </summary> /// <param name="alarm">Alarm to derive description for.</param> /// <param name="tagName">Label of associated measurement.</param> /// <returns>Derived label.</returns> public static string GetOperationDescription(Alarm alarm, string tagName) { StringBuilder description; description = new StringBuilder(tagName); AlarmOperation operation = alarm.Operation.GetEnumValueOrDefault <AlarmOperation>(AlarmOperation.Equal); switch (operation) { case AlarmOperation.Equal: description.Append(" = "); break; case AlarmOperation.NotEqual: description.Append(" != "); break; case AlarmOperation.GreaterOrEqual: description.Append(" >= "); break; case AlarmOperation.LessOrEqual: description.Append(" <= "); break; case AlarmOperation.GreaterThan: description.Append(" > "); break; case AlarmOperation.LessThan: description.Append(" < "); break; case AlarmOperation.Flatline: if ((object)alarm.Delay == null) { return(string.Empty); } description.Append(" flat-lined for "); description.Append(alarm.Delay); description.Append(" seconds"); return(description.ToString()); default: description.Append(operation.GetDescription()); break; } if (alarm.SetPoint.HasValue) { description.Append(alarm.SetPoint); } else { description.Append("undefined"); } return(description.ToString()); }