#pragma once
|
|
#include "CameraControlInfo.h"
|
//#include <emmintrin.h>
|
|
#include "CHImageControls/CHImageData.h"
|
typedef CCHImageData FrameBuffer;
|
|
class CCameraBuffer;
|
|
|
class AFX_EXT_CLASS CCameraControl
|
{
|
public:
|
CCameraControl(int nIndex);
|
virtual ~CCameraControl();
|
void SetCC2P(ICameraControl2Parent* pCC2P) { m_pCC2P = pCC2P; }
|
const CCameraControlInfo* GetControlInfo() { return &m_ControlInfo; }
|
|
// camera control
|
virtual int Connect(const CCameraControlInfo& controlInfo) = 0;
|
virtual int Grab() = 0;
|
virtual int Snap() = 0;
|
virtual int Snap(int nCount) = 0;
|
virtual int Snap(int nCount, UINT nWaitTime) = 0;
|
virtual int Freeze() = 0;
|
virtual int Abort() = 0;
|
virtual int Disconnect() = 0;
|
|
// setting info
|
virtual BOOL SetExposureTime(double dValue);
|
virtual BOOL GetExposureTime(double& dValue);
|
virtual BOOL SetExposureAuto(BOOL bAuto);
|
virtual BOOL SetTriggerProcess();
|
virtual BOOL SetTriggerProcess( int nPosUmX, int nPosUmY );
|
virtual BOOL SetFrameRate(double dRate) { return TRUE; }
|
|
// load save
|
virtual BOOL SaveImage(const CString& strFilename);
|
virtual BOOL SaveImage(int nIndex, const CString& strFilename);
|
|
// frame image
|
virtual BOOL GetImage(int nLeft, int nTop, int nWidth, int nHeight, BYTE* pImage);
|
virtual BOOL GetImage(int nIndex, int nLeft, int nTop, int nWidth, int nHeight, BYTE* pImage);
|
virtual void* GetImageAddress();
|
virtual void* GetImageAddress(int nIndex);
|
|
virtual BOOL GetImageData(CCHImageData *pImageData);
|
virtual BOOL GetImageData(int nIndex, CCHImageData *pImageData);
|
|
virtual CCHImageData* GetImagePtr();
|
virtual CCHImageData* GetImagePtr(int nIndex);
|
|
|
// connection info
|
virtual BOOL ClearSharedMemory(int nScanIndex);
|
virtual BOOL GetConnected() const { return m_bConnected; }
|
virtual void SetConnected(BOOL bConnected) { m_bConnected = bConnected;}
|
virtual BOOL DisconnectCheck() { return TRUE; }
|
|
// frame info
|
virtual int GetWidth() const { return m_nWidth; }
|
virtual int GetWidthStep() const { return m_nWidthStep; }
|
virtual int GetHeight() const { return m_nHeight; }
|
virtual int GetChannels() const { return m_nChannels; }
|
virtual int GetDepth() const { return m_nDepth; }
|
virtual int GetLostFrames() const { return m_nLostFrame; }
|
virtual int GetLostPackets() const { return m_nLostPacket; }
|
virtual int GetSwCount() const { return m_nSwCount; }
|
virtual int GetHwCount() const { return m_nHwCount; }
|
|
// grabbing info
|
virtual BOOL GetGrabbing() const { return m_bGrabbing; }
|
virtual int GetFrameIndex() const { return m_nFrameIndex; }
|
|
// mode info
|
virtual void SetFlipMode(int nFlipMode) { m_nFlipMode = nFlipMode;}
|
virtual int GetFlipMode() const { return m_nFlipMode; }
|
|
virtual int GetTriggerMode() const { return m_nTriggerMode; }
|
virtual int GetTriggerSource() const { return m_nTriggerSource; }
|
virtual void SetTriggerMode(int nMode, int nCount=1) { m_nTriggerMode = nMode; }
|
virtual void SetTriggerSource(int nSource) { m_nTriggerSource = nSource; }
|
|
virtual int GetIndex() const { return m_nIndex; }
|
virtual int GetFrameCount() const { return m_nFrameCount; }
|
|
virtual void SetScanIndex(int nScanIdx) { m_nScanIndex = nScanIdx; }
|
virtual int GetScanIndex() const { return m_nScanIndex; }
|
|
protected:
|
void AllocateFrameBuffer(int nWidth, int nHeight, int nChannels, int nFrameCount, const CString& strBufferName);
|
void DeleteFrameBuffer();
|
|
static BOOL ImageFlip(int nFlipMode, BYTE *pSrcBuf, BYTE* pDstBuf, int nWidth, int nHeiht, int nChannels);
|
|
int m_nIndex;
|
ICameraControl2Parent* m_pCC2P;
|
CCameraControlInfo m_ControlInfo;
|
|
// connection info
|
BOOL m_bConnected;
|
int m_nTotalIndex;
|
CString m_strCameraName;
|
|
int m_nScanIndex;
|
int m_nGrabCount;
|
int m_nFrameCount;
|
int m_nFlipMode;
|
|
// frame info
|
int m_nWidth;
|
int m_nWidthStep;
|
int m_nHeight;
|
int m_nChannels;
|
int m_nDepth;
|
int m_nLostFrame;
|
int m_nLostPacket;
|
int m_nSwCount;
|
int m_nHwCount;
|
|
// grabbing info
|
BOOL m_bGrabbing;
|
int m_nFrameIndex;
|
|
// mode info
|
int m_nTriggerMode;
|
int m_nTriggerSource;
|
|
// shared frame buffer
|
FrameBuffer m_curFrameImage;
|
CCameraBuffer* m_pCameraFrameBuffer;
|
|
CRITICAL_SECTION m_csFrameBuffer;
|
};
|
extern "C" __declspec( dllexport ) CCameraControl* CameraControlNew(int nCamIndex);
|