private static Alarm AlarmFactory(AlarmDataSet.alarm_definitionRow row, string conditionColumnName) { string condition = row[conditionColumnName].ToString(); if (Regex.IsMatch(condition, CountAlarm.Expression)) { return(new CountAlarm(row, conditionColumnName)); } else if (Regex.IsMatch(condition, LimitAlarm.Expression)) { return(new LimitAlarm(row, conditionColumnName)); } else if (Regex.IsMatch(condition, FlagAlarm.Expression)) { return(new FlagAlarm(row, conditionColumnName)); } else if (Regex.IsMatch(condition, RogueMinimumFlow.Expression)) { return(new RogueMinimumFlow(row, conditionColumnName.ToLower() == "clear_condition")); } else if (Regex.IsMatch(condition, RogueSystemState.Expression)) { return(new RogueSystemState(row)); } throw new NotImplementedException("Invalid alarm condition " + row[conditionColumnName]); }
public FlagAlarm(AlarmDataSet.alarm_definitionRow row, string conditionColumnName) : base(row) { string condition = row[conditionColumnName].ToString(); var m = Regex.Match(condition, Expression); if (!m.Success) { throw new ArgumentException("Invalid condition '" + condition + "'"); } }
public CountAlarm(AlarmDataSet.alarm_definitionRow row, string conditionColumnName) : base(row) { this.conditionColumnName = conditionColumnName; var m = Regex.Match(row.alarm_condition, Expression); if (m.Success) { limit = Convert.ToInt32(m.Groups["limit"].Value); equality = m.Groups["equality"].Value; } else { throw new ArgumentException("Invalid condition '" + row.alarm_condition + "' "); } }
public LimitAlarm(AlarmDataSet.alarm_definitionRow row, string conditionColumnName) : base(row) { string condition = row[conditionColumnName].ToString(); var m = Regex.Match(condition, Expression); if (m.Success) { m_alarmValue = Convert.ToDouble(m.Groups["value"].Value); m_alarmOperator = m.Groups["operator"].Value; customMessageVariables.Add("%limit_expression", m.Groups[0].Value); } else { throw new ArgumentException("Invalid condition '" + condition + "'"); } }
public RogueSystemState(AlarmDataSet.alarm_definitionRow row) : base(row) { // dont set the state alarm (it should alarm for each daily state change ) row.IsVirtual = true; // prevents active flag from being set. }
public Alarm(AlarmDataSet.alarm_definitionRow row) { m_row = row; event_point = null; }
public RogueMinimumFlow(AlarmDataSet.alarm_definitionRow row, bool clearCondition) : base(row) { Details = ""; m_clearCondition = clearCondition; }