コード例 #1
0
        public Result SetControItemValue(CameraControlItemType type, int value)
        {
            var controlItem = _CameraControlItemList.SingleOrDefault(c => c.ControlItemType == type);

            if (controlItem == null)
            {
                return(new Result(ErrorCode.Error, "No Such Control Item"));
            }

            //TODO:if newValue = oldValue, do nothing?
            var oldValue = controlItem.Value;

            ASI_ERROR_CODE asi_error_code = ASI_ERROR_CODE.ASI_SUCCESS;
            Exception      exception      = null;

            try
            {
                asi_error_code    = ASISetControlValue(CameraID, ((ASI_CONTROL_CAPS)controlItem.NativeItem).ControlType, value);
                controlItem.Value = value; //TODO: We should get value from device
            }
            catch (Exception e)
            {
                exception = e;
            }

            //TODO: Log the description the control item include min and max value, etc.
            return(GetOperationResult(String.Format("SetControlValue, ItemName {0}, ItemType {1}, OldValue {2}, NewValue {3}",
                                                    controlItem.Description, controlItem.ControlItemType, oldValue, value),
                                      asi_error_code, exception));
        }
コード例 #2
0
 public CameraControlItem GetControlItem(CameraControlItemType type)
 {
     return(_CameraControlItemList.SingleOrDefault(c => c.ControlItemType == type));
 }