#pragma once #include "CHCameraControls/CameraControl.h" class SapAcquisition; class SapBuffer; class SapTransfer; class SapFlatField; class SapXferPair; class SapXferCallbackInfo; class SapLocation; // class SapProCallbackInfo; // class SapMyProcessing; class AFX_EXT_CLASS CCameraControl_Sapera : public CCameraControl { public: CCameraControl_Sapera(int nIndex=-1); virtual ~CCameraControl_Sapera(void); // camera control virtual int Connect(const CCameraControlInfo& controlInfo); virtual int Grab(); virtual int Snap(); virtual int Snap(int nCount); virtual int Snap(int nCount, UINT nWaitTime); virtual int Freeze(); virtual int Abort(); virtual int Disconnect(); // setting info virtual BOOL SetExposureTime(double dValue); virtual BOOL GetExposureTime(double& dValue); virtual BOOL SetExposureAuto(BOOL bAuto); virtual BOOL SetFrameRate(double dRate) { return TRUE; } virtual BOOL GetGrabbing(); virtual int GetFrameIndex(); // setting mode virtual void SetTriggerMode(int nMode, int nCount=1); virtual void SetTriggerSource(int nSource); virtual void XferCallback(SapXferCallbackInfo *pInfo); protected: static void XferCallbackFunc(SapXferCallbackInfo *pInfo); virtual BOOL AllocateObjects(const SapLocation& loc, CString strCamfile, int nFrameCount); virtual BOOL CreateObjects(); virtual void DestoryObjects(); virtual void DeleteObjects(); SapAcquisition *m_pAcq; SapBuffer *m_pBuffers; SapTransfer *m_pXfer; int m_nSnapFrameCount; };