Отключить AF программно?

У меня EOS 1100D и я использую edsdk для того, чтобы сфотографировать мою камеру с моего компьютера.
в ручном режиме я должен чередовать все свойства, а в EOS Utility, выпущенной Canon, в ручном режиме пользователь может переключаться между AF и MF. Итак, должна быть собственность!

Что я нашел в EDSDK.cs:

    /*---------------------------------------------
     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;
    }

Как я могу установить это executeMode?
На самом деле, я должен установить, что для AF и что для MF?

1 ответ

Решение

Вы можете сделать это с EdsSendCommand, где inCommand - это kEdsCameraCommand_PressShutterButton, а inParam - это одно из значений kEdsCameraCommand_ShutterButton_.
С его помощью вы можете управлять кнопкой затвора (т.е. нажимать ее дистанционно).
Чтобы сделать фотографию без автофокуса, вы просто используете значение CameraCommand_ShutterButton_Completely_NonAF
Но не забудьте установить его обратно в CameraCommand_ShutterButton_OFF после того, как вы сделали фотографию! В документации EDSDK вы можете найти подробности на стр. 42 и 43.

Другие вопросы по тегам