⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 daar.h

📁 相机传输图像程序源代码 拜耳模式(RAW格式文件)与RGB图像数据互相转换函数库
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef ___dsydaar_H
#define ___dsydaar_H

#include <daseq32.h>

/** @defgroup DaSeq32_AR_ShutterMode DaSeq32_AR_ShutterMode.
 * @ingroup DaisySequencerGroup
 * Shutter modes for asynchronous reset support.
 */
//@{
#define ShtMode_None       0  /**< The camera does not provide asynchronous reset capabilities. */
#define ShtMode_ExtSwitch  1  /**< The shutter time is preprogrammed by the user using switches on the camera. */
#define ShtMode_SwDefined  2  /**< The shutter time is controllable by grabber and can be reprogrammed during the acquisition. */
//@}

/** @defgroup DaSeq32_AR_FlashMode DaSeq32_AR_FlashMode.
 * @ingroup DaisySequencerGroup
 * Flash modes for asynchronous reset support.
 */
//@{
/** The flash is enabled upon event detection, the trigger is delayed by the
 * time set in the camera restart delay.
 */
#define FshMode_CamTrigDelayed  1
/** The flash is enabled at the same time as the trigger, its duration is the
 * shutter time.
 */
#define FshMode_CamTrig         2
/** The trigger is enabled upon event detection, the flash is delayed by the
 * time set in the camera restart delay.
 */
#define FshMode_FlashDelayed    3
/** Special flash mode allowing to explicitly set the start time and duration of the
 * strobe pulse.
 */
#define FshMode_UserDefined     4
//@}


#define _MaxARGrabber      8

/** @defgroup DaSeq32_AR_ShutterType DaSeq32_AR_ShutterType.
 * @ingroup DaisySequencerGroup
 * Camera specific shutter types for asynchronous reset support
 */
enum _eARST {
    ARST_Mode_Default,
    ARST_Mode_0=ARST_Mode_Default, /** Selects the Mode 0 shutter type as defined in the Camera Editor for the used camera type. */
    ARST_Mode_1, /**< Selects the Mode 1 shutter type as defined in the Camera Editor for the used camera type. */
    ARST_Mode_2, /**< Selects the Mode 2 shutter type as defined in the Camera Editor for the used camera type. */
    ARST_Mode_3, /**< Selects the Mode 3 shutter type as defined in the Camera Editor for the used camera type. */
    ARST_Mode_4, /**< Selects the Mode 4 shutter type as defined in the Camera Editor for the used camera type. */
    ARST_Mode_5, /**< Selects the Mode 5 shutter type as defined in the Camera Editor for the used camera type. */
    ARST_Mode_6, /**< Selects the Mode 6 shutter type as defined in the Camera Editor for the used camera type. */
    ARST_Mode_7, /**< Selects the Mode 7 shutter type as defined in the Camera Editor for the used camera type. */
    ARST_Last
    };


// ------------------------------------------------------------------------
// Compatibility with camera manual description
// ------------------------------------------------------------------------
// Leutron Vision LV1000
#define Lv1000ST_LowSpeed          (0x80660000 | ARST_Mode_0)
#define Lv1000ST_Single            (0x80660000 | ARST_Mode_1)
#define Lv1000ST_Double            (0x80660000 | ARST_Mode_2)
// Leutron Vision LV7500/LV8500
#define Lv78500ST_HighSpeed        (0x80670000 | ARST_Mode_0)
#define Lv78500ST_NormalSpeed      (0x80670000 | ARST_Mode_1)
// Sony XC7500/XC8500
#define XC78500ST_NormalSpeed      (0x803C0000 | ARST_Mode_0)
#define XC78500ST_HighSpeed        (0x803C0000 | ARST_Mode_1)
#define XC78500ST_LowSpeed         (0x803C0000 | ARST_Mode_2)
// Sony XC55
#define SonyXC55ST_HighSpeed       (0x80490000 | ARST_Mode_0)
#define SonyXC55ST_LowSpeed        (0x80490000 | ARST_Mode_1)
// Hitachi KPF3
#define HitachiKPF3ST_1T           (0x80A80000 | ARST_Mode_0)
#define HitachiKPF3ST_F            (0x80A80000 | ARST_Mode_1)
// Hitachi KPF110
#define HitachiKPF110ST_1T         (0x80BB0000 | ARST_Mode_0)  // Digital
#define HitachiKPF110ST_F          (0x80BB0000 | ARST_Mode_1)
#define HitachiKPF110ST_2T         (0x80BD0000 | ARST_Mode_0)  // Analog
// Hitachi KPF100/KPF100C
#define HitachiKPF100ST_2T         (0x80530000 | ARST_Mode_0)
#define HitachiKPF100ST_F          (0x80530000 | ARST_Mode_1)
// Teli CS3910
#define TeliCS3910ST_RTSP          (0x80A10000 | ARST_Mode_0)
#define TeliCS3910ST_RTSF          (0x80A10000 | ARST_Mode_1)
// Teli CS8530
#define TeliCS8530ST_HighSpeed     (0x80CC0000 | ARST_Mode_0)
#define TeliCS8530ST_LowSpeed      (0x80CC0000 | ARST_Mode_1)
// Toshiba IK542
#define ToshibaIK542ST_1P          (0x80E00000 | ARST_Mode_0)
#define ToshibaIK542ST_2P          (0x80E00000 | ARST_Mode_1)

