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

📄 daseq32.ah

📁 相机传输图像程序源代码 拜耳模式(RAW格式文件)与RGB图像数据互相转换函数库
💻 AH
📖 第 1 页 / 共 2 页
字号:
#define FlowCheck_Delay_610       4
/** Delay of 3800 microseconds between successive checks. */
#define FlowCheck_Delay_3800      5
/** Delay of 7500 microseconds between successive checks. */
#define FlowCheck_Delay_7500      6
#define FlowCheck_Delay_Last      FlowCheck_Delay_7500
//@}


#define RestartMode_None              0
#define RestartMode_RestartAndStay    1
#define RestartMode_Restart           2
#define RestartMode_Last			  RestartMode_Restart

// Internal definitions
#define _Ppc_Case_0        0x0000
#define _Ppc_Case_1        0x2000
#define _Ppc_Case_2        0x4000
#define _Ppc_Case_3        0x6000
#define _Ppc_Case_4        0x8000
#define _Ppc_Case_5        0xA000
#define _Ppc_Case_6        0xC000
#define _Ppc_Case_7        0xE000
#define _Ppc_False         _Ppc_Case_0
#define _Ppc_True          _Ppc_Case_1
#define _Ppc_VarTrue       0x20002000
#define _Ppc_VarFalse      0x20000000

#define _Ppm_Case_0        0x0
#define _Ppm_Case_1        0x1
#define _Ppm_Case_2        0x2
#define _Ppm_Case_3        0x3
#define _Ppm_Case_4        0x4
#define _Ppm_Case_5        0x5
#define _Ppm_Case_6        0x6
#define _Ppm_Case_7        0x7
#define _Ppm_False         _Ppm_Case_0
#define _Ppm_True          _Ppm_Case_1
#define _Ppm_VarFalse      0
#define _Ppm_VarTrue       1

#define _MaxRpsFileName     128
#define _MaxCameraCfg       32

// Sequencer Dral I/O Settings

// #define IOSigType_Differential 0
// #define IOSigType_TTL          1

/** @defgroup IOPolarity IOPolarity.
 * @ingroup DaisySequencerGroup
 * Signal activation polarity.
 */
//@{
/** The signal is considered activated when transacting from the high to the low level. */
#define IOPol_ActiveLow        EventEdge_Falling
/** The signal is considered activated when transacting from the low to the high level. */
#define IOPol_ActiveHigh       EventEdge_Raising
//@}

/* used in LvInOutCfg::LvInItemCfg like size of array */
#define _Max_InItemCfg         8
/* used in LvInOutCfg::LvOutItemCfg like size of array */
#define _Max_OutItemCfg        8

/** @defgroup EncoderResolution Encoder resolutions.
 * Changes the resolution of the pulses being decoded from the shaft encoder input.
 * @ingroup DaisySequencerEnumsGroup 
 */
//@{
/** Output resolution is the same as the encoders one.
 * The output resolution is the same as the encoder resolution.
 * New pulses are generated on the starting edge of the forward encoder signal. 
 */
#define EncoderResolution_1x   0
/** Output resolution is twice the encoders one.
 * The output resolution is twice the encoder resolution. New pulses are generated
 * on the starting and trailing edges of the forward encoder signal.
 */
#define EncoderResolution_2x   1
/** Output resolution is four times the encoder resolution.
 * The output resolution is four times the encoder resolution. New
 * pulses are generated on the starting and trailing edges of both the forward
 * and the backward encoder signal.
 */
#define EncoderResolution_4x   2
//@}



/** IO Output activation events.
 * @ingroup DaisySequencerEnumsGroup 
 */
enum _SeqIO_ActOn {                           // Count + duration unit        Delay reference
                                              // -----------------------------------------------
    /** The signal is activated on the next start of frame. Delay: milliseconds \n Duration: milliseconds */
    ActOn_StartFrame,                         //      usec                    Start of frame
    /** The signal is activated on the next end of frame. Delay: milliseconds \n Duration: milliseconds */
    ActOn_EndFrame,                           //      usec                    End of frame
    /** The signal is activated on the line from the start of frame defined in the Delay field. Delay: lines \n Duration: lines */
    ActOn_LineInFrame,                        //      lines                   Start of frame
    /** The signal is activated on the next start of line. Delay: milliseconds \n Duration: milliseconds */
    ActOn_StartLine,                          //      usec                    Start of line
    /** The signal is activated on the next start of shutter. Delay: milliseconds \n Duration: milliseconds. */
    ActOn_StartShutter,                       //      usec                    Start of shutter
    /** The signal is activated on the next end of shutter. Delay: milliseconds \n Duration: milliseconds. */
    ActOn_EndShutter,                         //      usec                    End of shutter
    /** The signal is activated on the line trigger. Delay: milliseconds \n Duration: milliseconds. */
    ActOn_LineTrigger,                        //      usec                    Line trigger
    /** The signal is activated on the acquisition trigger. Delay: milliseconds \n Duration: milliseconds. */
    ActOn_AcquisitionTrigger,                 //      usec                    Acquisition trigger
    /** The signal is activated on the next start of line and deactivated on the next end of frame.. Delay: n/a \n Duration: n/a */
    ActOn_FrameValid,                         //       --                     Frame valid
    /** The signal is activated on detection of another external signal. When used for controlling CC lines, for better performance and reliability set also SqFlg_InSignalCCDirect in the Flags field. */
    ActOn_InSignal,                           //      usec or --              Input signal
    /** Shaft encoder pulse after on-board processing. */
    ActOn_EncoderPulse,                       //      usec                    Shaft encoder pulse after on-board processing
    ActOn_Last
    };

