daar.h

来自「相机传输图像程序源代码 拜耳模式(RAW格式文件)与RGB图像数据互相转换函数」· C头文件 代码 · 共 333 行 · 第 1/2 页

H
333
字号
        /** Returns the minimum, maximum and default values for shutter in the current asynchronous reset mode.
         * Can be called at any time after dral creation and does not affect other dral settings.
         * @param ShutterMinUsec Minimum shutter time in microseconds
         * @param ShutterMaxUsec Maximum shutter time in microseconds
         * @param ShutterDefaultUsec Default shutter time in microseconds
         * @return \b DSY_I_NoError on success.
         */
        virtual LVSTATUS GetShutterLimits(U32BIT *ShutterMinUsec, U32BIT *ShutterMaxUsec, U32BIT *ShutterDefaultUsec) { return DSY_E_NotSupported; }

        /** Returns \b TRUE if the shutter time is controllable by grabber and can be reprogrammed during the acquisition.
         * @return \b TRUE if the camera provides a programmable shutter time.
         */
        virtual BOOL   IsShutterProgrammable(void) { return ShutterMode==ShtMode_SwDefined; }
        /** Returns the shutter type provided by the camera.
         * Some cameras provide the possibility to control the shutter time with
         * signals from grabber, others require the user to set a specific pattern on a
         * set of switches.\n
         * This function returns the way the shutter time is controlled on the actual
         * camera.
         * @return One of the @ref DaSeq32_AR_ShutterMode values.
         */
        virtual U32BIT GetShutterType(void) { return ShutterMode; }
        /** Sets the flash mode to use.
         * This function defines the mode to control a flash light eventually connected
         * to the optocoupler output. The function does not enables the flash, the
         * application should still use the EnableFlash() and DisableFlash() to
         * control the optocoupler output.
         * @param Mode One of the @ref DaSeq32_AR_FlashMode definitions.
         * @return The flash mode actually set.
         */
        virtual U32BIT SetFlashMode(U32BIT Mode);
        /** Gets the flash mode currently set.
         * This function returns the flash mode currently set to control a flash light
         * eventually connected to the optocoupler output.\n
         * One of the DaSeq32_AR_FlashMode definitions.
         * @return The flash mode actually set.
         */
        virtual U32BIT GetFlashMode(void);
        /** Enables the control of the flash light.
         * This function instructs the Sequencer Dral to drive a flash light connected
         * to the grabber optocoupler.\n
         * The duration of the impulse on the optocoupler is normally the same as
         * the shutter time.
         * @return The Flash control state (TRUE if successful)
         * @sa DisableFlash(), IsFlashEnabled()
         */
        virtual BOOL EnableFlash(void);
        /** Disables the control of the flash light.
         * This function instructs the Sequencer Dral to not drive a flash light
         * eventually connected to the grabber optocoupler.
         * @return The Flash control state (FALSE if successful)
         * @sa EnableFlash(), IsFlashEnabled()
         */
        virtual BOOL DisableFlash(void);
        /** Returns the Flash controlling state.
         * This function returns whether Sequencer Dral is controlling a flash light
         * eventually connected to the grabber optocoupler.
         * @return \b TRUE if grabber actively controls the flash otherwise \b FALSE
         * @sa EnableFlash(), DisableFlash()
         */
        virtual BOOL IsFlashEnabled(void);
        /** Sets delay and duration of flash light. 
         * When FshMode_UserDefined mode is activated (using SetFlashMode() function) there is a possibility
         * to allow explicitly set the desired start and duration of the strobe pulse. Both of these values
         * could be set using this function.
         * @param Startusec Sets the delay between start of the acquisition (from receiving the software or
         *                  external hardware trigger) and start of the strobe pulse. This value is in microseconds.
         * @param Durationusec Sets the desired strobe duration. This value is in microseconds
         * @return @ref ErrorDefinitions
         */
        virtual LVSTATUS SetFlashLimit(U32BIT Startusec, U32BIT Durationusec);
        /** Gets current value of delay and duration of flash light.
         * When FshMode_UserDefined mode is activated (using SetFlashMode() function) the flash limit
         * could be set - and for back control - it could be got too. To get actual value of the
         * flash limit the programmer could use this function
         * @param Startusec pointer to U32BIT value representing delay between the start of the acquisition
         *                  and start of the strobe pulse
         * @param Durationusec pointer to U32BIT value representing duration of flash light
         * @return @ref ErrorDefinitions
         */
        virtual LVSTATUS GetFlashLimit(U32BIT *Startusec, U32BIT *Durationusec);
        /** Sets the restart delay.
         * This function allows to set a delay between the flash activation and the
         * start of the shutter time for acquisition. By setting this value, it is possible
         * to give time to an eventually connected flashlight for its activation. The
         * value is in lines.
         * @param Val Number of lines to wait before triggering the camera.
         * @return The value actually set
         * @sa GetCameraRestartDelay()
         */
        virtual U32BIT SetCameraRestartDelay(U32BIT Val);
        /** Gets the restart delay.
         * Returns the delay between the flash activation and the start of the shutter
         * time for acquisition. The value is in lines.
         * @return The value in lines actually set.
         * @sa SetCameraRestartDelay()
         */
        virtual U32BIT GetCameraRestartDelay(void);

        virtual LVSTATUS CameraSetExposure(U32BIT uSec, U32BIT Reserved=0) { return DSY_E_NotSupported; }
        virtual LVSTATUS CameraGetExposure(U32BIT *Current, U32BIT *Min, U32BIT *Max, U32BIT Reserved=0) { return DSY_E_NotSupported; }
    };


