コード例 #1
0
 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;
 }
コード例 #2
0
        //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);
        }
コード例 #3
0
 public CameraMonitor(
     SurveillanceMonitorConfig.SurveillanceMonitorCamera cameraSettings,
     SurveillanceMonitorConfig settings, ILogger logger, IAlarmHandlers alarmHandlers)
 {
     _cameraService  = new CameraService(cameraSettings);
     _cameraSettings = cameraSettings;
     _settings       = settings;
     _logger         = logger;
     _alarmHandlers  = alarmHandlers;
 }
コード例 #4
0
        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());
                }
            }
        }
コード例 #5
0
 public AlarmLogger(ILogger logger, SurveillanceMonitorConfig.SurveillanceMonitorCamera camera)
 {
     _logger = logger;
     _camera = camera;
 }