public Alarm Acknowledge(Alarm alarm) { alarm.Accepted = true; LastAlarm = _repo.UpdateAlarm(alarm); return LastAlarm; }
/// <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); }
/// <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); }
/// <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); }
/// <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 }); }
public System.Threading.Tasks.Task DeleteAlarmAsync(Models.Alarm alarm) { return(base.Channel.DeleteAlarmAsync(alarm)); }
public void DeleteAlarm(Models.Alarm alarm) { base.Channel.DeleteAlarm(alarm); }
public System.Threading.Tasks.Task EndAlarmAsync(Models.Alarm alarm, System.DateTime end) { return(base.Channel.EndAlarmAsync(alarm, end)); }
public void EndAlarm(Models.Alarm alarm, System.DateTime end) { base.Channel.EndAlarm(alarm, end); }
public System.Threading.Tasks.Task UpdateAlarmAsync(Models.Alarm alarm, int h, int m) { return(base.Channel.UpdateAlarmAsync(alarm, h, m)); }
public void UpdateAlarm(Models.Alarm alarm, int h, int m) { base.Channel.UpdateAlarm(alarm, h, m); }
public void AddAlarm(Models.Alarm alarm) { base.Channel.AddAlarm(alarm); }