protected override void Run() { try { var req = new UpdateNodeRefreshCommandQueueStatusRequest() { NodeId = GlobalNodeConfig.NodeID, Source = Source.Web, RefreshStatus = RefreshCommandQueueStatus.Refreshing, MonitorClassName = this.GetType().Name }; var r = NodeProxy.PostToServer <EmptyResponse, UpdateNodeRefreshCommandQueueStatusRequest>(ProxyUrl.UpdateNodeRefreshCmdQueueStatus_Url, req); if (r.Status != ResponesStatus.Success) { string title = "节点(编号):" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")上报监听命令状态失败,请及时处理!"; StringBuilder strContent = new StringBuilder(); strContent.AppendLine("请求地址:" + ProxyUrl.UpdateNodeRefreshCmdQueueStatus_Url + "<br/>"); strContent.AppendLine("请求参数:" + JsonConvert.SerializeObject(req) + "<br/>"); strContent.AppendLine("响应结果:" + JsonConvert.SerializeObject(r) + "<br/>"); AlarmHelper.AlarmAsync(GlobalNodeConfig.NodeInfo.isenablealarm, (AlarmType)GlobalNodeConfig.NodeInfo.alarmtype, GlobalNodeConfig.Alarm, title, strContent.ToString()); LogProxy.AddNodeErrorLog(strContent.ToString()); } } catch (Exception ex) { LogProxy.AddNodeErrorLog("节点(" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")" + ")监听命令队列监控异常:" + ex.Message + ",异常:" + JsonConvert.SerializeObject(ex)); AlarmHelper.AlarmAsync(GlobalNodeConfig.NodeInfo.isenablealarm, (AlarmType)GlobalNodeConfig.NodeInfo.alarmtype, GlobalNodeConfig.Alarm, "节点(" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")" + ")监听命令队列监控异常", JsonConvert.SerializeObject(ex)); } }
public TasksActivity() { _taskDataHelper = new ScheduledTaskDataHelper(); _dialogHelper = new DialogHelper(); _alarmHelper = new AlarmHelper(); _layoutManager = new LinearLayoutManager(this); }
public override void OnReceive(Context context, Intent intent) { if (intent.Action.Equals(Intent.ActionBootCompleted)) { AlarmHelper.SetAllAlarmWhenRestart(); } }
protected override void Run() { lock (lockObj) { int monitorstatus = (int)MonitorStatus.Monitoring; List <tb_nodemonitor> nodemonitorlist = nodemonitorRep.Find(x => x.isdel == 0 && x.monitorstatus == monitorstatus).ToList(); List <tb_user> userList = userRep.Find(x => x.isdel == 0).ToList(); StringBuilder strLog = new StringBuilder(); nodemonitorlist.ForEach(x => { try { tb_node node = nodeRep.FindSingle(m => m.id == x.nodeid); List <int> uidlist = node.alarmuserid.ConvertToList(); List <tb_user> userlist = userList.Where(m => uidlist.Contains(m.id)).ToList(); string alaramperson = node.alarmtype == (int)AlarmType.Email ? string.Join(",", userlist.Select(m => m.useremail).ToArray()) : string.Join(",", userlist.Select(m => m.usermobile).ToArray()); if (x.monitorstatus == (int)MonitorStatus.Monitoring)//运行中 { #region 检测心跳 double totalsecond = Math.Abs(x.lastmonitortime.Subtract(DateTime.Now).TotalSeconds); if (totalsecond > (20 + x.interval / 1000) || totalsecond < 0)//大于10s 说明心跳不正常 { nodemonitorRep.UpdateById(new List <int>() { x.id }, new Dictionary <string, string>() { { "monitorstatus", ((int)NodeStatus.NoRun).ToString() } }); //, { "refreshcommandqueuestatus", ((int)RefreshCommandQueueStatus.NoRefresh).ToString() } if (node.nodestatus != (int)NodeStatus.NoRun) { string title = "节点(编号):" + node.nodename + "(" + x.nodeid.ToString() + "),监控组件:" + x.classname + ",心跳异常,已自动更新为未监控状态,请及时处理该节点下该监控组件!"; StringBuilder strContent = new StringBuilder(); strContent.AppendLine("节点(编号):" + node.nodename + "(" + node.id.ToString() + ")<br/>"); strContent.AppendLine("节点监控组件名称(编号):" + x.name + "(" + x.id.ToString() + ")<br/>"); strContent.AppendLine("节点监控组件描述:" + x.discription + "<br/>"); strContent.AppendLine("节点监控类名,命名空间:" + x.classname + "," + x.classnamespace.ToString() + "<br/>"); strContent.AppendLine("节点监控组件最后一次心跳时间:" + x.lastmonitortime + "<br/>"); AlarmHelper.AlarmAsync(node.isenablealarm, (AlarmType)node.alarmtype, alaramperson, title, strContent.ToString()); } } #endregion } } catch (Exception ex) { strLog.AppendLine("监控节点监控组件异常:" + JsonConvert.SerializeObject(ex)); } }); if (strLog.Length > 0) { log.Error(strLog.ToString()); } } }
public void UpdateAckStatus(AlarmHelper alarmtoupdate) { long powerSystemResGid = alarmtoupdate.Gid; foreach (AlarmHelper alarm in this.Alarms) { if (alarm.Gid.Equals(powerSystemResGid) && alarm.AckState == AckState.Unacknowledged) { alarm.AckState = alarmtoupdate.AckState; alarm.CurrentState = alarmtoupdate.CurrentState; alarm.PubStatus = PublishingStatus.UPDATE; if (UpdateAlarmAckStatusIntoDb(alarm)) { Console.WriteLine("Alarm status with GID:{0} updated into database.", alarm.Gid); } try { this.Publisher.PublishStateChange(alarm); string message = string.Format("Alarm on Gid: {0} - Changed status: {1}", alarm.Gid, alarm.CurrentState); CommonTrace.WriteTrace(CommonTrace.TraceInfo, message); } catch (Exception ex) { string message = string.Format("Greska ", ex.Message); CommonTrace.WriteTrace(CommonTrace.TraceError, message); // throw new Exception(message); } } } }
public void UpdateAlarmsEvents(AlarmHelper alarm) { CommonTrace.WriteTrace(CommonTrace.TraceInfo, string.Format("UPDATE ALARM: {0} on Signal GID: {1} | SessionID id: {2}", alarm.Value.ToString(), alarm.Gid.ToString(), OperationContext.Current.SessionId)); CallbackAction(alarm); }
public static void EnsureAllScheduled() { foreach (var alarm in Alarms) { AlarmHelper.EnsureScheduled(alarm); } }
/// <summary> /// 报警处理 /// </summary> /// <param name="mon"></param> protected void CheckAlarm(byte[] alarmCode) { try { List <string> acList = new List <string>(); //未有报警 if (alarmCode.Length == 0 || alarmCode[0] == 0x00) { //删除当前报警(当前报警自动转化为历史报警) AlarmHelper.RemoveAlarm(GlobalConfig.AlarmSource); } else { //添加MCU报警 for (int i = 0; alarmCode != null && i < alarmCode.Length; i++) { if (alarmCode[i] > 0x00) { acList.Add(string.Format("0x{0}", CII.Library.Util.Sundry.StringUtil.ByteToString(alarmCode[i]))); } } AlarmHelper.AddAlarm(GlobalConfig.AlarmSource, acList); } } catch (Exception ex) { Entry.LAR.Entry.LogException(ex); } }
/// <summary> /// Check for sensor type Units Of Measure /// </summary> /// <param name="alarmObject"></param> /// <returns></returns> private string GetSensorTypeUOM(Interface.Alarm.AlarmObject alarmObject) { string sensorType = "", sensorTypeUOM = ""; SensorTypeInfo sensorTypeInfo = null; sensorType = alarmObject.SensorType.ToStr().Trim().ToUpper(); if (AlarmHelper.IsTempSensor(sensorType)) { sensorTypeUOM = (alarmObject.IsCelsius) ? "C" : "F"; } else if (sensorType.IndexOf("HUMI") >= 0) { sensorTypeUOM = "%RH"; } else if (AlarmHelper.IsContactSensor(sensorType)) { sensorTypeUOM = ""; } else if (sensorType.Length > 0) { sensorTypeInfo = AlarmHelper.GetSensorTypeInfo(sensorType); if (sensorTypeInfo != null) { sensorTypeUOM = sensorTypeInfo.UOM; sensorTypeInfo = null; } } return(sensorTypeUOM); }
public CreateTaskActivity() { _taskDataHelper = new ScheduledTaskDataHelper(); _dialogHelper = new DialogHelper(); _alarmHelper = new AlarmHelper(); _items = Enum.GetNames(typeof(Frequency)); }
private int GetSensorTypeDecimals(string sensorType) { int sensorTypeDecimals = 1; SensorTypeInfo sensorTypeInfo = null; sensorType = sensorType.ToStr().Trim().ToUpper(); if (AlarmHelper.IsTempSensor(sensorType)) { sensorTypeDecimals = 1; } else if (sensorType.IndexOf("HUMI") >= 0) { sensorTypeDecimals = 0; } else if (AlarmHelper.IsContactSensor(sensorType)) { sensorTypeDecimals = 0; } else if (sensorType.IndexOf("REPEA") >= 0) { sensorTypeDecimals = 0; } else if (sensorType.Length > 0) { sensorTypeInfo = AlarmHelper.GetSensorTypeInfo(sensorType); if (sensorTypeInfo.ID != 0) { sensorTypeDecimals = sensorTypeInfo.nDecimals; sensorTypeInfo = null; } } return(sensorTypeDecimals); }
private void CancelAlarms(List <MedicationSpread> reminders) { if (reminders == null) { return; } AlarmHelper alarmHelper = new AlarmHelper(this); try { foreach (var med in reminders) { if (med.MedicationTakeReminder != null) { if (med.MedicationTakeReminder.IsSet) { alarmHelper.CancelAlarm(med.MedicationTakeReminder.ID); } } } } catch (Exception e) { Log.Error(TAG, "CancelAlarms: Exception - " + e.Message); if (GlobalData.ShowErrorDialog) { ErrorDisplay.ShowErrorAlert(this, e, GetString(Resource.String.ErrorMedicationRemove), "MedicationActivity.CancelAlarms"); } } }
private string ReadAlarmHandle(ref ushort flib, string para) { string message = null; var res = new List <ReadAlarmResultItemModel>(); var ret = new AlarmHelper().ReadAlarmRange(flib, ref res); if (ret.Item1 == -16) { var ret_conn = ConnectHelper.BuildConnect(ref flib, m_ip, m_port, m_timeout); if (ret_conn == 0) { ret = new AlarmHelper().ReadAlarmRange(flib, ref res); } } if (ret.Item1 != 0) { message = ret.Item2; } GetResultEvent?.Invoke(new BaseCNCResultModel <ReadAlarmResultItemModel>() { Value = res, Id = para }); return(message); }
public ActionResult FilterCurrent() { List <int> alarms = (List <int>)Session["alarmIDs"]; int plcID = 1; string lang = "en"; if (Session["AlarmPlcID"] != null) { plcID = (int)Session["AlarmPlcID"]; } if (Session["AlarmLang"] != null) { if (Session["AlarmLang"].ToString().Length >= 2) { lang = Session["AlarmLang"].ToString(); } } if (alarms != null) { Session["alarmIDs"] = null; AlarmHelper AH = new AlarmHelper(); List <AlarmHelper.alarm_texts> model = new List <AlarmHelper.alarm_texts>(); model = AH.SelectAlarmsTexts(Session["AlarmDB"].ToString(), alarms, plcID, lang); return(View("Filter", model)); } Session["tempforview"] = "Problem with accesing current alarms"; return(RedirectToAction("Index", "Alarm")); }
private bool CheckForEGUAlarms(float value, float minEgu, float maxEgu, long gid, string name) { bool retVal = false; AlarmHelper ah = new AlarmHelper(gid, value, minEgu, maxEgu, DateTime.Now); if (value < minEgu) { ah.Type = AlarmType.LOW; if (value >= (minEgu - (minEgu * 20 / 100))) { ah.Severity = SeverityLevel.MEDIUM; } else if (value >= (minEgu - (minEgu * 40 / 100))) { ah.Severity = SeverityLevel.MINOR; } else { ah.Severity = SeverityLevel.LOW; } ah.TimeStamp = DateTime.Now; ah.Message = string.Format("Value on input analog signal: {0} lower than minimum expected value", name); ah.Name = name; AlarmsEventsProxy.Instance.AddAlarm(ah); retVal = true; CommonTrace.WriteTrace(CommonTrace.TraceInfo, "Alarm on low raw limit on gid: {0:X}", gid); Console.WriteLine("Alarm on low raw limit on gid: {0}", name); } if (value > maxEgu) { ah.Type = AlarmType.HIGH; if (value <= (maxEgu + (maxEgu * 10 / 100))) { ah.Severity = SeverityLevel.MAJOR; } else if (value <= (maxEgu + (maxEgu * 20 / 100))) { ah.Severity = SeverityLevel.HIGH; } else { ah.Severity = SeverityLevel.CRITICAL; } ah.TimeStamp = DateTime.Now; ah.Message = string.Format("Value on input analog signal: {0} higher than maximum expected value", name); ah.Name = name; AlarmsEventsProxy.Instance.AddAlarm(ah); retVal = true; CommonTrace.WriteTrace(CommonTrace.TraceInfo, "Alarm on high raw limit on gid: {0}", name); Console.WriteLine("Alarm on high raw limit on gid: {0}", name); } return(retVal); }
protected override void Run() { try { var res = NodeProxy.PostToServer <EmptyResponse, UpdateNodeMonitorRequest>(ProxyUrl.UpdateNodeMonitorRequest_Url, new UpdateNodeMonitorRequest() { MonitorClassName = this.GetType().Name, MonitorStatus = (int)MonitorStatus.Monitoring, NodeId = GlobalNodeConfig.NodeID, Source = Source.Node }); if (res.Status != ResponesStatus.Success) { LogProxy.AddNodeErrorLog(this.GetType().Name + "监控组件上报监控信息失败,请求地址:" + ProxyUrl.UpdateNodeMonitorRequest_Url + ",返回结果:" + JsonConvert.SerializeObject(res)); } LoadTaskIdListRequest req = new LoadTaskIdListRequest() { Source = Source.Node, TaskScheduleStatus = (int)TaskScheduleStatus.Scheduling, NodeId = GlobalNodeConfig.NodeID }; var r = NodeProxy.PostToServer <LoadTaskIdListResponse, LoadTaskIdListRequest>(ProxyUrl.LoadTaskIdList_Url, req); List <int> taskschdulinglist = TaskPoolManager.CreateInstance().GetList().Select(x => x.TaskModel.id).ToList(); if (r.Status != ResponesStatus.Success) { //如果服务端没有调度中的,则把本地在调度中的上报状态 if (taskschdulinglist.Count > 0) { UploadLocalTask(taskschdulinglist); } return; } List <int> taskidnotserver = taskschdulinglist.Where(x => !(r.Data.TaskIdList.Contains(x))).ToList(); r.Data.TaskIdList.ForEach(x => { var taskruntimeInfo = TaskPoolManager.CreateInstance().Get(x.ToString()); if (taskruntimeInfo == null)//如果等于空值则报警,说明该任务再 { string title = "节点(id):" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + "),任务id:(" + x + ")" + ",调度异常,请及时处理!"; StringBuilder strContent = new StringBuilder(); strContent.AppendLine("所在节点名称(编号):" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeID + ")<br/>"); strContent.AppendLine("任务编号:" + x + "<br/>"); strContent.AppendLine("服务端任务状态:调度中<br/>"); strContent.AppendLine("节点端任务状态:任务池中已不存在该任务,调度异常<br/>"); AlarmHelper.AlarmAsync(GlobalNodeConfig.NodeInfo.isenablealarm, (AlarmType)GlobalNodeConfig.NodeInfo.alarmtype, GlobalNodeConfig.Alarm, title, strContent.ToString()); LogProxy.AddNodeErrorLog(strContent.ToString()); } }); if (taskidnotserver.Count > 0) { UploadLocalTask(taskidnotserver); } } catch (Exception ex) { LogProxy.AddNodeErrorLog("节点(" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")" + ")监控调度中任务异常:" + ex.Message + ",异常:" + JsonConvert.SerializeObject(ex)); AlarmHelper.AlarmAsync(GlobalNodeConfig.NodeInfo.isenablealarm, (AlarmType)GlobalNodeConfig.NodeInfo.alarmtype, GlobalNodeConfig.Alarm, "节点(" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")" + ")监控调度中任务异常", JsonConvert.SerializeObject(ex)); } }
protected override Tuple <short, string> PollRead(string item) { var ret = new AlarmHelper().ReadAlarmRange(flib, ref temp); if (ret.Item1 != 0) { message = ret.Item2; } return(ret); }
public async Task <JsonResult> getData(string json = null) { Error.TraceStart(); string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString(); //Error.TraceLog("GraphController.getData, point1"); StreamReader stream = new StreamReader(Request.InputStream); if (json == null) { json = stream.ReadToEnd(); } if (json != "") { object data = new object(); DataRequest dataRequest = new JavaScriptSerializer().Deserialize <DataRequest>(json); Error.TraceLog("GraphController.getData, point1"); try { GraphHandler GH = new GraphHandler(); DataRequest dataResponse = await GH.proceedSQLquery(dataRequest, config); Error.TraceLog("GraphController.getData, point2"); if ((dataRequest.beginTime + dataRequest.timeAxisLength) <= AlarmHelper.DateTimeTopkTime(DateTime.Now)) { if (dataResponse.tags.All(p => p.vals.All(q => (q == double.MaxValue)) == true)) { for (int i = 0; i < dataResponse.tags.Count; i++) { dataResponse.tags[i].vals = null; } } } data = dataResponse; Error.TraceLog("GraphController.getData, point3"); return(Json(data, "application/json", JsonRequestBehavior.AllowGet)); } catch (Exception e) { data = dataRequest; string k = e.Message.ToString() + e.Source.ToString() + e.StackTrace.ToString(); string name = this.ControllerContext.RouteData.Values["controller"].ToString(); Error.toFile(k, name); Session["tempforview"] = Error.timestamp + " Error " + MvcApplication.ErrorId.ToString() + " occured so please try it again after some time"; //To screen also with id return(Json(data, "application/json", JsonRequestBehavior.AllowGet)); } } else { return(null); } }
private void CheckOnlyCountActivityAndRefreshAlarmManager() { // Refresh AlarmManager Alarm.IsInitFinished = false; var allAlarms = alarmService.GetAllAlarms(); Alarm.IsInitFinished = true; AlarmHelper.RefreshAlarmByManager100(allAlarms); OnlyCountDown(); }
public override void OnReceive(Context context, Intent intent) { Console.WriteLine("OnReceive_NotificationReceiver"); var bundle = intent.Extras; id = bundle.GetInt("id", -100000); GetAlarmById(); try { if (intent.Action == context.GetString(Resource.String.AlarmOff)) { TurnOffLaterAlarm(); CreateFailedRecord(); if (HelperAndroid.IsApplicationInTheBackground()) { CrossCurrentActivity.Current.Activity?.FinishAffinity(); } } else if (intent.Action == context.GetString(Resource.String.GoOffNow)) { OpenAlarmActivity(context, bundle); } else if (intent.Action == context.GetString(Resource.String.AlarmPreOff)) { alarm.IsTurnOffPreAlarm = true; App.AlarmService.SaveAlarm(alarm); alarm.IsGoOffPreAlarm = true; TurnOffPreAlarm(); if (HelperAndroid.IsApplicationInTheBackground()) { CrossCurrentActivity.Current.Activity?.FinishAffinity(); } } else if (intent.Action == "GoOffPre") { alarm.IsGoOffPreAlarm = true; App.AlarmService.SaveAlarmAtLocal(alarm); alarm.LaterAlarmTime = DateTime.Now.AddSeconds(0.5); AlarmHelper.SetLaterAlarm(alarm); } } catch { } finally { CancelNotification(context, intent); AlarmsViewModel.RefreshAlarmsCommand?.Execute(null); } }
public override void OnReceive(Context context, Intent intent) { Console.WriteLine("OnReceive_PreAlarmReceiver"); var bundle = intent.Extras; id = (int)bundle.Get("id"); Console.WriteLine($"Id_AlarmReceiver : {id}"); var alarm = GetAlarmFromDB(); NotificationAndroid.NotifyPreAlarm(GetAlarmFromDB(), intent); AlarmHelper.SetAlarmAtFirst(alarm); }
public static async Task DeleteAlarm(MyAlarm alarm) { try { Alarms.Remove(alarm); await Task.Run(async delegate { await SaveAlarmsAsync(); AlarmHelper.RemoveAlarm(alarm); }); } catch { } }
private void SetAlarmComeback() { switch (CultureInfo.CurrentCulture.Name) { case "ko-KR": AlarmHelper.SetComebackNotification(true); break; case "en-US": break; default: break; } }
private void SetLaterAlarm(int minutes) { var alarmTime = SetLaterAlarmAndGetLaterAlarmTime(minutes); AlarmHelper.SetLaterAlarm(alarm); //AlarmController.SetLaterAlarmByManager(alarm, (long)diffTimeSpan.TotalMilliseconds); alarmService.SaveAlarmAtLocal(alarm); countDownForFailed.Cancel(); Toast.MakeText(ApplicationContext, CreateDateString.CreateTimeRemainingString(alarmTime), ToastLength.Long).Show(); NotificationAndroid.NotifyLaterAlarm(alarm, Intent); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); InitForOpenApp(savedInstanceState); TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; SetMobileAds(); Fabric.Fabric.With(this, new Crashlytics.Crashlytics()); Crashlytics.Crashlytics.HandleManagedExceptions(); AlarmHelper.SetComebackNotification(false); }
public void PublishAlarmsEvents(AlarmHelper alarm, PublishingStatus status) { switch (status) { case PublishingStatus.INSERT: { AlarmsEventsEventArgs e = new AlarmsEventsEventArgs() { Alarm = alarm }; try { AlarmEvent(this, e); } catch (Exception ex) { string message = string.Format("AES does not have any subscribed client for publishing new alarms. {0}", ex.Message); CommonTrace.WriteTrace(CommonTrace.TraceVerbose, message); Console.WriteLine(message); } break; } case PublishingStatus.UPDATE: { alarm.PubStatus = PublishingStatus.UPDATE; AlarmUpdateEventArgs e = new AlarmUpdateEventArgs() { Alarm = alarm }; try { AlarmUpdate(this, e); } catch (Exception ex) { string message = string.Format("AES does not have any subscribed client for publishing alarm status change. {0}", ex.Message); CommonTrace.WriteTrace(CommonTrace.TraceVerbose, message); Console.WriteLine(message); } break; } } }
private static void Alaram(UpdateTaskExecuteLogRequest req2, NodeTaskRunTimeInfo task, AbstractTask abstracttask) { if (task.TaskModel.isenablealarm == 1) { string alarmperson = task.TaskModel.alarmtype == (int)AlarmType.Email ? abstracttask.GetAlarmEmailList() : abstracttask.GetAlarmMobileList(); string title = "任务名称(" + task.TaskModel.taskname + ")" + req2.RunStatus.description() + ",请及时处理!"; StringBuilder strContent = new StringBuilder(); strContent.AppendLine("所在节点名称(编号):" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeID + ")<br/>"); strContent.AppendLine("任务名称(编号):" + task.TaskModel.taskname + "(" + task.TaskModel.id + ")<br/>"); strContent.AppendLine("任务类型:" + ((TaskType)task.TaskModel.tasktype).description() + "<br/>"); strContent.AppendLine("任务执行参数:" + task.TaskVersionModel.taskparams + "<br/>"); strContent.AppendLine("任务执行日志:" + req2.LogMsg + "<br/>"); strContent.AppendLine("任务执行结果,状态:" + req2.RunStatus.description() + ",结果:" + JsonConvert.SerializeObject(req2.TaskResult) + "<br/>"); strContent.AppendLine("任务执行耗时(s):" + req2.TotalRunTime + "<br/>"); AlarmHelper.AlarmAsync(task.TaskModel.isenablealarm, (AlarmType)task.TaskModel.alarmtype, alarmperson, title, strContent.ToString()); } }
/// <param name="id">Id is page </param>s public async Task <ActionResult> Page(int page = 0, int count = 30) { List <int> alarms = new List <int>(); string lang = "en"; if (Session["filteredAlarms"] != null) { alarms = (List <int>)Session["filteredAlarms"]; } else { alarms = null; } int offsetPage = page * count; if (page < 0) { Session["tempforview"] = "You have reached the minimum alarm page"; return(RedirectToAction("Index")); } List <AlarmHelper.alarm> model = new List <AlarmHelper.alarm>(); AlarmHelper AH = new AlarmHelper(); int plcID = 1; if (int.Parse(Session["AlarmPlcID"].ToString()) != 0) { plcID = int.Parse(Session["AlarmPlcID"].ToString()); } if (Session["AlarmLang"] != null) { if (Session["AlarmLang"].ToString().Length >= 2) { lang = Session["AlarmLang"].ToString(); } } model = await AH.SelectAlarms(Session["AlarmDB"].ToString(), page, 30, alarms, plcID, lang); if (model.Count == 0) { Session["tempforview"] = "No alarms has been found"; return(RedirectToAction("Index")); } ViewBag.page = page; ViewBag.legend = "Notification from current alarms means only from the unique ones \n Other occurence of the alarm would not viewed"; return(View("Index", model)); }
public void PublishStateChange(AlarmHelper alarm) { AlarmUpdateEventArgs e = new AlarmUpdateEventArgs() { Alarm = alarm }; try { AlarmUpdate(this, e); } catch (Exception ex) { string message = string.Format("AES does not have any subscribed client for publishing alarm status change. {0}", ex.Message); CommonTrace.WriteTrace(CommonTrace.TraceVerbose, message); Console.WriteLine(message); } }
/// <summary> /// Adds an alarm to the storage, and schedules the alarm in the notifications platform /// </summary> /// <param name="alarm"></param> /// <returns></returns> public static async Task AddAlarm(MyAlarm alarm) { try { // Generate Id for it alarm.Id = Guid.NewGuid(); Alarms.Add(alarm); await Task.Run(async delegate { await SaveAlarmsAsync(); AlarmHelper.ScheduleAlarm(alarm); }); } catch { } }