📄 daseq32.ah
字号:
#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 + -