Esempio n. 1
0
        public Alarm Acknowledge(Alarm alarm)
        {
            alarm.Accepted = true;
            LastAlarm = _repo.UpdateAlarm(alarm);

            return LastAlarm;
        }
Esempio n. 2
0
        /// <summary>
        /// 告警事件处理函数
        /// </summary>
        /// <param name="arguments">参数</param>
        private void OnAlarm(params object[] arguments)
        {
            var type   = (Alarm.AlarmType)arguments[2];
            var rect   = (RectangleF?)arguments[3];
            var detail = arguments[4] as string;

            Models.Alarm alarm;
            switch (type)
            {
            case Alarm.AlarmType.HumanHighTemperature: {
                alarm = new Models.Alarm()
                {
                    type            = type,
                    temperatureType = Selections.TemperatureType.max,
                    level           = Alarm.Level.General,
                    cellName        = cell.cell.name,
                    deviceName      = device.Name,
                    selectionName   = null,
                    startTime       = DateTime.Now,
                    area            = rect,
                    detail          = detail
                };
                break;
            }

            case Alarm.AlarmType.Manual: {
                alarm = new Models.Alarm()
                {
                    type            = type,
                    temperatureType = Selections.TemperatureType.max,
                    level           = Alarm.Level.General,
                    cellName        = cell.cell.name,
                    deviceName      = device.Name,
                    selectionName   = null,
                    startTime       = DateTime.Now,
                    area            = rect,
                    detail          = detail
                };
                break;
            }

            default:
                return;
            }

            alarm.temperature = Arrays.Clone(this.temperature, alarm.temperature, sizeof(float));
            alarm.irImage     = Arrays.Clone(this.irImage, alarm.irImage, sizeof(byte));
            alarm.image       = Arrays.Clone(this.image, alarm.image, sizeof(byte));

            alarms.Enqueue(alarm);
        }
Esempio n. 3
0
        /// <summary>
        /// 添加选区告警
        /// </summary>
        /// <param name="selection">选区</param>
        /// <param name="alarm">告警</param>
        private void AddAlarm(Models.Selections.Selection selection, Models.Alarm alarm)
        {
            var data = new Repository.Entities.Alarm()
            {
                cellName      = cell.cell.name,
                selectionName = selection.Entity.name,
                startTime     = DateTime.Now,
                // AlarmType = alarm.type,
                // TemperatureType = alarm.temperatureType,
                // Alarmlevel = alarm.level,
                detail         = "",
                imageUrl       = "",
                temperatureUrl = "",
                videoUrl       = "",
                // IrCameraParameters = irCameraParameters
            };

            Repository.Repository.AddAlarm(data);
        }
Esempio n. 4
0
        /// <summary>
        /// 添加选区告警
        /// </summary>
        /// <param name="selection">选区</param>
        /// <param name="alarm">告警</param>
        private void AddAlarm(Models.Selections.Selection selection, Models.Alarm alarm)
        {
            var data = new Repository.Entities.Alarm()
            {
                cellName           = service.cell.name,
                selectionName      = selection.Entity.name,
                startTime          = DateTime.Now,
                alarmType          = alarm.type,
                temperatureType    = alarm.temperatureType,
                level              = alarm.level,
                detail             = "",
                imageUrl           = "",
                temperatureUrl     = "",
                videoUrl           = "",
                irCameraParameters = irCameraParameters
            };

            using var db = new Repository.Repository.RepositoyContext();
            db.AddAlarm(data);
        }
Esempio n. 5
0
        /// <summary>
        /// 添加选区告警
        /// </summary>
        /// <param name="selection">选区</param>
        /// <param name="alarm">告警</param>
        private void AddAlarm(Models.Selections.Selection selection, Models.Alarm alarm)
        {
            // TODO: 触发告警录像

            var data = new Alarm()
            {
                cellName           = cell.cell.name,
                selectionName      = selection?.Entity.name ?? null,
                startTime          = DateTime.Now,
                type               = alarm.type,
                temperatureType    = alarm.temperatureType,
                level              = alarm.level,
                area               = JsonUtils.ObjectToJson(alarm.area),
                point              = JsonUtils.ObjectToJson(alarm.point),
                detail             = alarm.detail,
                solved             = false,
                temperatureUrl     = Repository.Repository.SaveAlarmTemperature(alarm.temperature),
                irImageUrl         = Repository.Repository.SaveYV12Image(alarm.irImage),
                imageUrl           = Repository.Repository.SaveYV12Image(alarm.image),
                videoUrl           = null,
                irCameraParameters = JsonUtils.ObjectToJson(irCameraParameters)
            };

            if (!Repository.Repository.AddAlarm(data))
            {
                alarms.Enqueue(alarm);
            }

            WebMethod.AddAlarm(new WebMethod.Alarm()
            {
                serialNumber = configuration.information.clientId,
                datetime     = alarm.startTime.ToString(),
                image        = ImageUtils.ImageFileToBase64(data.imageUrl),
                irImage      = ImageUtils.ImageFileToBase64(data.irImageUrl),
                temperature  = ImageUtils.ImageFileToBase64(data.temperatureUrl),
                data         = alarm.detail
            });
        }
Esempio n. 6
0
 public System.Threading.Tasks.Task DeleteAlarmAsync(Models.Alarm alarm)
 {
     return(base.Channel.DeleteAlarmAsync(alarm));
 }
Esempio n. 7
0
 public void DeleteAlarm(Models.Alarm alarm)
 {
     base.Channel.DeleteAlarm(alarm);
 }
Esempio n. 8
0
 public System.Threading.Tasks.Task EndAlarmAsync(Models.Alarm alarm, System.DateTime end)
 {
     return(base.Channel.EndAlarmAsync(alarm, end));
 }
Esempio n. 9
0
 public void EndAlarm(Models.Alarm alarm, System.DateTime end)
 {
     base.Channel.EndAlarm(alarm, end);
 }
Esempio n. 10
0
 public System.Threading.Tasks.Task UpdateAlarmAsync(Models.Alarm alarm, int h, int m)
 {
     return(base.Channel.UpdateAlarmAsync(alarm, h, m));
 }
Esempio n. 11
0
 public void UpdateAlarm(Models.Alarm alarm, int h, int m)
 {
     base.Channel.UpdateAlarm(alarm, h, m);
 }
Esempio n. 12
0
 public void AddAlarm(Models.Alarm alarm)
 {
     base.Channel.AddAlarm(alarm);
 }