public void Sort(AlarmType? sortingAlarmType) { SortingAlarmType = sortingAlarmType; Alarm oldAlarm = null; if (SelectedAlarm != null) { oldAlarm = SelectedAlarm.Alarm.Clone(); } Alarms.Clear(); foreach (var alarm in allAlarms) { if ((sortingAlarmType == null) || (alarm.AlarmType == sortingAlarmType)) { var alarmViewModel = new AlarmViewModel(alarm); Alarms.Add(alarmViewModel); } } if (oldAlarm != null) { SelectedAlarm = Alarms.FirstOrDefault(x => x.Alarm.IsEqualTo(oldAlarm)); } }
public static IList<Alarm> AlarmsWithType(AlarmType type) { CheckAPI (); return KACWrapper.KAC.Alarms .Where (x => x.AlarmType == type.FromAlarmType ()) .Select (x => new Alarm (x)) .ToList (); }
internal Alarm(string text, object code, object tag, AlarmType type) { mTimeStamp = DateTime.Now; mTimeout = 5000; mActive = false; Text = text; Type = type; mTag = tag; mCode = code; }
internal SensorAlarmReport(Node node, byte[] payload) : base(node) { if (payload == null) throw new ArgumentNullException(nameof(payload)); if (payload.Length < 3) throw new ReponseFormatException($"The response was not in the expected format. {GetType().Name}: Payload: {BitConverter.ToString(payload)}"); // 5 bytes: byte 3 and 4 unknown Source = payload[0]; Type = (AlarmType)payload[1]; Level = payload[2]; }
public InstructionViewModel(Device device, Zone zone, AlarmType alarmType) { Title = "Инструкция "; AlarmType = alarmType; Instruction = FindInstruction(device, zone); HasContent = Instruction != null; if (Instruction != null) { Title += Instruction.Name; } }
public InstructionViewModel(Guid deviceUID, AlarmType alarmType) { Title = "Инструкции"; DeviceId = deviceUID; StateType = AlarmTypeToStateType(alarmType); HasContent = FindDeviceInstruction(DeviceId) || FindZoneInstruction(ZoneNo); if (!HasContent) { Instruction = InstructionGeneral; } }
public void ChangeAlarm(AlarmType alarm) { switch (alarm) { case AlarmType.None: this.alarm = new EventHandler(None); break; case AlarmType.Beep: this.alarm = new EventHandler(Beep); break; case AlarmType.LockWorkstation: this.alarm = new EventHandler(LockWorkstation); break; } }
public static StateType AlarmTypeToStateType(AlarmType alarmType) { switch (alarmType) { case AlarmType.Guard: case AlarmType.Fire: return StateType.Fire; case AlarmType.Attention: return StateType.Attention; case AlarmType.Info: return StateType.Info; default: return StateType.No; } }
public static void LoadAllCarAlarmTypeList() { if ((m_CarAlarmTypeList == null) || (m_CarAlarmTypeList.Count <= 0)) { DataTable table = new SqlDataAccess().getDataBySql(m_StrSql); if ((table != null) && (table.Rows.Count > 0)) { string key = string.Empty; foreach (DataRow row in table.Rows) { AlarmType type = new AlarmType(); FillAlarmData(ref type, row); key = Convert.ToString(row["SimNum"]); if ((m_CarAlarmTypeList != null) && !m_CarAlarmTypeList.ContainsKey(key)) { m_CarAlarmTypeList.Add(key, type); } } } } }
public WeatherRange(DeviceBaseWrapper dev,AlarmType alarm_type) : base(dev) { this.m_alarm_type = alarm_type; switch (m_alarm_type) { case AlarmType.RD: this.m_class = 47; break; case AlarmType.VI: this.m_class = 45; break; case AlarmType.WD: this.m_class = 46; break; case AlarmType.LS: this.m_class = 50; break; case AlarmType.BS: this.m_class = 51; break; } // this.m_eventmode = Global.getEventMode(this.m_class); this.m_eventmode = Global.getEventModeBySectionID(this.getSectionId(), this.m_class, ref this.IsLock, ref this.description); try { this.EventId = Global.getEventId(); } catch { this.m_eventmode = EventMode.DontCare; } }
public Alarm CreateMessage(object code, AlarmType type) { return CreateMessage("", code, null, type); }
public static string GetAlarmTypeDescription(this AlarmType type) { Tuple <AlarmType, string> tuple = alarmTypeDescriptionList.FirstOrDefault(x => x.Item1 == type); return((tuple != null) ? tuple.Item2 : "其他告警"); }
public void ChooseAlarm(AlarmType alarmType) { _alarm.DetachFrom(_filter); _alarm = AlarmFactory.CreateAlarm(alarmType); _alarm.AttachTo(_filter); }
public KACAlarm(String vID, String NewName, String NewNotes, double UT, Double Margin, AlarmType atype, Boolean NewHaltWarp, Boolean NewPause, KACXFerTarget NewTarget) : this(vID, NewName, NewNotes, UT, Margin, atype, NewHaltWarp, NewPause) { //Set target details XferOriginBodyName = NewTarget.Origin.bodyName; XferTargetBodyName = NewTarget.Target.bodyName; }
public void LoadFromString3(String AlarmDetails, Double CurrentUT) { //String is "VesselID|Name|Notes|AlarmTime.UT|AlarmMarginSecs|Type|Enabled|HaltWarp|PauseGame|ActionedAt|Manuever|Xfer|Target|Options|<ENDLINE>"); String[] vars = AlarmDetails.Split("|".ToCharArray(), StringSplitOptions.None); this.SaveName = HighLogic.CurrentGame.Title; this.VesselID = vars[0]; this.Name = KACUtils.DecodeVarStrings(vars[1]); this.Notes = KACUtils.DecodeVarStrings(vars[2]); this.AlarmTime.UT = Convert.ToDouble(vars[3]); this.AlarmMarginSecs = Convert.ToDouble(vars[4]); this.TypeOfAlarm = (KACAlarm.AlarmType)Enum.Parse(typeof(KACAlarm.AlarmType), vars[5]); this.Enabled = Convert.ToBoolean(vars[6]); this.HaltWarp = Convert.ToBoolean(vars[7]); this.PauseGame = Convert.ToBoolean(vars[8]); this.ActionedAt = Convert.ToDouble(vars[9]); if (vars[10] != "") { this.ManNodes = ManNodeDeserializeList(vars[10]); } if (vars[11] != "") { try { String[] XferParts = vars[11].Split(",".ToCharArray()); this.XferOriginBodyName = XferParts[0]; this.XferTargetBodyName = XferParts[1]; } catch (Exception ex) { KACWorker.DebugLogFormatted("Unable to load transfer details for {0}", Name); KACWorker.DebugLogFormatted(ex.Message); } } if (vars[12] != "") { //find the targetable object and set it this.TargetObject = TargetDeserialize(vars[12]); if (this.TargetObject == null && vars[12].StartsWith("Vessel,")) { this.TargetLoader = vars[12]; } } //Now do the work to set Actioned/triggered/etc if needed //KACWorker.DebugLogFormatted("A:{0},T:{1:0},Act:{2:0}", this.Name, CurrentUT, this.ActionedAt); if (ActionedAt > 0 && CurrentUT > ActionedAt) { KACWorker.DebugLogFormatted("Suppressing Alarm on Load:{0}", this.Name); this.Triggered = true; this.Actioned = true; this.AlarmWindowClosed = true; } else if (ActionedAt > CurrentUT) { KACWorker.DebugLogFormatted("Reenabling Alarm on Load:{0}", this.Name); this.Triggered = false; this.Actioned = false; this.ActionedAt = 0; this.AlarmWindowClosed = false; } }
/// <summary> /// 更新下发命令 /// </summary> /// <param name="command"></param> /// <param name="lpszVal"></param> /// <param name="lpszdateTime"></param> /// <param name="errCode"></param> /// <param name="errTxt"></param> public static void DbCmdRefresh(CommandVModel command, string lpszVal, DateTime lpszdateTime, AlarmType errCode, string errTxt) { if (command == null || lpszdateTime.Year < 2000) { return; } if (command.Module_id == 0) { return; } DataProcessBLL bll = new DataProcessBLL(command.Ledger, Config.Uid); if (command.Log_id != 0) { //FileLog.WriteLog(command.LpszDbVarName + " 后台Log:"+ command.Log_id + JsonHelper.Serialize(command)); bll.UpdataCmd(command, (int)errCode, errTxt); } else { if (command.IsNDb == true) { /*更新记录*/ //FileLog.WriteLog(command.LpszDbVarName + " 后台标示IsNDb:true :" + JsonHelper.Serialize(command)); bll.AddCmdLog(command, (int)errCode, errTxt); } } }
private AlarmType method_0(string string_1) { string str = string.Format(m_StrSql + this.string_0, string_1); AlarmType type = new AlarmType(); try { DataTable table = new SqlDataAccess().getDataBySql(str); if ((table != null) && (table.Rows.Count > 0)) { FillAlarmData(ref type, table.Rows[0]); } } catch (Exception exception) { ErrorMsg msg = new ErrorMsg("CarAlarmType", "GetSingleRowData", exception.Message); new LogHelper().WriteError(msg); } return type; }
public static void AssertTypes(this AlarmView view, AlarmLevel level, AlarmCategory category, AlarmType type, string typeDescription) { Assert.AreEqual(view.AlarmTypeDescription, typeDescription); Assert.AreEqual(view.AlarmCategoryDescription, category.GetEnumDescription()); Assert.AreEqual(view.AlarmLevelDescription, level.GetEnumDescription()); }
public bool SetAlarmType(AlarmType type) { if (type == AlarmType.AlarmSafe) { if (currentAlarm == type) { return(false); } else if (currentAlarm == AlarmType.AlarmYellow) { alarmMes = ""; currentAlarm = type; SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); return(false); } else if (currentAlarm == AlarmType.AlarmOrange) { alarmMes = ""; currentAlarm = type; SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); return(false); } else if (currentAlarm == AlarmType.AlarmRed) { alarmMes = ""; currentAlarm = type; SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); return(false); } else if (currentAlarm == AlarmType.AlarmWhite) { alarmMes = ""; currentAlarm = type; SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); return(false); } isAlarming = false; } else if (type == AlarmType.AlarmYellow) { //如果上一次是安全 if (currentAlarm == AlarmType.AlarmSafe) { alarmMes = ""; currentAlarm = type; AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } //如果一直是黄色报警,30分钟以内不再弹框 else if (currentAlarm == type) { if ((DateTime.Now - ConfirmTime).TotalMinutes < SetMinituesYellow) { return(false); } else { isAlarming = true; } } //如果上一次是橙色报警 else if (currentAlarm == AlarmType.AlarmOrange) { alarmMes = ""; currentAlarm = type; //结束橙色报警 SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); //开始黄色报警 AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } //如果上一次是红色报警 else if (currentAlarm == AlarmType.AlarmRed) { alarmMes = ""; currentAlarm = type; //结束红色报警 SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); //开始黄色报警 AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } } else if (type == AlarmType.AlarmOrange) { if (currentAlarm == AlarmType.AlarmSafe) { alarmMes = ""; currentAlarm = type; AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } else if (currentAlarm == type) { if ((DateTime.Now - ConfirmTime).TotalMinutes < SetMinituesOrange) { return(false); } else { isAlarming = true; } } else if (currentAlarm == AlarmType.AlarmYellow) { alarmMes = ""; currentAlarm = type; //结束橙色报警 SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); //开始黄色报警 AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } else if (currentAlarm == AlarmType.AlarmRed) { alarmMes = ""; currentAlarm = type; //结束红色报警 SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); //开始黄色报警 AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } } else if (type == AlarmType.AlarmRed) { //如果上次也是一级报警 if (currentAlarm == type) { double second = 900d - (DateTime.Now - AlarmTime).TotalSeconds; //红色报警时间超过900秒 if (second < 0) { alarmMes = ",已超过900秒, 立即打闸停机!"; } else { alarmMes = ",还剩下" + (int)second + "秒"; } isAlarming = true; } //如果上一次是安全,那么就把这次的报警保存数据库,并且记录当前ID else if (currentAlarm == AlarmType.AlarmSafe) { alarmMes = ""; currentAlarm = type; AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } //如果上一次是黄色报警,则结束黄色报警,开始红色报警 else if (currentAlarm == AlarmType.AlarmYellow) { alarmMes = ""; currentAlarm = type; //结束黄色报警 SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); //开始红色报警 AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } //如果上一次是橙色,则结束橙色,开始红色 else if (currentAlarm == AlarmType.AlarmOrange) { alarmMes = ""; currentAlarm = type; //结束黄色报警 SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); //开始红色报警 AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } } else if (type == AlarmType.AlarmWhite) { if (currentAlarm == AlarmType.AlarmSafe) { alarmMes = ""; currentAlarm = type; //开始报警 AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } else { if (currentFlag == flags) { //和上次同样的报警 if ((DateTime.Now - ConfirmTime).TotalMinutes < SetMinituesWhite) { return(false); } else { isAlarming = true; } } else { //报警 alarmMes = ""; currentAlarm = type; //结束上次报警 SQLHelper.ExecuteSql("update AlarmFCZ set AlarmEndTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',AlarmState='已结束'" + ",AlarmLasts='" + PublicFunction.GetTimeSpanString(DateTime.Now - AlarmTime) + "' where AlarmTime='" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "'"); //开始报警 AlarmTime = DateTime.Now; SQLHelper.ExecuteSql("insert into AlarmFCZ (AlarmTime,AlarmText,AlarmState,AlarmDesc,UnitNO) values ('" + AlarmTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + AlarmMessage + "','正在报警','" + AlarmName + "'," + UnitNO + ")"); isAlarming = false; } } currentFlag = flags; } return(true); }
public void Sort(AlarmType? alarmType) { _alarmType = alarmType; Alarms.Clear(); foreach (var alarm in allAlarms) { if ((alarmType == null) || (alarm.AlarmType == alarmType)) { var alarmViewModel = new AlarmViewModel(alarm); Alarms.Add(alarmViewModel); } } }
public AlarmEventArgs(AlarmType type, bool active) { AlarmType = type; Active = active; }
public static bool Stop(AlarmType alarmType, int alarmId, int typeId, out string msg) { return(Database.NonQuery(string.Format("UPDATE [dbo].[{0}] SET [StopTime] = GETDATE() WHERE [StopTime] < '2001-01-01' AND [AlarmId] = {1} AND [AlarmType] = '{2}' AND [TypeId] = {3}", TableName, alarmId, alarmType, typeId), out msg)); }
private void CalculateAlarmEvents() { int tempIntForTryParse = 0; double tempDoubleForTryParse = 0; IList <PointKeyValue> points = this.tempList; double highLimit = double.MaxValue; if (double.TryParse(this.AlarmHighLimit, out tempDoubleForTryParse)) { highLimit = double.Parse(this.AlarmHighLimit); } double lowLimit = double.MinValue; if (double.TryParse(this.AlarmLowLimit, out tempDoubleForTryParse)) { lowLimit = double.Parse(this.AlarmLowLimit); } int highAlarmDelay = int.MaxValue; highAlarmDelay = int.Parse(TempsenFormatHelper.GetSecondsFromFormatString(this.AlarmHighDelay)); int lowAlarmDelay = int.MaxValue; lowAlarmDelay = int.Parse(TempsenFormatHelper.GetSecondsFromFormatString(this.AlarmLowDelay)); AlarmType highAlarmType = AlarmType.Single; if ("Cumulative Event".Equals(this.HighAlarmType, StringComparison.InvariantCultureIgnoreCase)) { highAlarmType = AlarmType.Cumulative; } AlarmType lowAlarmType = AlarmType.Single; if ("Cumulative Event".Equals(this.LowAlarmType, StringComparison.InvariantCultureIgnoreCase)) { lowAlarmType = AlarmType.Cumulative; } int logInterval = 0; if (int.TryParse(this.LogInterval, out tempIntForTryParse)) { logInterval = int.Parse(this.LogInterval); } int overHighLimitEvents = 0; int belowLowLimitEvents = 0; DateTime highAlarmFirstTriggered = DateTime.MinValue; DateTime lowAlarmFirstTriggered = DateTime.MinValue; int overHighLimitTotalTime = 0; int belowLowLimitTotalTime = 0; int overHighLimitCumulativePoints = 0; int belowLowLimitCumulativePoints = 0; DateTime timeOfTheLastPointWithoutMark = DateTime.MinValue; foreach (var item in points) { if (!item.IsMark) { if (item.PointTemp >= highLimit) { overHighLimitCumulativePoints++; if (belowLowLimitCumulativePoints > 0) { belowLowLimitEvents++; int actualIntervals = belowLowLimitCumulativePoints - 1; if (actualIntervals == 0) { actualIntervals = 1; } belowLowLimitTotalTime += logInterval * actualIntervals; belowLowLimitCumulativePoints = 0; } int actualIntervalsToCheckAlarm = overHighLimitCumulativePoints - 1; int actualTotalTimeToCheckAlarm = 0; if (actualIntervalsToCheckAlarm == 0) { actualIntervalsToCheckAlarm = 1; } actualTotalTimeToCheckAlarm += logInterval * actualIntervalsToCheckAlarm; if (AlarmType.Cumulative == highAlarmType) { actualTotalTimeToCheckAlarm += overHighLimitTotalTime; } if (highAlarmFirstTriggered == DateTime.MinValue && actualTotalTimeToCheckAlarm >= highAlarmDelay) { highAlarmFirstTriggered = item.PointTime; } } else if (item.PointTemp <= lowLimit) { belowLowLimitCumulativePoints++; if (overHighLimitCumulativePoints > 0) { overHighLimitEvents++; int actualIntervals = overHighLimitCumulativePoints - 1; if (actualIntervals == 0) { actualIntervals = 1; } overHighLimitTotalTime += logInterval * actualIntervals; overHighLimitCumulativePoints = 0; } int actualIntervalsToCheckAlarm = belowLowLimitCumulativePoints - 1; int actualTotalTimeToCheckAlarm = 0; if (actualIntervalsToCheckAlarm == 0) { actualIntervalsToCheckAlarm = 1; } actualTotalTimeToCheckAlarm += logInterval * actualIntervalsToCheckAlarm; if (AlarmType.Cumulative == lowAlarmType) { actualTotalTimeToCheckAlarm += belowLowLimitTotalTime; } if (lowAlarmFirstTriggered == DateTime.MinValue && actualTotalTimeToCheckAlarm >= lowAlarmDelay) { lowAlarmFirstTriggered = item.PointTime; } } else { if (belowLowLimitCumulativePoints > 0) { belowLowLimitEvents++; int actualIntervals = belowLowLimitCumulativePoints - 1; if (actualIntervals == 0) { actualIntervals = 1; } belowLowLimitTotalTime += logInterval * actualIntervals; belowLowLimitCumulativePoints = 0; int actualIntervalsToCheckAlarm = belowLowLimitCumulativePoints - 1; int actualTotalTimeToCheckAlarm = 0; if (actualIntervalsToCheckAlarm == 0) { actualIntervalsToCheckAlarm = 1; } actualTotalTimeToCheckAlarm += logInterval * actualIntervalsToCheckAlarm; if (AlarmType.Cumulative == lowAlarmType) { actualTotalTimeToCheckAlarm += belowLowLimitTotalTime; } if (lowAlarmFirstTriggered == DateTime.MinValue && actualTotalTimeToCheckAlarm >= lowAlarmDelay) { lowAlarmFirstTriggered = item.PointTime; } } if (overHighLimitCumulativePoints > 0) { overHighLimitEvents++; int actualIntervals = overHighLimitCumulativePoints - 1; if (actualIntervals == 0) { actualIntervals = 1; } overHighLimitTotalTime += logInterval * actualIntervals; overHighLimitCumulativePoints = 0; int actualIntervalsToCheckAlarm = overHighLimitCumulativePoints - 1; int actualTotalTimeToCheckAlarm = 0; if (actualIntervalsToCheckAlarm == 0) { actualIntervalsToCheckAlarm = 1; } actualTotalTimeToCheckAlarm += logInterval * actualIntervalsToCheckAlarm; if (AlarmType.Cumulative == highAlarmType) { actualTotalTimeToCheckAlarm += overHighLimitTotalTime; } if (highAlarmFirstTriggered == DateTime.MinValue && actualTotalTimeToCheckAlarm >= highAlarmDelay) { highAlarmFirstTriggered = item.PointTime; } } } timeOfTheLastPointWithoutMark = item.PointTime; } } if (belowLowLimitCumulativePoints > 0) { belowLowLimitEvents++; int actualIntervals = belowLowLimitCumulativePoints - 1; if (actualIntervals == 0) { actualIntervals = 1; } belowLowLimitTotalTime += logInterval * actualIntervals; belowLowLimitCumulativePoints = 0; int actualIntervalsToCheckAlarm = belowLowLimitCumulativePoints - 1; int actualTotalTimeToCheckAlarm = 0; if (actualIntervalsToCheckAlarm == 0) { actualIntervalsToCheckAlarm = 1; } actualTotalTimeToCheckAlarm += logInterval * actualIntervalsToCheckAlarm; if (AlarmType.Cumulative == lowAlarmType) { actualTotalTimeToCheckAlarm += belowLowLimitTotalTime; } if (lowAlarmFirstTriggered == DateTime.MinValue && actualTotalTimeToCheckAlarm >= lowAlarmDelay) { lowAlarmFirstTriggered = timeOfTheLastPointWithoutMark; } } if (overHighLimitCumulativePoints > 0) { overHighLimitEvents++; int actualIntervals = overHighLimitCumulativePoints - 1; if (actualIntervals == 0) { actualIntervals = 1; } overHighLimitTotalTime += logInterval * actualIntervals; overHighLimitCumulativePoints = 0; int actualIntervalsToCheckAlarm = overHighLimitCumulativePoints - 1; int actualTotalTimeToCheckAlarm = 0; if (actualIntervalsToCheckAlarm == 0) { actualIntervalsToCheckAlarm = 1; } actualTotalTimeToCheckAlarm += logInterval * actualIntervalsToCheckAlarm; if (AlarmType.Cumulative == highAlarmType) { actualTotalTimeToCheckAlarm += overHighLimitTotalTime; } if (highAlarmFirstTriggered == DateTime.MinValue && actualTotalTimeToCheckAlarm >= highAlarmDelay) { highAlarmFirstTriggered = timeOfTheLastPointWithoutMark; } } this.HighAlarmEvents = overHighLimitEvents; this.LowAlarmEvents = belowLowLimitEvents; this.HighAlarmFirstTrigged = highAlarmFirstTriggered.ToString(Common.GetDefaultDateTimeFormat(), CultureInfo.InvariantCulture); this.LowAlarmFirstTrigged = lowAlarmFirstTriggered.ToString(Common.GetDefaultDateTimeFormat(), CultureInfo.InvariantCulture); this.HighAlarmTotalTimeAbove = TempsenFormatHelper.ConvertSencondToFormmatedTime(overHighLimitTotalTime.ToString()); this.LowAlarmTotalTimeBelow = TempsenFormatHelper.ConvertSencondToFormmatedTime(belowLowLimitTotalTime.ToString()); AlarmHighStatus = HighAlarmEvents > 0 ? "Alarm" : "OK"; AlarmLowStatus = LowAlarmEvents > 0 ? "Alarm" : "OK"; }
public Alarm(MainWindow mainWindow, AlarmType alarm) { ChangeAlarm(alarm); this.mainWindow = mainWindow; }
public Alarm CreateMessage(string text, object code, object tag, AlarmType type) { Alarm msg = new Alarm(text, code, tag, type); msg.Changed += new EventHandler(OnMessageChanged); lock (mSyncLock) { mMessages.Add(msg); } return msg; }
/// <summary> /// 设置要报警的内容/颜色/闪烁时间间隔 /// </summary> /// <param name="txt"></param> /// <param name="NoticeText"></param> /// <param name="type"></param> /// <param name="timeInterval"></param> /// <param name="isShowHide">是否显示隐藏按钮,隐藏按钮仅作用于黄色和橙色报警</param> /// <param name="flag">仅用于判断空冷岛阀门状态</param> public void SetText(string txt, string NoticeText, AlarmType type, int timeInterval, bool isShowHide, int flag) { this.AlarmMessage = txt; this.flags = flag; if (SetAlarmType(type)) { if (currentAlarm == AlarmType.AlarmRed) { if (isAlarming) { timer.Enabled = true; } else { this.button1.Visible = false; currentColor = Color.Red; //Alert.gosound(); timer.Enabled = true; } } else if (currentAlarm == AlarmType.AlarmYellow) { if (isAlarming) { //下面这个判断临时添加(20151030) //抛物线黄色报警提示但不响声音 if (txt == "相对动应力显示图表黄色警报") { timer.Enabled = false; } else { timer.Enabled = true; } //return; } else { this.button1.Visible = isShowHide; currentColor = Color.Yellow; //Alert.gosound(); //timer_Elapsed(null, null); //timer.Interval = 10; if (txt == "相对动应力显示图表黄色警报") { timer.Enabled = false; } else { timer.Enabled = true; } } } else if (currentAlarm == AlarmType.AlarmOrange) { if (isAlarming) { timer.Enabled = true; //return; } else { this.button1.Visible = isShowHide; currentColor = Color.DarkOrange; //Alert.gosound(); timer.Enabled = true; } } else if (currentAlarm == AlarmType.AlarmWhite) { if (isAlarming) { timer.Enabled = true; //return; } else { this.button1.Visible = isShowHide; currentColor = Color.Tomato; //Alert.gosound(); timer.Enabled = true; } } this.promteText.Text = txt + alarmMes; this.promteText.ForeColor = currentColor; this.noticeLabel.Text = NoticeText; this.timer1.Interval = timeInterval; this.timer1.Enabled = true; this.Visible = true; } else { this.Visible = false; } }
/// <summary> /// 增加告警到数据库 /// </summary> /// <param name="lpszDbVarName"></param> /// <param name="lpszVal"></param> /// <param name="lpszdateTime"></param> /// <param name="errCode"></param> /// <param name="errTxt"></param> public static void DbAddAlarm(CommandVModel command, string lpszVal, DateTime lpszdateTime, AlarmType errCode, string errTxt, bool isSend) { DataProcessBLL bll = new DataProcessBLL(command.Ledger, Config.Uid); StringBuilder strContent = new StringBuilder(); DataTable dtSource = bll.GetMapInfo(command.LpszDbVarName); int ccc = dtSource.Rows.Count; if (ccc == 0) { FileLog.WriteLog("告警模块变量:" + command.LpszDbVarName + "不存在映射表中"); return; } if (ccc > 1) { FileLog.WriteLog("告警模块变量:" + command.LpszDbVarName + "在映射表中存在多个"); return; } int module_id = CommFunc.ConvertDBNullToInt32(dtSource.Rows[0]["Module_id"]); int co_id = CommFunc.ConvertDBNullToInt32(dtSource.Rows[0]["Co_id"]); int fun_id = CommFunc.ConvertDBNullToInt32(dtSource.Rows[0]["Fun_id"]); string moduleAddr = CommFunc.ConvertDBNullToString(dtSource.Rows[0]["ModuleAddr"]); string funType = CommFunc.ConvertDBNullToString(dtSource.Rows[0]["FunType"]); if (funType.Equals(V0Fun.LeakAlarm.ToString())) { if (lpszVal.Substring(0, 12).Contains("1")) { int cnt = 0; foreach (char c in lpszVal.Substring(0, 12).ToCharArray()) { string content = ""; ++cnt; if (c.ToString().Equals("1")) { if (cnt <= 8) { content = "漏电流" + cnt + "发生告警"; } else { content = "温度" + (cnt - 8) + "发生告警"; } } if (!string.IsNullOrEmpty(content)) { if (!string.IsNullOrEmpty(strContent.ToString())) { strContent.Append(";"); } strContent.Append(content); } } } } else { string content = ""; System.Reflection.FieldInfo info = typeof(V0Fun).GetField(funType); if (info != null) { var obj = info.GetCustomAttributes(typeof(DisplayAttribute), false); if (obj != null) { foreach (DisplayAttribute md in obj) { content = md.Name; } } } strContent.Append(content); } long log_id = bll.AddAlarm(co_id, module_id, moduleAddr, errCode.ToString(), fun_id, strContent.ToString(), lpszVal, lpszdateTime, (int)errCode, errTxt); if (isSend == true) {/*发送告警*/ SendHd(command.Ledger, log_id, errCode, HdType.AL_Sms, errTxt, module_id); SendHd(command.Ledger, log_id, errCode, HdType.AL_Email, errTxt, module_id); } }
void OnShowAlarms(AlarmType? alarmType) { AlarmsViewModel.Sort(alarmType); }
/// <summary> /// Set one of the two alarms on the DS323x module. /// </summary> /// <param name="alarm">Define the alarm to be set.</param> /// <param name="time">Date and time for the alarm.</param> /// <param name="type">Type of alarm to set.</param> public void SetAlarm(Alarm alarm, DateTime time, AlarmType type) { byte[] data = null; var register = Registers.Alarm1Seconds; var element = 0; if (alarm == Alarm.Alarm1Raised) { data = new byte[5]; element = 1; data[0] = Converters.ByteToBCD((byte)(time.Second & 0xff)); } else { data = new byte[4]; register = Registers.Alarm2Minutes; } data[element++] = Converters.ByteToBCD((byte)(time.Minute & 0xff)); data[element++] = Converters.ByteToBCD((byte)(time.Hour & 0xff)); if ((type == AlarmType.WhenDayHoursMinutesMatch) || (type == AlarmType.WhenDayHoursMinutesSecondsMatch)) { data[element] = (byte)(DayOfWeekToByte(time.DayOfWeek) | 0x40); } else { data[element] = Converters.ByteToBCD((byte)(time.Day & 0xff)); } switch (type) { // // Alarm 1 interrupts. // case AlarmType.OncePerSecond: data[0] |= 0x80; data[1] |= 0x80; data[2] |= 0x80; data[3] |= 0x80; break; case AlarmType.WhenSecondsMatch: data[1] |= 0x80; data[2] |= 0x80; data[3] |= 0x80; break; case AlarmType.WhenMinutesSecondsMatch: data[2] |= 0x80; data[3] |= 0x80; break; case AlarmType.WhenHoursMinutesSecondsMatch: data[3] |= 0x80; break; case AlarmType.WhenDateHoursMinutesSecondsMatch: break; case AlarmType.WhenDayHoursMinutesSecondsMatch: data[3] |= 0x40; break; // // Alarm 2 interupts. // case AlarmType.OncePerMinute: data[0] |= 0x80; data[1] |= 0x80; data[2] |= 0x80; break; case AlarmType.WhenMinutesMatch: data[1] |= 0x80; data[2] |= 0x80; break; case AlarmType.WhenHoursMinutesMatch: data[2] |= 0x80; break; case AlarmType.WhenDateHoursMinutesMatch: break; case AlarmType.WhenDayHoursMinutesMatch: data[2] |= 0x40; break; } _ds323x.WriteRegisters(register, data); // // Turn the relevant alarm on. // var controlRegister = ControlRegister; var bits = (byte)ControlRegisterBits.A1IE; if (alarm == Alarm.Alarm2Raised) { bits = (byte)ControlRegisterBits.A2IE; } controlRegister |= (byte)ControlRegisterBits.INTCON; controlRegister |= bits; ControlRegister = controlRegister; }
//테스트 메일 체커 public void AlarmCheck(AlarmType type, bool check) { StartCoroutine(CheckerUp(type, check)); }
public KACAlarm(String vID, String NewName, String NewNotes, double UT, Double Margin, AlarmType atype, Boolean NewHaltWarp, Boolean NewPause, List <ManeuverNode> NewManeuvers) : this(vID, NewName, NewNotes, UT, Margin, atype, NewHaltWarp, NewPause) { //set maneuver node ManNodes = NewManeuvers; }
public void FireAlarm(AlarmType alarmType) { FireAlarm(alarmType, false); }
public KACAlarm(String vID, String NewName, String NewNotes, double UT, Double Margin, AlarmType atype, Boolean NewHaltWarp, Boolean NewPause, ITargetable NewTarget) : this(vID, NewName, NewNotes, UT, Margin, atype, NewHaltWarp, NewPause) { //Set the ITargetable proerty TargetObject = NewTarget; }
public async Task<SensorAlarmReport> Get(AlarmType type) { var response = await Channel.Send(Node, new Command(Class, command.Get, Convert.ToByte(type)), command.Report); return new SensorAlarmReport(Node, response); }
private void ParseAlarmMessage(Message m) { /* * message.body will look similar to this: * value: 1234 * config: * <variable> * <name value="network_usage"/> * <alarm_trigger_level value="1"/> * <alarm_trigger_period value="60"/> * </variable> */ List<string> lines = new List<string>(m.body.Split('\n')); if (lines.Count < 2) return; string value = lines[0].Replace("value: ", ""); double.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out CurrentValue); string variableName = ""; try { string xml = string.Join("", lines.GetRange(1, lines.Count - 1).ToArray()).Replace("config:", ""); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNodeList name = doc.GetElementsByTagName("name"); if (name.Count > 0) variableName = name[0].Attributes["value"].Value; // if this doesn't get set the alarm will appear as "unrecognised" //in the dialog and will show the message body instead XmlNodeList level = doc.GetElementsByTagName("alarm_trigger_level"); if (level.Count > 0) double.TryParse(level[0].Attributes["value"].Value, NumberStyles.Any, CultureInfo.InvariantCulture, out TriggerLevel); XmlNodeList period = doc.GetElementsByTagName("alarm_trigger_period"); if (period.Count > 0) int.TryParse(period[0].Attributes["value"].Value, NumberStyles.Any, CultureInfo.InvariantCulture, out TriggerPeriod); } catch (Exception e) { log.Debug("Error Parsing Message Description", e); } switch (variableName) { case PerfmonDefinition.ALARM_TYPE_CPU: AlarmType = AlarmType.Cpu; break; case PerfmonDefinition.ALARM_TYPE_NETWORK: AlarmType = AlarmType.Net; break; case PerfmonDefinition.ALARM_TYPE_DISK: AlarmType = AlarmType.Disk; break; case PerfmonDefinition.ALARM_TYPE_FILESYSTEM: AlarmType = AlarmType.FileSystem; break; case PerfmonDefinition.ALARM_TYPE_MEMORY_FREE: AlarmType = AlarmType.Memory; break; case PerfmonDefinition.ALARM_TYPE_MEMORY_DOM0_USAGE: AlarmType = AlarmType.Dom0MemoryDemand; break; default: { var match = PerfmonDefinition.SrRegex.Match(variableName); if (match.Success) { AlarmType = AlarmType.Storage; sr = GetStorage(match.Groups[1].Value); } else AlarmType = AlarmType.None; } break; } }
public async Task <TopologyModel> UpdateLoadFlow(TopologyModel inputTopology) { string verboseMessage = $"{baseLogString} UpdateLoadFlow method called."; Logger.LogVerbose(verboseMessage); TopologyModel topology = inputTopology; try { Dictionary <long, float> loadOfFeeders = new Dictionary <long, float>(); feeders = new Dictionary <long, ITopologyElement>(); syncMachines = new Dictionary <long, ITopologyElement>(); dailyCurves = DailyCurveReader.ReadDailyCurves(); Logger.LogDebug($"{baseLogString} UpdateLoadFlow => Getting reclosers from model provider."); var modelProviderClient = CeModelProviderClient.CreateClient(); reclosers = await modelProviderClient.GetReclosers(); Logger.LogDebug($"{baseLogString} UpdateLoadFlow => Reclosers were delivered successfully."); if (topology == null) { string message = $"{baseLogString} UpdateLoadFlow => Topology is null."; Logger.LogWarning(message); //throw new Exception(message); return(topology); } await CalculateLoadFlow(topology, loadOfFeeders); await UpdateLoadFlowFromRecloser(topology, loadOfFeeders); foreach (var syncMachine in syncMachines.Values) { await SyncMachine(syncMachine, loadOfFeeders); } var commands = new Dictionary <long, float>(); var modbusData = new Dictionary <long, AnalogModbusData>(); foreach (var loadFeeder in loadOfFeeders) { if (feeders.TryGetValue(loadFeeder.Key, out ITopologyElement feeder)) { long signalGid = 0; foreach (var measurement in feeder.Measurements) { if (measurement.Value.Equals(AnalogMeasurementType.FEEDER_CURRENT.ToString())) { signalGid = measurement.Key; } } if (signalGid != 0) { Logger.LogDebug($"{baseLogString} UpdateLoadFlow => Calling SendAnalogCommand method from measurement provider. Measurement GID {signalGid:X16}, Value {loadFeeder.Value}."); commands.Add(signalGid, loadFeeder.Value); AlarmType alarmType = (loadFeeder.Value >= 36) ? AlarmType.HIGH_ALARM : AlarmType.NO_ALARM; modbusData.Add(signalGid, new AnalogModbusData(loadFeeder.Value, alarmType, signalGid, CommandOriginType.CE_COMMAND)); } else { Logger.LogWarning($"{baseLogString} UpdateLoadFlow => Feeder with GID 0x{feeder.Id:X16} does not have FEEDER_CURRENT measurement."); } } } var measurementProviderClient = MeasurementProviderClient.CreateClient(); await measurementProviderClient.SendMultipleAnalogCommand(commands, CommandOriginType.CE_COMMAND); Logger.LogDebug($"{baseLogString} UpdateLoadFlow => SendAnalogCommand method from measurement provider successfully finished."); Logger.LogDebug($"{baseLogString} UpdateLoadFlow => Calling update analog measurement method from measurement provider."); await measurementProviderClient.UpdateAnalogMeasurement(modbusData); Logger.LogDebug($"{baseLogString} UpdateLoadFlow => Update analog measurement method from measurement provider successfully finished."); } catch (Exception e) { string errorMessage = $"{baseLogString} UpdateLoadFlow => Exception: {e.Message}"; Logger.LogError(errorMessage, e); } return(topology); }
//c# 에선 부모 생성자 base() public Alarm(AlarmType type, int linkID, string text, int primaryKey) : base(primaryKey) { this.type = type; this.text = text; this.linkID = linkID; }
//Methods /// <summary> /// Sets the Windows Phone Scheduled Alarm /// May want to refactor and seperate add remove functions /// </summary> /// <param name="alarmType">(WARNING, TIMES_UP)</param> /// <param name="active">true adds timer / false any active timers are removed</param> public void AddRemoveAlarm(AlarmType alarmType, bool active)//add two string values to member fields (Warning, TimesUp) add switch statement to body and try catch for errors { AlarmWarnTime = MeterWarningTime; AlarmReturnTime = MeterReturnTime; DateTime alarmWarnTime = AlarmWarnTime; DateTime alarmReturnTime = AlarmReturnTime; bool TimeCorrect = false; try { //Reminder a = new Reminder("a"); //Reminder b = new Reminder("b"); if (DateTime.Now < alarmWarnTime.AddSeconds(30)) { reminderA = new Reminder("PMWarnReminder") { BeginTime = MeterWarningTime, ExpirationTime = AlarmWarnTime.AddSeconds(30), Content = "Parking Meter Warning", RecurrenceType = RecurrenceInterval.None, Title = "Parking Meter Reminder" }; TimeCorrect = true; } if (DateTime.Now < alarmReturnTime.AddSeconds(30)) { reminderB = new Reminder("PMReturnReminder") //change name to program name { BeginTime = MeterReturnTime, ExpirationTime = AlarmReturnTime.AddSeconds(30), Content = "Meter Time Has Run Out", RecurrenceType = RecurrenceInterval.None, Title = "Parking Meter Reminder" }; TimeCorrect = true; } if (active && TimeCorrect) { switch (alarmType) { case AlarmType.WARNING: { if (ScheduledActionService.Find(reminderA.Name) != null) { ScheduledActionService.Remove(reminderA.Name); } ScheduledActionService.Add(reminderA); } break; case AlarmType.TIMES_UP: { if (ScheduledActionService.Find(reminderB.Name) != null) { ScheduledActionService.Remove(reminderB.Name); } ScheduledActionService.Add(reminderB); } break; default: { } break; } //end switch } //end if else { switch (alarmType) { case AlarmType.WARNING: { if (reminderA != null) { if (ScheduledActionService.Find(reminderA.Name) != null) { ScheduledActionService.Remove(reminderA.Name); reminderA = null; } } } break; case AlarmType.TIMES_UP: { if (reminderB != null) { if (ScheduledActionService.Find(reminderB.Name) != null) { ScheduledActionService.Remove(reminderB.Name); reminderB = null; } } } break; default: { } break; } //end switch } } //end try catch (Exception ex) { MessageBox.Show(ex.Message, "Alarm Error", MessageBoxButton.OK); } }
private void ParseAlarmMessage(Message m) { /* * message.body will look similar to this: * value: 1234 * config: * <variable> * <name value="network_usage"/> * <alarm_trigger_level value="1"/> * <alarm_trigger_period value="60"/> * </variable> */ List <string> lines = new List <string>(m.body.Split('\n')); if (lines.Count < 2) { return; } string value = lines[0].Replace("value: ", ""); double.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out CurrentValue); string variableName = ""; try { string xml = string.Join("", lines.GetRange(1, lines.Count - 1).ToArray()).Replace("config:", ""); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNodeList name = doc.GetElementsByTagName("name"); if (name.Count > 0) { variableName = name[0].Attributes["value"].Value; } // if this doesn't get set the alarm will appear as "unrecognised" //in the dialog and will show the message body instead XmlNodeList level = doc.GetElementsByTagName("alarm_trigger_level"); if (level.Count > 0) { double.TryParse(level[0].Attributes["value"].Value, NumberStyles.Any, CultureInfo.InvariantCulture, out TriggerLevel); } XmlNodeList period = doc.GetElementsByTagName("alarm_trigger_period"); if (period.Count > 0) { int.TryParse(period[0].Attributes["value"].Value, NumberStyles.Any, CultureInfo.InvariantCulture, out TriggerPeriod); } } catch (Exception e) { log.Debug("Error Parsing Message Description", e); } switch (variableName) { case PerfmonDefinition.ALARM_TYPE_CPU: AlarmType = AlarmType.Cpu; break; case PerfmonDefinition.ALARM_TYPE_NETWORK: AlarmType = AlarmType.Net; break; case PerfmonDefinition.ALARM_TYPE_DISK: AlarmType = AlarmType.Disk; break; case PerfmonDefinition.ALARM_TYPE_FILESYSTEM: AlarmType = AlarmType.FileSystem; break; case PerfmonDefinition.ALARM_TYPE_MEMORY: AlarmType = AlarmType.Memory; break; default: { var match = PerfmonDefinition.SrRegex.Match(variableName); if (match.Success) { AlarmType = AlarmType.Storage; sr = GetStorage(match.Groups[1].Value); } else { AlarmType = AlarmType.None; } } break; } }
void InitServerByDatabase() { try { using (var dataReader = DataHelper.Instance.ExecuteProcedureReader("InitServer", DataHelper.CreateParam("@TYPE", System.Data.SqlDbType.Int, 1))) { if (dataReader == null) { Environment.Exit(0); } //dataReader.Read(); dataReader.Read(); int count = dataReader.GetInt32(0); _list = new List <TagMetaData>(count); _mapping = new Dictionary <string, ITag>(count); dataReader.NextResult(); while (dataReader.Read()) { _list.Add(new TagMetaData(dataReader.GetInt16(0), dataReader.GetInt16(1), dataReader.GetString(2), dataReader.GetString(3), (DataType)dataReader.GetByte(4), (ushort)dataReader.GetInt16(5), dataReader.GetBoolean(6), dataReader.GetFloat(7), dataReader.GetFloat(8), dataReader.GetInt32(9))); //_list[i].Description = dataReader.GetSqlString(6).Value; } _list.Sort(); if (reader != null && group == null) { group = reader.AddGroup("Group1", 1, 0, 0, true) as ClientGroup; group.AddItems(_list); } dataReader.NextResult(); _conditions = new List <ICondition>(); _conditionList = new ObservableCollection <ICondition>(); while (dataReader.Read()) { int id = dataReader.GetInt32(0); AlarmType type = (AlarmType)dataReader.GetInt32(2); ICondition cond; string source = dataReader.GetString(1); if (_conditions.Count > 0) { cond = _conditions[_conditions.Count - 1]; if (cond.ID == id) { cond.AddSubCondition(new SubCondition((SubAlarmType)dataReader.GetInt32(9), dataReader.GetFloat(10), (Severity)dataReader.GetByte(11), dataReader.GetString(12), dataReader.GetBoolean(13))); continue; } } switch (type) { case AlarmType.Complex: cond = new ComplexCondition(id, source, dataReader.GetString(6), dataReader.GetFloat(7), dataReader.GetInt32(8)); break; case AlarmType.Level: cond = new LevelAlarm(id, source, dataReader.GetString(6), dataReader.GetFloat(7), dataReader.GetInt32(8)); break; case AlarmType.Dev: cond = new DevAlarm(id, (ConditionType)dataReader.GetByte(4), source, dataReader.GetString(6), dataReader.GetFloat(5), dataReader.GetFloat(7), dataReader.GetInt32(8)); break; case AlarmType.ROC: cond = new ROCAlarm(id, source, dataReader.GetString(6), dataReader.GetFloat(7), dataReader.GetInt32(8)); break; case AlarmType.Quality: cond = new QualitiesAlarm(id, source, dataReader.GetString(6)); break; default: cond = new DigitAlarm(id, source, dataReader.GetString(6), dataReader.GetInt32(8)); break; } cond.AddSubCondition(new SubCondition((SubAlarmType)dataReader.GetInt32(9), dataReader.GetFloat(10), (Severity)dataReader.GetByte(11), dataReader.GetString(12), dataReader.GetBoolean(13))); cond.IsEnabled = dataReader.GetBoolean(3); var simpcond = cond as SimpleCondition; if (simpcond != null) { simpcond.Tag = this[source]; } else { var complexcond = cond as ComplexCondition; if (complexcond != null) { var action = complexcond.SetFunction(reval.Eval(source)); if (action != null) { ValueChangedEventHandler handle = (s1, e1) => { action(); }; foreach (ITag tag in reval.TagList) { tag.ValueChanged += handle;// tag.Refresh(); } } } } cond.AlarmActive += new AlarmEventHandler(cond_SendAlarm); cond.AlarmAck += new EventHandler(cond_AckAlarm); //_conditions.Add(cond);// UpdateCondition(cond); _conditions.Add(cond); } dataReader.NextResult(); while (dataReader.Read()) { _scales.Add(new Scaling(dataReader.GetInt16(0), (ScaleType)dataReader.GetByte(1), dataReader.GetFloat(2), dataReader.GetFloat(3), dataReader.GetFloat(4), dataReader.GetFloat(5))); } } reval.Clear(); _scales.Sort(); _compare = new CompareCondBySource(); _conditions.Sort(_compare); } catch (Exception e) { App.AddErrorLog(e); Environment.Exit(0); } }
public Alarm CreateMessage(object code, object tag, AlarmType type) { return CreateMessage("", code, tag, type); }
/// <summary> /// 判断是否路线行驶时间不足/过长报警,并取得附加信息 /// </summary> /// <param name="AlarmStatus"></param> /// <param name="AdditionMsg"></param> /// <param name="type"></param> /// <param name="AddItem"></param> /// <returns></returns> public static bool GetAlarmMsg(UInt32 AlarmStatus, string AdditionMsg, AlarmType type, ref LineSectionDriverTimeLessOrMoreAdditionItem AddItem) { bool bIsAlarm = IsAlarm(AlarmStatus, type); switch (type) { case AlarmType.LineSectionDriverTimeLessOrMore: List<AdditionMsgItem> addList = new List<AdditionMsgItem>(); byte[] AdditionMsgByte = Encoding.ASCII.GetBytes(AdditionMsg); LocationReport LR = new LocationReport(); LR.ParseAdditionMsg(AdditionMsgByte, 0, AdditionMsgByte.Length, ref addList); if (addList.Exists(o => o.MsgID == AdditionMsgIDType.LineSectionDriverTimeLessOrMoreAddition)) { AdditionMsgItem item = addList.Find(o => o.MsgID == AdditionMsgIDType.LineSectionDriverTimeLessOrMoreAddition); item.ParseItem(ref AddItem); } break; default: break; } return bIsAlarm; }
/*public int Id; * public string MelderGruppe; * public string MelderNummer; * public string MelderTyp; * public string Melderart; * public string Hinweistext; * public string Freitext; * public string TimeDelay;*/ public Alarm(int pId, int pTime, MelderType pMelderTyp, string pMelderGruppeNummer, string pInfotext, string pMeldertext, AlarmType pAlarmTyp) { id = pId; deltatime = pTime; melderGruppeNummer = pMelderGruppeNummer; melderTyp = pMelderTyp; infotext = pInfotext; meldertext = pMeldertext; alarmTyp = pAlarmTyp; }
public AlarmCondition(AlarmType t, double value) { this.Condition = t; this.Value = value; }
private static void SendHd(int ledger, long log_id, AlarmType alarmType, HdType hdType, string content, int module_id) { SysPro pro; NCSys.Pro.TryGetValue(ledger, out pro); if (pro == null) { return; } DataProcessBLL bll = new DataProcessBLL(ledger, Config.Uid); v2_alarm_logHandVModel hand = bll.GetAlarmHand(log_id, hdType.ToString()); hand.Content = content; if (hand.ErrCode == 1) { int sendSpan = CommFunc.ConvertDBNullToInt32(IniHepler.GetConfig(Config.lpFileName, "Alarm", "SendSpan")); if (hand.HdTime.AddMinutes(sendSpan) > DateTime.Now) { return; } else { hand.Aid = 0;/*新增一条记录*/ } } DataTable dtSource = bll.GetSendInfo(module_id); List <string> mpReceipts = new List <string>(); List <string> emReceipts = new List <string>(); string coName = "", moduleName = ""; foreach (DataRow drCrm in dtSource.Rows) { if (!string.IsNullOrEmpty(CommFunc.ConvertDBNullToString(drCrm["MPhone"]))) { mpReceipts.Add(CommFunc.ConvertDBNullToString(drCrm["MPhone"])); } if (!string.IsNullOrEmpty(CommFunc.ConvertDBNullToString(drCrm["Email"]))) { emReceipts.Add(CommFunc.ConvertDBNullToString(drCrm["Email"])); } coName = CommFunc.ConvertDBNullToString(drCrm["CoName"]); moduleName = CommFunc.ConvertDBNullToString(drCrm["ModuleName"]); } bool sue = false; string msg = ""; try { if (hdType == HdType.AL_Sms) { if (mpReceipts.Count > 0) { if (alarmType == AlarmType.Al_Use) {/*感知万物演示用*/ string ccc = JsonHelper.Serialize(new { moduleName = moduleName }); if (!string.IsNullOrEmpty(pro.Sms.ComSmsConfig.ComSms)) { sue = pro.Sms.SendMessage(mpReceipts, ccc, out msg); } else if (!string.IsNullOrEmpty(SmsFun.AliSmsConfig.AliAppKey)) { sue = pro.Sms.SmsMessage(mpReceipts, ccc, out msg, "SMS_137657141"); } else { msg = "没有发现短信接口"; } } else { msg = "感知演示,暂不开放"; } } else { msg = "无手机号码"; } } else if (hdType == HdType.AL_Email) { if (mpReceipts.Count > 0) { StringBuilder mailcont1 = new StringBuilder(); mailcont1.Append("你好:" + coName); mailcont1.Append("<br>"); mailcont1.Append("告警内容:" + hand.Content); mailcont1.Append("<br>"); mailcont1.Append("告警时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)); pro.Email.SendMail("告警通知", mailcont1.ToString(), "", emReceipts, null, null); sue = true; } else { msg = "无邮箱地址"; } } hand.ErrCode = sue == true ? 1 : -1; } catch (Exception ex) { hand.ErrCode = -1; msg = ex.Message; } hand.ErrTxt = msg; bll.UpAlarmHand(hand); }
StateType AlarmTypeToStateType(AlarmType alarmType) { switch (alarmType) { case AlarmType.Fire: return StateType.Fire; case AlarmType.Attention: return StateType.Attention; case AlarmType.Failure: return StateType.Failure; case AlarmType.Off: return StateType.Off; case AlarmType.Info: return StateType.Info; case AlarmType.Service: return StateType.Service; default: return StateType.No; } }
public static void DbEventWpf(CommandVModel command, string lpszVal, DateTime lpszdateTime, AlarmType errCode, string errTxt) { if (lpszVal == null || lpszdateTime.Year < 2000) { return; } if (errCode != AlarmType.Sue) { return; } DataProcessBLL bll = new DataProcessBLL(command.Ledger, Config.Uid); SysPro pro; NCSys.Pro.TryGetValue(command.Ledger, out pro); if (pro == null) { FileLog.Error("CollectAlarm.DbEventWpf 模块没有项目:" + command.Ledger); return; } string mkey = pro.ProjectKey + command.LpszDbVarName; CollectVModel collect = null; if (NCSys.Result.TryGetValue(mkey, out collect) == false) { return; } RstVar rst = collect.RstVar;// MemcachedMgr.GetVal<RstVar>(mkey); bool isAdd = true; if (rst != null && !string.IsNullOrEmpty(rst.lpszVal)) { MalignantVModel pp = JsonHelper.Deserialize <MalignantVModel>(rst.lpszVal); if (collect.IsDb == false) { if (pp.CTime == lpszdateTime) { isAdd = false; } } collect.IsDb = false; } if (isAdd == true) { /*增加到数据库中*/ bll.AddAlarmOnCollect(command.Co_id, command.Module_id, command.ModuleAddr, command.FunType, command.Fun_id, lpszVal, (int)errCode, errTxt, lpszdateTime); } }
public KACAlarm(String vID, String NewName, String NewNotes, double UT, Double Margin, AlarmType atype, Boolean NewHaltWarp, Boolean NewPause) { //if (KACWorkerGameState.IsFlightMode) try { SaveName = HighLogic.CurrentGame.Title; } catch (Exception) { } VesselID = vID; Name = NewName; Notes = NewNotes; AlarmTime.UT = UT; AlarmMarginSecs = Margin; TypeOfAlarm = atype; Remaining.UT = AlarmTime.UT - Planetarium.GetUniversalTime(); HaltWarp = NewHaltWarp; PauseGame = NewPause; }
public AlarmMember(ulong memberId, AlarmType alarmType) { this.memberId = memberId; this.alarmType = alarmType; }
private static void FillAlarmData(ref AlarmType alarmType_0, DataRow dataRow_0) { try { alarmType_0.AlarmSwitch = NumHelper.ConvertToInt(dataRow_0["AlarmSwitch"]); alarmType_0.AlarmFlag = NumHelper.ConvertToInt(dataRow_0["AlarmFlag"]); alarmType_0.ShowAlarm = NumHelper.ConvertToInt(dataRow_0["ShowAlarm"]); alarmType_0.cust_AlarmSwitch = NumHelper.ConvertToInt(dataRow_0["cust_AlarmSwitch"]); alarmType_0.cust_AlarmFlag = NumHelper.ConvertToInt(dataRow_0["cust_AlarmFlag"]); alarmType_0.cust_ShowAlarm = NumHelper.ConvertToInt(dataRow_0["cust_ShowAlarm"]); alarmType_0.cust_AlarmName = Convert.ToString(dataRow_0["AlarmName"]); if (dataRow_0["AlarmSwitchExt"] != null) { alarmType_0.AlarmSwitchExt = Convert.ToInt64(dataRow_0["AlarmSwitchExt"].ToString()); } if (dataRow_0["AlarmFlagExt"] != null) { alarmType_0.AlarmFlagExt = Convert.ToInt64(dataRow_0["AlarmFlagExt"].ToString()); } if (dataRow_0["ShowAlarmExt"] != null) { alarmType_0.ShowAlarmExt = Convert.ToInt64(dataRow_0["ShowAlarmExt"].ToString()); } alarmType_0.AlarmSwitch |= alarmType_0.cust_AlarmSwitch; alarmType_0.AlarmFlag |= alarmType_0.cust_AlarmFlag; alarmType_0.ShowAlarm |= alarmType_0.cust_ShowAlarm; } catch { } }
public static Alarm CreateAlarm(AlarmType type, string name, double ut) { CheckAPI (); var id = KACWrapper.KAC.CreateAlarm (type.FromAlarmType (), name, ut); return new Alarm (KACWrapper.KAC.Alarms.First (x => x.ID == id)); }
/// <summary> /// 是否报警(用于不含有附加信息的报警信息) /// </summary> /// <param name="AlarmStatus"></param> /// <param name="type"></param> /// <returns></returns> public static bool GetAlarmMsg(UInt32 AlarmStatus, AlarmType type) { return IsAlarm(AlarmStatus, type); }
public Task <SensorAlarmReport> Get(AlarmType type) { return(Get(type, CancellationToken.None)); }
public Alarm(int hundred, int one, AlarmType type) { Hundred = hundred; One = one; Type = type; }
public async Task <SensorAlarmReport> Get(AlarmType type, CancellationToken cancellationToken) { var response = await Channel.Send(Node, new Command(Class, command.Get, Convert.ToByte(type)), command.Report, cancellationToken); return(new SensorAlarmReport(Node, response)); }
/// <summary> /// 提供给报警服务使用,判断是否报警 /// </summary> /// <param name="AlarmStatus">报警状态位</param> /// <param name="type">报警类型</param> /// <returns></returns> private static bool IsAlarm(UInt32 AlarmStatus, AlarmType type) { byte[] AlarmStatusByte = BitConverter.GetBytes(AlarmStatus); int bitValue = 0; switch (type) { case AlarmType.GNSSModalError: //GNSS模块发生故障 bitValue = BuBiaoData.getBit(AlarmStatusByte[0], 4); break; case AlarmType.GNSSAntennaNoConn: //GNSS天线未接或被剪断 bitValue = BuBiaoData.getBit(AlarmStatusByte[0], 5); break; case AlarmType.GNSSAntennaShortOut: //GNSS天线短路 bitValue = BuBiaoData.getBit(AlarmStatusByte[0], 6); break; case AlarmType.TMLLCDError: //终端LCD或显示器故障 bitValue = BuBiaoData.getBit(AlarmStatusByte[1], 1); break; case AlarmType.TTSModalError: //TTS模块故障 bitValue = BuBiaoData.getBit(AlarmStatusByte[1], 2); break; case AlarmType.CameraError: //摄像头故障 bitValue = BuBiaoData.getBit(AlarmStatusByte[1], 3); break; case AlarmType.VehicleVSSError: //车辆VSS故障 bitValue = BuBiaoData.getBit(AlarmStatusByte[3], 0); break; case AlarmType.TMLPowerOff: //终端主电源掉电 bitValue = BuBiaoData.getBit(AlarmStatusByte[1], 0); break; case AlarmType.TMLPowerLow: //终端主电源欠压 bitValue = BuBiaoData.getBit(AlarmStatusByte[0], 7); break; case AlarmType.DayDriverTimeOut: //当天累计驾驶超时 bitValue = BuBiaoData.getBit(AlarmStatusByte[2], 2); break; case AlarmType.EmergencyAlarm: //紧急报警 bitValue = BuBiaoData.getBit(AlarmStatusByte[0], 0); break; case AlarmType.InOutArea: //进出区域 bitValue = BuBiaoData.getBit(AlarmStatusByte[2], 4); break; case AlarmType.InOutLine: //进出路线 bitValue = BuBiaoData.getBit(AlarmStatusByte[2], 5); break; case AlarmType.LineDriftAlarm: //路线偏离报警 bitValue = BuBiaoData.getBit(AlarmStatusByte[2], 7); break; case AlarmType.LineSectionDriverTimeLessOrMore: //路段行驶时间不足/过长 bitValue = BuBiaoData.getBit(AlarmStatusByte[2], 6); break; case AlarmType.SpeedingAlarm: //超速报警 bitValue = BuBiaoData.getBit(AlarmStatusByte[0], 1); break; case AlarmType.StopTimeOut: //超时停车 bitValue = BuBiaoData.getBit(AlarmStatusByte[2], 3); break; case AlarmType.TiredAlarm: //疲劳驾驶 bitValue = BuBiaoData.getBit(AlarmStatusByte[0], 2); break; default: bitValue = 0; break; } if (bitValue == 1) { return true; } else { return false; } }