// ------------------------------------------------------------------
// Asynchronous reset base module
// ------------------------------------------------------------------

/** Provides asynchronous reset for the Sequencer Dral.
 * This class provides the infrastructure to use the Sequencer Dral with
 * asynchronous reset functionality.\n
 * \n
 * The camera specifications for use in asynchronous reset mode must be
 * defined in the Camera Editor.\n
 * \n
 * The application should rather call utility function Seq32_AR_CreateObject() instead of
 * directly creating DsyApp_SeqAsyncReset object.\n
 * \n
 * Refer to the Image Sequencer Dral Programming Guide for more
 * information about the functionality provided by this class.
 */
LVDSYCLASS DsyApp_Seq_AsyncReset : public DsyApp_Seq32_Enhanced {
    private:
    protected:

        RPSVariable FlashEnable;
        RPSVariable CamRstDelay;

        int    ShutterMode;
        U32BIT FlashMode;
        virtual void InitRPSVars(void);
        virtual U32BIT GetModuleType(void);

    public:
        DsyApp_Seq_AsyncReset();

        /** Initialization procedure for the DRAL.
         * Starts the Sequencer Dral initialization procedure. This function should
         * always be called after DRAL activation, and in any case, before any
         * Start() command.
         * @return @ref ErrorDefinitions
         */
        virtual LVSTATUS Init(void);
        /** Starts a sequence acquisition.
         * Starts the acquisition of the sequence defined in the DaSeq32Cfg
         * configuration structure previously activated.\n
         * If the SeqType field is set to SqType_OneSeq, the acquisition is
         * terminated after the acquisition of the last image, therefore there is no
         * need to call the Stop() command.
         * @return \b DSY_I_NoError if the acquisition is started successfully, otherwise
         *         one of the @ref ErrorDefinitions
         * @sa Stop(), Pause(), Continue(), IsPaused(), IsRunning()
         */
        virtual LVSTATUS Start(void);

        /** Sets the shutter time.
         * This function sets the specified shutter time in the Sequencer Dral.
         * Depending on the camera type, the requested setting might not be
         * possible. For example, in case of a camera whose shutter time is
         * controlled via switches on the camera itself, the value that will be used by
         * the Sequencer Dral will be the highest value lower than the requested
         * setting that can be set on the camera switches.\n
         * For cameras providing fully programmable shutter, the requested value
         * will be used unless outside the camera limits, in which case it will be set to
         * the maximum or minimum value that can be handled by the camera.
         * @param Tusec Shutter time in microseconds
         * @param Pulse Internal use
         * @return The shutter time actually set in microseconds
         */
        virtual U32BIT SetShutterTime(U32BIT Tusec, BOOL Pulse=TRUE) { return 0; }
        /** Gets the shutter time actually set.
         * This function returns the shutter time actually used in the Sequencer Dral.
         * @returns The shutter time actually set in microseconds
         */
        virtual U32BIT GetShutterTime(BOOL Pulse=TRUE) { return 0; }

⌨️ 快捷键说明

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