コード例 #1
0
        public DevAlarmHistory RemoveToHistory(DeviceAlarm alarm)
        {
            DevAlarmHistory newItem = new DevAlarmHistory();

            newItem.Id               = alarm.Id;
            newItem.Abutment_Id      = alarm.Abutment_Id;
            newItem.Title            = alarm.Title;
            newItem.Msg              = alarm.Message;
            newItem.Level            = alarm.Level;
            newItem.Code             = alarm.Code;
            newItem.Src              = alarm.Src;
            newItem.DevInfoId        = alarm.DevId;
            newItem.Device_desc      = alarm.Device_desc;
            newItem.AlarmTime        = alarm.CreateTime;
            newItem.AlarmTimeStamp   = alarm.AlarmTimeStamp;
            newItem.HistoryTime      = DateTime.Now;
            newItem.HistoryTimeStamp = TimeConvert.ToStamp((DateTime)newItem.HistoryTime);
            return(newItem);
        }
コード例 #2
0
ファイル: DevAlarm.cs プロジェクト: 15831944/LocationSystem
        public DevAlarmHistory RemoveToHistory()
        {
            DevAlarmHistory newItem = new DevAlarmHistory();

            newItem.Id               = this.Id;
            newItem.Abutment_Id      = this.Abutment_Id;
            newItem.Title            = this.Title;
            newItem.Msg              = this.Msg;
            newItem.Level            = this.Level;
            newItem.Code             = this.Code;
            newItem.Src              = this.Src;
            newItem.DevInfoId        = this.DevInfoId;
            newItem.Device_desc      = this.Device_desc;
            newItem.AlarmTime        = this.AlarmTime;
            newItem.AlarmTimeStamp   = this.AlarmTimeStamp;
            newItem.HistoryTime      = DateTime.Now;
            newItem.HistoryTimeStamp = TimeConvert.ToStamp((DateTime)newItem.HistoryTime);

            return(newItem);
        }
コード例 #3
0
ファイル: DevAlarm.cs プロジェクト: wwkkww1983/LocationSystem
        public DevAlarmHistory RemoveToHistory()
        {
            DevAlarmHistory history = new DevAlarmHistory();

            //history.Id = this.Id;
            history.Abutment_Id      = this.Abutment_Id;
            history.Title            = this.Title;
            history.Msg              = this.Msg;
            history.Level            = this.Level;
            history.Code             = this.Code;
            history.Src              = this.Src;
            history.DevInfoId        = this.DevInfoId;
            history.Device_desc      = this.Device_desc;
            history.AlarmTime        = this.AlarmTime;
            history.AlarmTimeStamp   = this.AlarmTimeStamp;
            history.HistoryTime      = DateTime.Now;
            history.HistoryTimeStamp = TimeConvert.DateTimeToTimeStamp(history.HistoryTime);

            return(history);
        }