/** Creates a Sequencer Dral in asynchronous reset mode object.
 * These are support functions, which provide easier handling of the proper
 * asynchronous reset Sequencer Dral object. The user application can
 * specify either the camera identifier or the camera name as specified in the
 * Camera Editor.\n
 * Function wraps to the DsyCreateSeqAR() function.
 * @param CameraId Identifier of the camera that will be used in
 *                 the Sequencer Dral configuration. This
 *                 function takes care of creating an object
 *                 based on the DsyApp_Seq_AsyncReset
 *                 class, which best supports the camera type.
 * @param DaisyCameraId Identifier of a predefined Daisy camera that is
 *                      assumed to be equivalent to the one that will
 *                      be used in the Sequencer Dral configuration.
 *                      When specified, the CamId parameter is
 *                      ignored and the Sequencer Dral object is
 *                      created in a way that best supports the
 *                      camera specified in this parameter.
 * @param Param Type of asynchronous reset setting to be
 *              used with the specified camera, as defined in
 *              the Camera Editor. The value set in this
 *              parameter is one of the
 *              DaSeq32_AR_ShutterType definitions.
 */
inline
DsyApp_Seq32 *Seq32_AR_CreateObject(U16BIT CameraId, U16BIT DaisyCameraId=0, U32BIT Param=0)
{
return (DsyApp_Seq32 *)DsyCreateSeqAR(CameraId, DaisyCameraId, Param);
}

/** Creates a Sequencer Dral in asynchronous reset mode object.
 * These are support functions, which provide easier handling of the proper
 * asynchronous reset Sequencer Dral object. The user application can
 * specify either the camera identifier or the camera name as specified in the
 * Camera Editor.\n
 * Function wraps to the DsyCreateSeqAR() function.
 * @param CameraName Name of the camera that will be used in
 *                 the Sequencer Dral configuration. This
 *                 function takes care of creating an object
 *                 based on the DsyApp_Seq_AsyncReset
 *                 class, which best supports the camera type.
 * @param DaisyCameraName Name of a predefined Daisy camera that is
 *                      assumed to be equivalent to the one that will
 *                      be used in the Sequencer Dral configuration.
 *                      When specified, the CamId parameter is
 *                      ignored and the Sequencer Dral object is
 *                      created in a way that best supports the
 *                      camera specified in this parameter.
 * @param Param Type of asynchronous reset setting to be
 *              used with the specified camera, as defined in
 *              the Camera Editor. The value set in this
 *              parameter is one of the
 *              DaSeq32_AR_ShutterType definitions.
 */
inline
DsyApp_Seq32 *Seq32_AR_CreateObject(char *CameraName, char *DaisyCameraName=NULL, U32BIT Param=0)
{
return (DsyApp_Seq32 *)DsyCreateSeqAR(DsyGetCameraId(CameraName), DsyGetCameraId(DaisyCameraName), Param);
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?