/// <summary>
 /// 设置CameraControlProperty的值
 /// 有做有效值判断
 /// </summary>
 /// <param name="cameraControlProperty"></param>
 /// <param name="perpertyValue"></param>
 public void SetParameterValue(CameraControlProperty cameraControlProperty, int perpertyValue)
 {
     if (_propertyToRangeParameter.ContainsKey(cameraControlProperty) || this.GetRangeParameterValue(cameraControlProperty) != null)
     {
         CameraControlRangeParameter cameraControlRangeParameter = _propertyToRangeParameter[cameraControlProperty];
         int ensureValue = Math.Min(Math.Max(cameraControlRangeParameter.MinValue, perpertyValue), cameraControlRangeParameter.MaxValue);
         this._cameraControl.Set(cameraControlProperty, ensureValue, CameraControlFlags.Manual);
     }
 }
        public CameraControlRangeParameter GetRangeParameterValue(CameraControlProperty property)
        {
            CameraControlRangeParameter _model = new CameraControlRangeParameter();
            int Min, Max, Step, Default;
            CameraControlFlags _flgs;
            int hr2 = iAMCameraControl.GetRange(property,
                                                out Min, out Max, out Step, out Default, out _flgs);

            DsError.ThrowExceptionForHR(hr2);
            _model.MinValue           = Min;
            _model.MaxValue           = Max;
            _model.SetpValue          = Step;
            _model.DefaultValue       = Default;
            _model.CameraControlFlags = _flgs;
            return(_model);
        }
        /// <summary>
        /// 获取可设置范围值
        /// </summary>
        /// <param name="cameraControlProperty"></param>
        /// <returns></returns>
        public CameraControlRangeParameter GetRangeParameterValue(CameraControlProperty cameraControlProperty)
        {
            CameraControlRangeParameter cameraControlRangeParameter = null;

            try
            {
                int hr = this._cameraControl.GetRange(cameraControlProperty,
                                                      out int min,
                                                      out int max,
                                                      out int step,
                                                      out int defaultValue,
                                                      out CameraControlFlags cameraControlFlags);
                string sss = DsError.GetErrorText(hr);
                if (hr == 0)
                {
                    cameraControlRangeParameter = new CameraControlRangeParameter
                    {
                        CameraControlProperty = cameraControlProperty,
                        MinValue     = min,
                        MaxValue     = max,
                        StepValue    = step,
                        DefaultValue = defaultValue,
                        Flags        = cameraControlFlags
                    };
                    //加入字典
                    if (_propertyToRangeParameter.ContainsKey(cameraControlProperty))
                    {
                        _propertyToRangeParameter[cameraControlProperty] = cameraControlRangeParameter;
                    }
                    else
                    {
                        _propertyToRangeParameter.Add(cameraControlProperty, cameraControlRangeParameter);
                    }
                }
            }
            catch (Exception)
            {
            }
            return(cameraControlRangeParameter);
        }