コード例 #4
0
ファイル: RealAlarm.cs プロジェクト: llhswwha/LocationSystem
        /// <summary>Handles a message.</summary>
        public void HandleMessage(IMessage message)
        {
            try
            {
                Init();

                int count1 = bll.DevInfos.GetCount();

                string msg  = Encoding.UTF8.GetString(message.Body);
                events recv = JsonConvert.DeserializeObject <events>(msg);

                if (recv == null)
                {
                    return;
                }

                int nsrc = recv.src;

                DevInfo di = null;

                if (nsrc == 1 || nsrc == 2)
                {
                    if (recv.raw_id == null || recv.raw_id == "")
                    {
                        return;
                    }
                    di = DevList.Find(p => p.Abutment_DevID == recv.raw_id);
                }
                else if (nsrc == 3)
                {
                    if (recv.node == null || recv.node == "")
                    {
                        return;
                    }

                    di = DevList.Find(p => p.Code == recv.node);
                }

                long lTimeStamp = recv.t * 1000;
                bool bFlag      = false;
                int  nLevel     = (int)recv.level;
                Abutment_DevAlarmLevel adLevel = (Abutment_DevAlarmLevel)nLevel;
                if (nLevel == 0)
                {
                    adLevel = Abutment_DevAlarmLevel.未定;
                }
                if (di == null)
                {
                    //DevAlarm da2 = new DevAlarm();
                    //da2.Abutment_Id = recv.id;
                    //da2.Title = recv.title;
                    //da2.Msg = recv.msg;
                    //da2.Level = adLevel;
                    //da2.Code = recv.code;
                    //da2.Src = (Abutment_DevAlarmSrc)recv.src;
                    //da2.DevInfoId = 0;//未找到设备
                    //da2.Device_desc = recv.deviceDesc;
                    //da2.AlarmTime = TimeConvert.ToDateTime(lTimeStamp);
                    //da2.AlarmTimeStamp = lTimeStamp;
                    //bll.DevAlarms.Add(da2);//未找到设备的告警也记录下来,
                    //Log. bv

                    //LogEvent.Info("RealAlarm", string.Format("没找到设备信息,json:{0}", msg));
                    //LogEvent.Info("RealAlarm", string.Format("没找到设备信息:{0}", recv.title));
                    SaveMessageToFile(msg, "noDev");
                    return;//没找到设备信息,则不做任何处理,
                }



                if (recv.title.Contains("防拆") || recv.msg.Contains("防拆"))
                {
                    SaveMessageToFile(msg, "filter");
                    return;//过滤掉有“防拆”字段的告警,没有意义。
                }

                LogEvent.Info("RealAlarm", string.Format("获取设备:{0}", recv.title));
                SaveMessageToFile(msg, "");

                DevAlarm da = DaList.Find(p => p.DevInfoId == di.Id && p.AlarmTimeStamp == lTimeStamp);
                if (da == null)
                {
                    if (recv.state == 0)
                    {
                        da = CreateDevAlarm(recv, di, lTimeStamp, adLevel);

                        bll.DevAlarms.Add(da);
                        DaList.Add(da);
                        bFlag = true;
                    }
                }
                else
                {
                    if (recv.state == 1 || recv.state == 2)
                    {
                        DevAlarmHistory da_history = da.RemoveToHistory();
                        DaList.Remove(da);
                        bll.DevAlarms.DeleteById(da.Id);
                        bll.DevAlarmHistorys.Add(da_history);//告警恢复 放到历史数据中
                        da.Level = Abutment_DevAlarmLevel.无;
                        bFlag    = true;
                    }
                    else if (adLevel != da.Level)
                    {
                        da.Level = adLevel;
                        da.Title = recv.title;
                        da.Msg   = recv.msg;
                        bll.DevAlarms.Edit(da);
                        bFlag = true;
                    }
                }

                if (bFlag)
                {
                    OnDevAlarmReceived(da);
                }
                int count2 = bll.DevInfos.GetCount();
                if (count2 > count1)
                {
                    Log.Info(LogTags.RealAlarm, "添加了数据:" + count1 + "->" + count2);
                }
                return;
            }
            catch (Exception ex)
            {
                Log.Info(LogTags.RealAlarm, "HandleMessage:" + ex);
            }
        }
コード例 #5
0
        /// <summary>Handles a message.</summary>
        public void HandleMessage(IMessage message)
        {
            string msg  = Encoding.UTF8.GetString(message.Body);
            events recv = JsonConvert.DeserializeObject <events>(msg);

            if (recv == null || recv.raw_id == null || recv.raw_id == "" || recv.src != 1)
            {
                return;
            }

            DevInfo di = DevList.Find(p => p.Abutment_DevID == recv.raw_id);

            if (di == null)
            {
                return;
            }

            bool bFlag  = false;
            int  nLevel = (int)recv.level;
            Abutment_DevAlarmLevel adLevel = (Abutment_DevAlarmLevel)nLevel;

            long lTimeStamp = recv.t * 1000;

            if (nLevel == 0)
            {
                adLevel = Abutment_DevAlarmLevel.未定;
            }

            DevAlarm da = DaList.Find(p => p.DevInfoId == di.Id && p.AlarmTimeStamp == lTimeStamp);

            if (da == null)
            {
                if (recv.state == 0)
                {
                    da                = new DevAlarm();
                    da.Abutment_Id    = recv.id;
                    da.Title          = recv.title;
                    da.Msg            = recv.msg;
                    da.Level          = adLevel;
                    da.Code           = recv.code;
                    da.Src            = (Abutment_DevAlarmSrc)recv.src;
                    da.DevInfoId      = di.Id;
                    da.Device_desc    = recv.device_desc;
                    da.AlarmTime      = TimeConvert.ToDateTime(lTimeStamp);
                    da.AlarmTimeStamp = lTimeStamp;
                    bll.DevAlarms.Add(da);
                    DaList.Add(da);
                    bFlag = true;
                }
            }
            else
            {
                if (recv.state == 1 || recv.state == 2)
                {
                    DevAlarmHistory da_history = da.RemoveToHistory();
                    DaList.Remove(da);
                    bll.DevAlarms.DeleteById(da.Id);
                    bll.DevAlarmHistorys.Add(da_history);
                    da.Level = Abutment_DevAlarmLevel.无;
                    bFlag    = true;
                }
                else if (adLevel != da.Level)
                {
                    da.Level = adLevel;
                    da.Title = recv.title;
                    da.Msg   = recv.msg;
                    bll.DevAlarms.Edit(da);
                    bFlag = true;
                }
            }

            if (bFlag)
            {
                OnDevAlarmReceived(da);
            }

            return;
        }