public VideoDumper(ILogger logger, SurveillanceMonitorConfig settings, SurveillanceMonitorConfig.SurveillanceMonitorCamera camera, string videoDumpDirectory, string recordForSeconds) { _logger = logger; _settings = settings; _camera = camera; _videoDumpDirectory = videoDumpDirectory; _recordForSeconds = Convert.ToInt32(recordForSeconds); IsHandlerBusy = false; }
//Adds the handler to the composition public void Add(IAlarmHandler handler, SurveillanceMonitorConfig.SurveillanceMonitorCamera camera) { if (!_handlers.ContainsKey(camera.Id)) { _handlers.Add(camera.Id, new List <IAlarmHandler>()); } _handlers[camera.Id].Add(handler); }
public CameraMonitor( SurveillanceMonitorConfig.SurveillanceMonitorCamera cameraSettings, SurveillanceMonitorConfig settings, ILogger logger, IAlarmHandlers alarmHandlers) { _cameraService = new CameraService(cameraSettings); _cameraSettings = cameraSettings; _settings = settings; _logger = logger; _alarmHandlers = alarmHandlers; }
public void AlarmActivated(SurveillanceMonitorConfig.SurveillanceMonitorCamera camera) { //Dedupe duplicate(ish) alarm notifications if (_lastAlarm.HasValue) { if (DateTime.Now.Subtract(_lastAlarm.Value).Seconds < 10) { return; } } _lastAlarm = DateTime.Now; foreach (var handler in _handlers[camera.Id]) { if (!handler.IsHandlerBusy) { Task.Run(() => handler.AlarmActivated()); } else { Task.Run(() => handler.ExtendAlarm()); } } }
public AlarmLogger(ILogger logger, SurveillanceMonitorConfig.SurveillanceMonitorCamera camera) { _logger = logger; _camera = camera; }