public ExpressionTask(string expId, string expName, ExpressionCalculateType expCalculateType, int timerInterval, string script, List <ICalculate> calcs) { Id = expId; Name = expName; Script = script; PatternDataList = new List <string>(); PatternDataList.AddRange(GetPatternDataList(Script)); if (calcs == null || calcs.Count <= 0) { CalculateOperators = new List <ICalculate>() { new ExpressionCalculate($"{Id}_result") }; } else { CalculateOperators = calcs; } _timer = new System.Timers.Timer(timerInterval); _timer.Elapsed += OnTimedEvent; _timer.AutoReset = true; TimerInterval = timerInterval; ExpressionCalculateType = expCalculateType; }
public ExpressionTask(string expId, string expName, ExpressionCalculateType expCalculateType, int timerInterval, string script, ICalculate calc) { Id = expId; Name = expName; Script = script; PatternDataList = new List <string>(); PatternDataList.AddRange(GetPatternDataList(Script)); if (calc == null) { CalculateOperator = new ExpressionCalculate(); } else { CalculateOperator = calc; } _timer = new System.Timers.Timer(timerInterval); _timer.Elapsed += OnTimedEvent; _timer.AutoReset = true; TimerInterval = timerInterval; ExpressionCalculateType = expCalculateType; }
internal void PublishCalculate() { DateTime nowTime = DateTime.Now; IMetaData[] mds = new MetaData[PatternDataList.Count]; for (int i = 0; i < mds.Length; i++) { mds[i] = new MetaData() { TagId = PatternDataList[i] }; } ICalculateContext calculateContext = new CalculateContext(Name, ExpressionCalculateType.ToString(), nowTime, nowTime, CalculateType.Expression, new CalculateInpute(Id, Script, nowTime, mds), null, CalculateOperators); GlobalContext.ActionBlock.Post(calculateContext); mds = null; }
public void AddOrUpdateExpressionTask(string expId, string expName, ExpressionCalculateType expCalculateType, int timerInterval, string script, ICalculate calc) { if (!_expList.ContainsKey(expId)) { IExpressionTask expTask = new ExpressionTask(expId, expName, expCalculateType, timerInterval, script, calc) { GlobalContext = _context }; _expList.TryAdd(expId, expTask); } else { IExpressionTask expTask; if (_expList.TryGetValue(expId, out expTask)) { expTask.Name = expName; expTask.Script = script; expTask.ExpressionCalculateType = expCalculateType; expTask.TimerInterval = timerInterval; expTask.CalculateOperator = calc; } } }