public OnvifCamera(CameraSettings cameraSettings,
                           CancellationToken shutdown) :
            base(shutdown)
        {
            CameraSettings        = cameraSettings;
            defaultHttpClient     = CreateHttpClient();
            downloadHelper        = new DownloadHelper(CameraSettings.Name, defaultHttpClient);
            alarmProcessingHelper = new AlarmProcessingHelper(CameraSettings.Name,
                                                              CameraSettings.AlarmCancelInterval,
                                                              CloneWithDifferentState,
                                                              Enqueue,
                                                              Token);

            Utils.TaskHelper.StartAsyncWithErrorChecking(Invariant($"{cameraSettings.Name} Onvif Pull Events"),
                                                         ReceiveEvents,
                                                         Token);
        }
Exemple #2
0
        public HikvisionIsapiCamera(CameraSettings cameraSettings,
                                    CancellationToken shutdown) :
            base(shutdown)
        {
            CameraSettings   = cameraSettings;
            propertiesGroups = CreatePropertyGroup(cameraSettings.PeriodicFetchedCameraProperties);

            handler               = CreateHttpHandler();
            defaultHttpClient     = CreateHttpClient();
            downloadHelper        = new DownloadHelper(CameraSettings.Name, defaultHttpClient);
            alarmProcessingHelper = new AlarmProcessingHelper(CameraSettings.Name,
                                                              CameraSettings.AlarmCancelInterval,
                                                              CloneAlarmInfo,
                                                              Enqueue,
                                                              Token);

            Utils.TaskHelper.StartAsyncWithErrorChecking(Invariant($"{cameraSettings.Name} Alarm Steam"), StartAlarmStream, Token);
            Utils.TaskHelper.StartAsyncWithErrorChecking(Invariant($"{cameraSettings.Name} Fetch Properties"), FetchProperties, Token);
            Utils.TaskHelper.StartAsyncWithErrorChecking(Invariant($"{cameraSettings.Name} Download Videos"), DownloadVideos, Token);
        }