/** IOInType.
 * @ingroup DaisySequencerEnumsGroup 
 * Type of input.
 */
enum _SeqIO_InType {
    /** The Dral uses directly the defined signal. */
    InType_Direct,
    /** The Dral will instruct the hardware to preprocess the input signals through
     * the shaft encoder module, the resulting signal is used as external event as
     * defined by its function.
     */
    InType_Encoder,
    InType_Last
    };

/** IOFunction.
 * @ingroup DaisySequencerEnumsGroup
 * Input/Output functionality.
 */
enum _SeqIO_Function {
    /** Do-nothing function. The entry is not used by Dral. */
    UseAs_Nothing,
    UseAs_FirstInput=0x100,
    /** Input function. The Dral will use the current input definition to trigger a frame acquisition. */
    UseAs_FrameTrigger=UseAs_FirstInput,            // Triggers the frame acquisition
    /** Input function. The Dral will use the current input definition to abort a line
     * scan camera logical frame acquisition.
     */
    UseAs_FrameStopTrigger,                         // Stops the frame acquisition
    /** Input function. The Dral will use the current input definition to trigger a line
     * acquisition. Only line scan camera with asynchronous reset Dral.
     */
    UseAs_LineTrigger,                              // Triggers the line acquisition (Line scan only)
    /** Sequencer DRAL will not use this line directly.
     * This is enabled for user specific purposes. The application can read the actual value
     * of such inputs at any time using method DsyApp_Seq32::GetFreeIO()
     */
    UseAs_UserFreeInput,                            //
    UseAs_IOReset,                                  //
    UseAs_LastInput,

    UseAs_FirstOutput=0x200,
    /** Output function. The Dral will use the current output definition for its
     * defined output type, i.e. Flash control.
     */
    UseAs_DralOutput=UseAs_FirstOutput,             // Classic Dral Flash output
    /** Output function. The Dral will use the current output definition for user defined output. */
    UseAs_UserOutput,                               // User defined output
    /** Sequencer DRAL will not use this line directly.
     * This is enabled for user specific purposes. The application can control the actual value of
     * such outputs at any time using method DsyApp_Seq32::SetFreeIO()
     */
    UseAs_UserFreeOutput,                           //
    /* internal use */
    UseAs_UserFreeClockOutput,                      //
    UseAs_LastOutput
    };



// Input handling flags

// UseAs_FrameTrigger/UseAs_LineTrigger
/** @defgroup InputHandlingFlags Input handling flags. */
//@{
/** Trigger is processed in the current acquisition.
 * This is the default. It means that any trigger coming during acqusiition
 * is cached and processed at the end of the current acquisition.\n
 * \b Supported \b boards: All boards.
 */
#define SeqIOInFlg_CachedTrigger             0x00000000
/** Proceed after the current acquisition with new trigger.
 * Any trigger coming during the acquisition is ignored and a new
 * trigger is required to proceed after the current acquisition.
 * \b Supported \b boards: RXL.
 */
#define SeqIOInFlg_EdgeTrigger               0x00000001
/*! The specified IO line is used as shutter pulse (goes directly
 * to the camera).
 * Its usage is dangerous and hardly debuggable if anything goes wrong.
 * \b Supported \b boards: RXL.
 */
#define SeqIOInFlg_ShutterPulse              0x00000002
/*! The specified IO line is used as shutter pulse (goes directly
 * to the camera).
 * Its usage is dangerous and hardly debuggable if anything goes wrong.
 * \b Supported \b boards: RXL.
 */
#define SeqIOInFlg_ShutterPulseDirect        0x00000004
// Encoder settings
/*! Sets the encoder to count pulses only during acquisitions.
 * Sets the encoder to count pulses only during acquisitions,
 * pulses outside acquisitions are ignored. This setting
 * applies only to encoder defined IO cfgs.
 */
#define SeqIOInFlg_EncoderCountOnAcquisition 0x00000008
//@}

