Example #1
0
        public CreateCameraResponse CreateCamera(CreateCameraRequest request)
        {
            try
            {
                if (request == null)
                {
                    throw new ArgumentNullException("request");
                }

                CreateCameraResponse response = new CreateCameraResponse();

                response.Camera = CameraTranslator.Translate(
                    Locator.Get <ICameraManager>().CreateCamera(
                        CameraTranslator.Translate(request.Camera.Profile),
                        CameraTranslator.Translate(request.Camera.Config)));

                return(response);
            }
            catch (Exception ex)
            {
                throw new FaultException <DeviceConnectorServiceFault>(new DeviceConnectorServiceFault(ex.Message, ex), ex.Message);
            }
        }
Example #2
0
        public void CreateCamera(Camera camera, EventHandler <AsyncWorkerCallbackEventArgs <Camera> > callback)
        {
            if (camera == null)
            {
                throw new ArgumentNullException("camera");
            }

            try
            {
                AsyncWorkerHandle <Camera> handle = AsyncWorkerHelper.DoWork <Camera>(
                    delegate(object sender, DoWorkEventArgs e)
                {
                    CreateCameraRequest request = new CreateCameraRequest();
                    request.Camera = new CameraData();

                    request.Camera.Profile             = new CameraProfileData();
                    request.Camera.Profile.Id          = camera.Id;
                    request.Camera.Profile.Name        = camera.Name;
                    request.Camera.Profile.Description = camera.Description;
                    request.Camera.Profile.Tags        = camera.Tags;

                    request.Camera.Profile.FilterType = FilterTypeData.None;
                    switch (camera.VideoSourceDescription.SourceType)
                    {
                    case VideoSourceType.Mock:
                        break;

                    case VideoSourceType.LocalAVIFile:
                        request.Camera.Profile.FilterType = FilterTypeData.LocalAVIFile;
                        request.Camera.Profile.FilterId   = camera.VideoSourceDescription.OriginalSourceString;
                        break;

                    case VideoSourceType.LocalCamera:
                        request.Camera.Profile.FilterType = FilterTypeData.LocalCamera;
                        request.Camera.Profile.FilterId   = camera.VideoSourceDescription.OriginalSourceString;
                        break;

                    case VideoSourceType.LocalDesktop:
                        request.Camera.Profile.FilterType = FilterTypeData.LocalDesktop;
                        request.Camera.Profile.FilterId   = camera.VideoSourceDescription.OriginalSourceString;
                        break;

                    case VideoSourceType.NetworkJPEG:
                        request.Camera.Profile.FilterType = FilterTypeData.NetworkJPEG;
                        request.Camera.Profile.FilterId   = camera.VideoSourceDescription.OriginalSourceString;
                        break;

                    case VideoSourceType.NetworkMJPEG:
                        request.Camera.Profile.FilterType = FilterTypeData.NetworkMJPEG;
                        request.Camera.Profile.FilterId   = camera.VideoSourceDescription.OriginalSourceString;
                        break;

                    default:
                        break;
                    }

                    request.Camera.Config = new CameraConfigData()
                    {
                        FriendlyName         = camera.VideoSourceDescription.FriendlyName,
                        OriginalSourceString = camera.VideoSourceDescription.OriginalSourceString,
                        SourceString         = camera.VideoSourceDescription.SourceString,
                        FrameInterval        = camera.VideoSourceDescription.FrameInterval,
                        FrameRate            = camera.VideoSourceDescription.FrameRate,
                        UserName             = camera.VideoSourceDescription.UserName,
                        Password             = camera.VideoSourceDescription.Password,
                        UserAgent            = camera.VideoSourceDescription.UserAgent,
                    };

                    if (camera.VideoSourceDescription.Resolution != null)
                    {
                        request.Camera.Config.Resolution = new ResolutionData()
                        {
                            Width  = camera.VideoSourceDescription.Resolution.Width,
                            Height = camera.VideoSourceDescription.Resolution.Height
                        };
                    }

                    // 默认请求超时时间为1分钟
                    CreateCameraResponse response =
                        ServiceProvider.GetService <IDeviceConnectorService, IDeviceConnectorCallbackService>(
                            ViewModelLocator.ServiceClient,
                            ViewModelLocator.SelectedService.HostName,
                            ViewModelLocator.SelectedService.Uri.ToString()
                            ).CreateCamera(request);
                    if (response.Camera != null)
                    {
                        e.Result = camera;
                    }
                },
                    null, callback);
            }
            catch (Exception ex)
            {
                ExceptionHandler.Handle(ex);
            }
        }