using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.Server { /// /// 报警中断分析辅助类 /// public class AlarmInterruptAnalyHelper { //缓存 private static List _cache=new List(); /// /// 验证是否报警 /// public static bool IsAlarm(long corpId, long monitorPointId, long? signalId, DateTime? dataTime, double thresholdValue) { var dtNow = DateTime.Now; var model = _cache.Find(x=>x.CorpID==corpId&&x.MonitorPointID==monitorPointId&&x.SignalID==signalId); if (model == null) { model = new AlarmInterruptAnalyModel(); model.CorpID = corpId; model.MonitorPointID = monitorPointId; model.SignalID = signalId; model.LastTime = dtNow; _cache.Add(model); } if (dataTime != null) { model.LastTime = dataTime.Value; } var lastTime = model.LastTime; if (dtNow <= lastTime) return false; var fValue = Math.Floor(Math.Abs(dtNow.Subtract(lastTime).TotalSeconds)); return fValue > thresholdValue; } } }