// --------------------------------------------------------------
// Signal definition
// --------------------------------------------------------------
// i.e. to define the second Opto
//    Signal.SigId=SigId_Opto;
//    Signal.Index=1;                // Index starts with 0
//    Signal.Edge=IOPol_ActiveHigh;
// Note that input or output is defined by the configuration
// type (in or out) where the signal is defined
// --------------------------------------------------------------

/** LvSignal.
 * @ingroup DaisySequencerEnumsGroup 
 * Defines an input/output signal.
 */
typedef struct _tagLvSignal {
    /** Signal type. One of the @ref __SigId definitions. */
    U32BIT SigId;                    // Signal to be used
                                     // One of the __SigId definitions in dsydef.h
    /** On-board index of the selected signal. */
    U32BIT Index;                    //	Index of the signal
    /** Activation polarity of the signal. One of the IOPolarity definitions. */
    U32BIT Edge;                     // IOPol_ActiveHigh/Low
                                     // Active transition of the signal
    /** Field reserved for future use. */
    U32BIT Reserved;                 // Spare
    } LvSignal;

/** LvOutputActivation.
 * @ingroup DaisySequencerEnumsGroup 
 * Defines the activation properties of an output signal.
 */
typedef struct _tagLvOutputActivation {
    /** The signal is activated upon assertion of the defined event. One of the @ref _SeqIO_ActOn definitions. */
    U32BIT OnEvent;                  // enum _SeqIO_ActOn
                                     // Event that triggers the Out to be active
    /** The signal activation is delayed by the quantity set in this field. The unit
     * depends on the selected OnEvent.
     */
    U32BIT Delay;                    // usec or lines depending on the selected trigger
                                     // Delay from the detection of the trigger
    /** The signal remains active for the time quantity set in this field. The unit
     * depends on the selected OnEvent.
     */
    U32BIT Duration;                 // usec or lines depending on the selected trigger
                                     // Length in usec for the Output to remain active
	LvSignal InSignal;				 //
    /** Field reserved for future use. */
    U32BIT Reserved;                 // Spare
    } LvOutputActivation;

/** LvOutItemCfg.
 * Defines the output configuration of a sequencer Dral.
 * @sa _tagLvInItemCfg
 */
typedef struct _tagLvOutItemCfg {
    /** Functionality of the output definition. One of the _SeqIO_Function definitions. */
    U32BIT   Function;               // enum _SeqIO_Function
                                     // Meaning of the signal
    /** union To. */
    union {
        /** struct Direct. */
        struct _tagOutSignal {
            /** Forward pulse input signal. */
            LvSignal Signal;         // Signal to be used for output
            } Direct;
         } To;
    /** For user defined output, i.e. Function is _SeqIO_Function::UseAs_UserOutput, this field
     * defines the characteristics of the output signal. For Function set to
     * _SeqIO_Function::UseAs_DralOutput this field is ignored.
     */
    LvOutputActivation Activation;   // How the signal is being activated
    /** After Dral activation, this field contains the eventual error code. When the
     * configuration is valid this field is set to DSY_I_NoError.
     */
    U32BIT CfgStatus;                // After Dral activation this field contain eventual
                                     // configuration errors. DSY_I_NoError if all ok.
    U32BIT Reserved[6];              // Up to 64
    } LvOutItemCfg;


/** LvInItemCfg.
 * Defines the input configuration of a sequencer Dral.
 * @sa _tagLvOutItemCfg
 */
typedef struct _tagLvInItemCfg {
    /** Functionality of the input definition. One of the _SeqIO_Function definitions. */
    U32BIT Function;                 // enum _SeqIO_Function
                                     // Meaning of the signal
    /** Type of input. One of the IOInType definitions. Defines which part of the
     * union below is used.
     */
    U32BIT Type;                     // enum _SeqIO_InType
                                     // defines which part of the union below will be used
    /** union From. */
    union {
        /** struct ShaftEncoder. */
        struct _tagShaftEncoder	{
            /** Forward pulse input signal. */
            LvSignal Forward;        // Encoder forward signal
            /** Backward pulse input signal. */
            LvSignal Backward;       // Encoder backward signal
            /** Resolution of the pulses being decoded from the shaft encoder input.
             * Possible values are:
             * @code
             *   EncoderResolution_1x    The output resolution is the same as the encoder resolution.
             *   EncoderResolution_2x    The output resolution is twice the encoder resolution.
             *   EncoderResolution_4x    The output resolution is four time the encoder resolution.
             * @endcode
             * For more details see SequencerGuide section 3.4.1 - Encoder resolution
             */
            U32BIT Resolution;       // EncoderResolution defines
            /** Initial count of backward encoder pulses that will be used on every 揺ncoder reset

⌨️ 快捷键说明

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