Exemple #1
0
        // 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());
        }
Exemple #2
0
 /// <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;
 }
Exemple #3
0
 /// <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;
 }
Exemple #4
0
        /// <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());
        }