📄 daar.h
字号:
#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 + -