Search code examples
c#focusedsdkcanon-sdk

disabling AF programmatically?


I have a EOS 1100D and use edsdk to taking picture by my camera from my computer.
in Manual mode I should can chand every properties, and in EOS Utility that is released by Canon, in Manual mode, user can switch between AF and MF. So, there should be a property!

What I found in EDSDK.cs is:

    /*---------------------------------------------
     Focus Info
    ----------------------------------------------*/
    [StructLayout(LayoutKind.Sequential)]
    public struct EdsFocusPoint
    {
        public uint valid;
        public uint selected;
        public uint justFocus;
        public EdsRect rect;
        public uint reserved;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct EdsFocusInfo
    {
        public EdsRect imageRect;
        public uint pointNumber;

        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
        public EdsFocusPoint[] focusPoint;
        public uint executeMode;
    }

How can I set this executeMode?
In fact, I should set in to what for AF and what for MF?


Solution

  • you can do this with EdsSendCommand where inCommand is kEdsCameraCommand_PressShutterButton and inParam is one of the kEdsCameraCommand_ShutterButton_ values.
    With it you can control the shutterbutton (i.e. press it remotely).
    To take a photo without AF, you simply use the value CameraCommand_ShutterButton_Completely_NonAF
    But don't forget to set it back to CameraCommand_ShutterButton_OFF after you have taken the photo! In the EDSDK documentation you can find details on page 42 and 43.