// This function will get triggered/executed when a new message is written // on an Azure Queue called queue. public static void ProcessQueueMessage([ServiceBusTrigger("alarms")] AlarmMessage message, TextWriter log) { if (FloodControl == null) { throw new NullReferenceException("FloodControl not initialised."); } if (ChannelHolder == null) { throw new NullReferenceException("ChannelHolder not initialised."); } if (!FloodControl.IsRunning) { FloodControl.StartFloodControl(); } log.WriteLine(message.Level + message.Message); if (FloodControl.IsOriginFlooding(message)) { FloodControl.AddMessage(message); } else { ChannelHolder.SendAlarm(message); FloodControl.SetLastMessageFromOrigin(message); } }
protected override bool Execute(CodeActivityContext context) { var res = false; var message = CheckStr(AlarmMessage.Get(context), 1024); var shortMessage = CheckStr(ShortAlarmMessage.Get(context), 128); var description = CheckStr(AlarmDescription.Get(context), 1024); var uniqueKey = CheckStr(AlarmUniqueKey.Get(context), 1024); try { if (MonitoringChangesAlarm.isChangesAlarm_BalanceFreeHierarchy(BalanceFreeHierarchy_UN.Get(context), WorkflowActivity_ID.Get(context), UserID.Get(context), AlarmSeverity.Get(context), uniqueKey)) { res = ARM_Service.ALARM_WriteAlarm_BalanceFreeHierarchy(BalanceFreeHierarchy_UN.Get(context), WorkflowActivity_ID.Get(context), UserID.Get(context), AlarmSettingID.Get(context), AlarmSeverity.Get(context), message, shortMessage, description, uniqueKey, AlarmDateTime.Get(context)); } } catch (Exception ex) { Error.Set(context, ex.Message); if (!HideException.Get(context)) { throw ex; } } return(string.IsNullOrEmpty(Error.Get(context)) && res); }
protected override bool Execute(CodeActivityContext context) { bool res = false; string Message = CheckStr(AlarmMessage.Get(context), 1024); string ShortMessage = CheckStr(ShortAlarmMessage.Get(context), 128); string Description = CheckStr(AlarmDescription.Get(context), 1024); string UniqueKey = CheckStr(AlarmUniqueKey.Get(context), 1024); try { if (MonitoringChangesAlarm.isChangesAlarm_61968Systems(Slave61968System_ID.Get(context), WorkflowActivity_ID.Get(context), UserID.Get(context), AlarmSeverity.Get(context), UniqueKey)) { res = ARM_Service.ALARM_WriteAlarm_Master61968SlaveSystems(Slave61968System_ID.Get(context), WorkflowActivity_ID.Get(context), UserID.Get(context), AlarmSettingID.Get(context), AlarmSeverity.Get(context), Message, ShortMessage, Description, UniqueKey, AlarmDateTime.Get(context)); } } catch (Exception ex) { Error.Set(context, ex.Message); if (!HideException.Get(context)) { throw ex; } } return(string.IsNullOrEmpty(Error.Get(context)) && res); }
private void Alarm(String alrm) { AlarmMessage msg = new AlarmMessage(alrm + "(" + DateTime.Now.ToString() + ")"); alarmMessage(msg); msg = null; }
public void On_Command_TimeOut(Node Node, Transaction Txn) { logger.Debug("On_Command_TimeOut"); AlarmInfo CurrentAlarm = new AlarmInfo(); CurrentAlarm.NodeName = Node.Name; CurrentAlarm.AlarmCode = "00200002"; CurrentAlarm.NeedReset = false; try { AlarmMessage Detail = AlmMapping.Get("SYSTEM", CurrentAlarm.AlarmCode); CurrentAlarm.SystemAlarmCode = Detail.CodeID; CurrentAlarm.Desc = Detail.Code_Cause; CurrentAlarm.EngDesc = Detail.Code_Cause_English; CurrentAlarm.Type = Detail.Code_Type; CurrentAlarm.IsStop = Detail.IsStop; if (CurrentAlarm.IsStop) { //RouteCtrl.Stop(); } } catch (Exception e) { CurrentAlarm.Desc = "未定義"; logger.Error(Node.Controller + "-" + Node.AdrNo + "(GetAlarmMessage)" + e.Message + "\n" + e.StackTrace); } CurrentAlarm.TimeStamp = DateTime.Now; AlarmManagement.Add(CurrentAlarm); AlarmUpdate.UpdateAlarmList(AlarmManagement.GetAll()); AlarmUpdate.UpdateAlarmHistory(AlarmManagement.GetHistory()); }
public void On_Connection_Error(string DIOName, string ErrorMsg) { //斷線 發ALARM logger.Debug("On_Error_Occurred"); AlarmInfo CurrentAlarm = new AlarmInfo(); CurrentAlarm.NodeName = DIOName; CurrentAlarm.AlarmCode = "00200001"; CurrentAlarm.NeedReset = false; try { AlarmMessage Detail = AlmMapping.Get("DIO", CurrentAlarm.AlarmCode); CurrentAlarm.SystemAlarmCode = Detail.CodeID; CurrentAlarm.Desc = Detail.Code_Cause; CurrentAlarm.EngDesc = Detail.Code_Cause_English; CurrentAlarm.Type = Detail.Code_Type; CurrentAlarm.IsStop = Detail.IsStop; if (CurrentAlarm.IsStop) { //RouteCtrl.Stop(); } } catch (Exception e) { CurrentAlarm.Desc = "未定義"; logger.Error(DIOName + "(GetAlarmMessage)" + e.Message + "\n" + e.StackTrace); } CurrentAlarm.TimeStamp = DateTime.Now; AlarmManagement.Add(CurrentAlarm); AlarmUpdate.UpdateAlarmList(AlarmManagement.GetAll()); AlarmUpdate.UpdateAlarmHistory(AlarmManagement.GetHistory()); }
private void switchEmergentStatus(Boolean e) { this.isEmergencyStatus = e; Console.WriteLine(isEmergencyStatus + ""); string str; if (isEmergencyStatus) { str = "应急状态已经打开"; } else { str = "应急状态已经关闭"; } if (resetEmergentStatus(isEmergencyStatus)) { MessageBox.Show(this, str, "通知", MessageBoxButton.OK, MessageBoxImage.Information); } else { str = "状态切换失败"; MessageBox.Show(this, str, "通知", MessageBoxButton.OK, MessageBoxImage.Information); } AlarmMessage msg = new AlarmMessage(str + "(" + DateTime.Now.ToString() + ")"); MainWindowShowAlarm(msg); msg = null; }
public void GetMessageZoneEngagedShouldPass() { AlarmMessage message = Alarm.GetMessage("*5*11*#10##"); Assert.AreEqual <WHAT>(WHAT.AlarmActiveZone, message.What); Assert.AreEqual <int>(message.Zone, 10); }
public void AddMessage(AlarmMessage message) { var timeControl = PerOriginAggregator.GetOrAdd(message.Origin, new OriginTimeControl()); var msgID = (message.Level + message.Message).GenerateMessageIdentifierFromString(); var tmsg = new TimeStampedMessage <AlarmMessage>(DateTime.UtcNow, message); timeControl.Aggregator.AddMessage(tmsg, msgID); }
private void HandleAlarmMessage(AlarmMessage message) { if (message == null) { _logger.Warn("Alarm message is empty."); return; } Duration = message.Alarm; }
private void Alarm(Device d) { string msg = d.GenerateAlarmMessage(); dataOfDevice.InsertExceptionToDb("EXCEPTIONINFO", d, msg); AlarmMessage amsg = new AlarmMessage(msg, d); alarmMessage(amsg); amsg = null; }
public bool IsOriginFlooding(AlarmMessage message) { OriginTimeControl timeCtrl; if (PerOriginAggregator.TryGetValue(message.Origin, out timeCtrl)) { return(!timeCtrl.OkayToSendFrom); } return(false); }
void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e) { if (e.Topic.Equals("incendio")) { String message = new String(Encoding.UTF8.GetChars(e.Message)); AlarmMessage m = new AlarmMessage(message); Buzzer.setState(m.Alarm); StatusLed.led.SetLed(5, m.Alarm); StatusLed.led.SetLed(6, m.Alarm); } }
void MainWindowShowAlarm(AlarmMessage alarmMsg) { //添加 显示报警信息 this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate() { if (mapPage != null) { mapPage.updateAlarmMessage(alarmMsg.MessageContent); Console.WriteLine(alarmMsg.MessageContent); } }); }
public void updateAlarmMessage(String alarmStr) { AlarmMessage msg = new AlarmMessage(alarmStr); alarmMessages.add(msg); msg = null; //存储报警信息 //alarmMessages.Capacity = 10; //count_item = count_item + 1; //double x = SystemParameters.WorkArea.Width; //listBox1.Width = x; }
public IActionResult Post([FromBody] AlarmMessage alarm) { if (alarm == null) { return(new HttpStatusCodeResult(400)); } alarm.Id = Guid.NewGuid(); alarm.Created = DateTime.UtcNow; _searchRepository.AddDocument(alarm); return(new HttpStatusCodeResult(200)); }
public async Task ProcessEventAsync(string context, LimitAlarmDesc limitAlarm, DataQualityTimestamp dtq) { await Task.Run(() => { var alarm = new AlarmMessage(context, limitAlarm, dtq); var body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(alarm)); channel.BasicPublish(exchange: "", routingKey: "Alarm", basicProperties: null, body: body); }); }
public void SendAlarm(AlarmMessage message) { var mail = new MailMessage(); mail.To.Add(_sendToAdress); mail.From = new MailAddress(_sendFromAdress); mail.IsBodyHtml = true; mail.Subject = $"{message.Level} level alarm raised by {message.Origin}"; mail.Body = $@"EventID: {message.StorageID} <br>Message: {message.Message} <br>ExceptionMessage: {message.ExceptionMessage}"; _smtpClient.Send(mail); }
/// <summary> /// Cascade set AlarmMessageSubSearchModel Result /// </summary> /// <param name="alarmMessage"></param> /// <returns></returns> public static AlarmMessageSubSearchModel SetAlarmMessageSubSearchModel(AlarmMessage alarmMessage) { if (alarmMessage == null) { return(null); } var alarmMessageSearchModel = new AlarmMessageSubSearchModel { AlarmMessageId = alarmMessage.AlarmMessageId, ErrorCode = alarmMessage.ErrorCode, Message = alarmMessage.Message }; return(alarmMessageSearchModel); }
/// <summary> /// Cascade set AlarmMessageSearchModel Result /// </summary> /// <param name="alarmMessage"></param> /// <returns></returns> public static AlarmMessageSearchModel SetAlarmMessageSearchModelCascade(AlarmMessage alarmMessage) { if (alarmMessage == null) { return(null); } var alarmMessageSearchModel = new AlarmMessageSearchModel { AlarmMessageId = alarmMessage.AlarmMessageId, ErrorCode = alarmMessage.ErrorCode, Message = alarmMessage.Message, Alarms = AlarmOperator.SetAlarmSearchModelCascade(alarmMessage.Alarms) }; return(alarmMessageSearchModel); }
public static AlarmMessage GetMessage(string data) { AlarmMessage message = null; string[] content; try { content = data.Remove(data.Length - 2).Split(new char[] { '*' }, StringSplitOptions.RemoveEmptyEntries); if (content[0] == "5") { // content[0] == 5 ==> Alarm // content[0] == 9 ==> Auxiliaries message = new AlarmMessage(); message.What = GetWhat(content[1]); if (content.Length == 3) { switch (message.What) { case WHAT.AlarmSilentAlarm: case WHAT.AlarmResetTechnicalAlarm: message.Aux = int.Parse(content[2].Substring(1)); break; case WHAT.AlarmNoReception: message.Device = int.Parse(content[2].Substring(1)); break; default: message.Zone = int.Parse(content[2].Substring(1)); break; } //message.Where = Where.GetWhere(content[2].Substring(1)); } } } catch (Exception) { return(null); } return(message); }
public void On_Command_Error(Node Node, Transaction Txn, CommandReturnMessage Msg) { switch (Txn.FormName) { case "FormManual": switch (Node.Type) { case "LOADPORT": //ManualPortStatusUpdate.LockUI(false); break; } break; } logger.Debug("On_Command_Error"); AlarmInfo CurrentAlarm = new AlarmInfo(); CurrentAlarm.NodeName = Node.Name; CurrentAlarm.AlarmCode = Msg.Value; CurrentAlarm.NeedReset = true; try { AlarmMessage Detail = AlmMapping.Get(Node.Name, CurrentAlarm.AlarmCode); CurrentAlarm.SystemAlarmCode = Detail.CodeID; CurrentAlarm.Desc = Detail.Code_Cause; CurrentAlarm.EngDesc = Detail.Code_Cause_English; CurrentAlarm.Type = Detail.Code_Type; CurrentAlarm.IsStop = Detail.IsStop; if (CurrentAlarm.IsStop) { // RouteCtrl.Stop(); } } catch (Exception e) { CurrentAlarm.Desc = "未定義"; logger.Error(Node.Controller + "-" + Node.AdrNo + "(GetAlarmMessage)" + e.Message + "\n" + e.StackTrace); } CurrentAlarm.TimeStamp = DateTime.Now; AlarmManagement.Add(CurrentAlarm); AlarmUpdate.UpdateAlarmList(AlarmManagement.GetAll()); AlarmUpdate.UpdateAlarmHistory(AlarmManagement.GetHistory()); }
public ActionResult EnableDevice(string deviceId, Boolean on) { System.Diagnostics.Debug.WriteLine("EnableDevice deviceId={0}, on={1}", deviceId, on); AlarmMessage alarmMessage = new AlarmMessage(); alarmMessage.ioTHubDeviceID = deviceId; alarmMessage.alarmType = "EnableDevice"; alarmMessage.reading = on ? "1" : "0"; alarmMessage.threshold = ""; alarmMessage.createdAt = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var messageString = JsonConvert.SerializeObject(alarmMessage); SendAlarmMessageToServiceBusQueue(messageString); return(this.Content("")); }
/// <summary> /// 報警模組 /// </summary> /// <param name="strFunctionName">造成錯誤的方法</param> /// <param name="strErr">錯誤原因</param> /// <param name="btnRetryOnly">是否沒有忽略選項</param> /// <param name="CheckAlarm">是否檢查錯誤</param> private void DeviceAlarmMessage(string strFunctionName, string strErr, bool btnRetryOnly = true, bool CheckAlarm = true) { if (AlarmMessage.Alarm_SW == true) { return; } string strAlarmMag = "ErrorType:clsAlignment\r\n" + "ErrorFunction:" + strFunctionName + "\r\n" + "ErrorMessage:" + strErr; if (CheckAlarm == true) { AlarmMessage.ShowAlarm(strAlarmMag, 0, btnRetryOnly); } else { AlarmMessage.AlarmHistoryRecord(strAlarmMag); } }
public void On_TaskJob_Aborted(TaskJobManagment.CurrentProceedTask Task, string NodeName, string ReportType, string Message) { if (Task.Id.Equals("FormManual")) { ManualPortStatusUpdate.LockUI(false); } AlarmInfo CurrentAlarm = new AlarmInfo(); CurrentAlarm.NodeName = "SYSTEM"; CurrentAlarm.AlarmCode = Message; CurrentAlarm.NeedReset = false; try { AlarmMessage Detail = AlmMapping.Get("SYSTEM", CurrentAlarm.AlarmCode); if (!Detail.Code_Group.Equals("UNDEFINITION")) { CurrentAlarm.SystemAlarmCode = Detail.CodeID; CurrentAlarm.Desc = Detail.Code_Cause; CurrentAlarm.EngDesc = Detail.Code_Cause_English; CurrentAlarm.Type = Detail.Code_Type; CurrentAlarm.IsStop = Detail.IsStop; if (CurrentAlarm.IsStop) { //RouteCtrl.Stop(); } CurrentAlarm.TimeStamp = DateTime.Now; AlarmManagement.Add(CurrentAlarm); AlarmUpdate.UpdateAlarmList(AlarmManagement.GetAll()); AlarmUpdate.UpdateAlarmHistory(AlarmManagement.GetHistory()); } } catch (Exception e) { CurrentAlarm.Desc = "未定義"; logger.Error("(GetAlarmMessage)" + e.Message + "\n" + e.StackTrace); } }
public int Add(AlarmMessageAddModel mAlarmMessage) { //ErrorCode must be unique var checkData = _context.AlarmMessages .Where(c => c.ErrorCode == mAlarmMessage.ErrorCode).ToList(); if (checkData.Count > 0) { throw new ExpectException("The data which ErrorCode equal to " + mAlarmMessage.ErrorCode + " already exist in system"); } var model = new AlarmMessage { ErrorCode = mAlarmMessage.ErrorCode, Message = mAlarmMessage.Message }; _context.AlarmMessages.Add(model); _context.SaveChanges(); return(model.AlarmMessageId); }
// 显示报警信息 public void ShowAlarmInfo(AlarmMessage info) { int rowIndex = dataGridView1.Rows.Add(); dataGridView1.Rows[rowIndex].Tag = info.DeviceID; dataGridView1.Rows[rowIndex].Cells[0].Value = info.AlarmAreaName; switch (info.AlarmType) { case 0: dataGridView1.Rows[rowIndex].Cells[1].Value = "临时报警"; break; case 1: dataGridView1.Rows[rowIndex].Cells[1].Value = "报警器报警"; break; } dataGridView1.Rows[rowIndex].Cells[2].Value = info.DT_Alarm.ToString("yyyy-MM-dd HH:mm:ss"); switch (info.AlarmStage) { case 1: dataGridView1.Rows[rowIndex].Cells[3].Value = "触发"; break; case 2: dataGridView1.Rows[rowIndex].Cells[3].Value = "处置"; break; case 3: dataGridView1.Rows[rowIndex].Cells[3].Value = "未处置"; break; case 4: dataGridView1.Rows[rowIndex].Cells[3].Value = "结束"; break; } dataGridView1.Rows[rowIndex].Cells[4].Value = "坐标:X:" + info.AlarmPosition_X + ",Y:" + info.AlarmPosition_Y; dataGridView1.Rows[rowIndex].Cells[5].Value = "查看"; }
private static void RestartLoop(object state) { var inp = state as RestartInput; if (Engine.State == State.ShuttingDown) { return; } if (inp.LoopIsRunning) { return; } inp.LoopIsRunning = true; if (Engine.State == State.Stopped) { Engine.StartEngine(inp.RuleStorage, inp.AlarmMessageManager); if (inp.MaxEngineRestarts <= inp.EngineStartCounter++) { var message = $"AnalyzerEngine main task has been restarted {inp.EngineStartCounter - 1} times. Engine is down and can not recover! Resetting start counter."; Logger.AddRow(message); inp.EngineProgram.MesseageOutputQueue.Enqueue(message); var alarm = new AlarmMessage(AlarmLevel.High, AppDomain.CurrentDomain.FriendlyName, message); inp.AlarmMessageManager.RaiseAlarm(alarm); inp.EngineStartCounter = 0; } var timer = new Stopwatch(); timer.Start(); while (!Engine.EngineIsRunning && timer.ElapsedMilliseconds < 20000) { inp.EngineProgram.MesseageOutputQueue.Enqueue("Awaiting engine start. Waited " + timer.ElapsedMilliseconds + " ms"); Task.Delay(1000).Wait(); } timer.Reset(); } inp.LoopIsRunning = false; }
/// <summary> /// 记录报警信息txt /// </summary> /// <param name="info"></param> public static void WriteTxt(AlarmMessage info) { //FileStream fs = new FileStream(@".\Alarm.txt", FileMode.Create); //显示报警信息 Program.form1.ThreadShow(info); //string str = ""; //switch (info.AlarmStage) //{ // case 1: // str = info.AlarmAreaName + ",报警触发了!"; // break; // case 4: // str = info.AlarmAreaName + ",报警结束了!"; // break; //} ////获得字节数组 //byte[] data = Encoding.Default.GetBytes(str); ////开始写入 //fs.Write(data, 0, data.Length); ////清空缓冲区、关闭流 //fs.Flush(); //fs.Close(); }
/// <summary> /// Initializes a new instance of the <see cref="AlarmGetListExReply"/> class. /// </summary> public AlarmGetListExReply() { AlarmMessages = new AlarmMessage[0]; }
public void ThreadShow(AlarmMessage info) { Action act = delegate() { ShowAlarmInfo(info); }; dataGridView1.Invoke(act); }