Esempio n. 1
0
        // 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);
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        private void Alarm(String alrm)
        {
            AlarmMessage msg = new AlarmMessage(alrm + "(" + DateTime.Now.ToString() + ")");

            alarmMessage(msg);
            msg = null;
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        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());
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
        public void GetMessageZoneEngagedShouldPass()
        {
            AlarmMessage message = Alarm.GetMessage("*5*11*#10##");

            Assert.AreEqual <WHAT>(WHAT.AlarmActiveZone, message.What);
            Assert.AreEqual <int>(message.Zone, 10);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 private void HandleAlarmMessage(AlarmMessage message)
 {
     if (message == null)
     {
         _logger.Warn("Alarm message is empty.");
         return;
     }
     Duration = message.Alarm;
 }
Esempio n. 11
0
        private void Alarm(Device d)
        {
            string msg = d.GenerateAlarmMessage();

            dataOfDevice.InsertExceptionToDb("EXCEPTIONINFO", d, msg);
            AlarmMessage amsg = new AlarmMessage(msg, d);

            alarmMessage(amsg);
            amsg = null;
        }
Esempio n. 12
0
        public bool IsOriginFlooding(AlarmMessage message)
        {
            OriginTimeControl timeCtrl;

            if (PerOriginAggregator.TryGetValue(message.Origin, out timeCtrl))
            {
                return(!timeCtrl.OkayToSendFrom);
            }
            return(false);
        }
Esempio n. 13
0
 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);
     }
 }
Esempio n. 14
0
 void MainWindowShowAlarm(AlarmMessage alarmMsg)
 {
     //添加 显示报警信息
     this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate() {
         if (mapPage != null)
         {
             mapPage.updateAlarmMessage(alarmMsg.MessageContent);
             Console.WriteLine(alarmMsg.MessageContent);
         }
     });
 }
Esempio n. 15
0
        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;
        }
Esempio n. 16
0
        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));
        }
Esempio n. 17
0
 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);
     });
 }
Esempio n. 18
0
        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);
        }
Esempio n. 19
0
        /// <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);
        }
Esempio n. 20
0
        /// <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);
        }
Esempio n. 21
0
        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);
        }
Esempio n. 22
0
        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());
        }
Esempio n. 23
0
        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(""));
        }
Esempio n. 24
0
        /// <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);
            }
        }
Esempio n. 25
0
        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);
            }
        }
Esempio n. 26
0
        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);
        }
Esempio n. 27
0
        // 显示报警信息
        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 = "查看";
        }
Esempio n. 28
0
        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;
        }
Esempio n. 29
0
        /// <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();
        }
Esempio n. 30
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AlarmGetListExReply"/> class.
 /// </summary>
 public AlarmGetListExReply()
 {
     AlarmMessages = new AlarmMessage[0];
 }
Esempio n. 31
0
        public void ThreadShow(AlarmMessage info)
        {
            Action act = delegate() { ShowAlarmInfo(info); };

            dataGridView1.Invoke(act);
        }