|
#pragma once
|
|
#include "GrabberControl.h"
|
|
#if OFFLINE_KEY == 0
|
#include "multicam.h"
|
#endif
|
|
class CFrameBufferController;
|
class CGrabberMulticam : public CGrabberControl
|
{
|
public:
|
CGrabberMulticam();
|
virtual ~CGrabberMulticam();
|
|
public:
|
//////////////////////////////////////////////////////////////////////////
|
// Initialization
|
virtual BOOL Initialize(void *pParam, int *pErrorCode,int iBoard=0); // Grabber ÃʱâÈ
|
virtual BOOL InitializeBuffer(void *pParam);
|
//////////////////////////////////////////////////////////////////////////
|
// Deinit
|
virtual BOOL Deinitialize();
|
|
virtual BOOL GrabScanStart(int iScan, BOOL bFreeRun, int nPeriod, int nExposure=10, BOOL bAuto=TRUE);
|
virtual BOOL GrabLiveStart(int nExposure=15);
|
virtual BOOL GrabScanStop();
|
|
virtual BOOL IsGrabbing();
|
virtual int IsAcqFrame(int nFrameNo, int nThreadIdx = -1);
|
|
virtual LPBYTE GetFrameHeader(int iScan,int nFrameNo, BOOL* bSuccess = NULL);
|
virtual LPBYTE GetFrameHeaderLine(int iScan,int nLine, BOOL* bSuccess = NULL);
|
virtual BOOL GetSmallImage(int iScan,LPBYTE lpIn, int nXStart, int nYStart, int nXSize, int nYSize, BOOL bMustMapping = TRUE);
|
|
virtual int GetStartFrameIdx() { return m_nStartFrameIdx; }
|
virtual int GetEndFrameIdx() { return m_nEndFrameIdx; }
|
|
virtual void SetSimulFrame(int nFrame);
|
virtual int GetGrabFrameCount();
|
virtual void ClearGrabIdx();
|
virtual stFrameIndex GetGrabFrame();
|
virtual stFrameIndex GetGrabFrameNoRemove();
|
virtual CFrameBufferController *GetFrameBuffer(){return m_pFrameBuffer;}
|
virtual BOOL SetTriggerMode( BOOL bExTrigger ){return TRUE;}
|
|
public:
|
#if OFFLINE_KEY == 0
|
/* User's processing function prototype. */
|
static void MCAPI ProcessCallbackFunc(PMCSIGNALINFO signal_info);
|
BOOL Processing(PMCSIGNALINFO signal_info);
|
#endif
|
|
dqGrabIdx *GetGrabIdx(){return &m_dqCallbackFrame;}
|
BOOL FindGrabIdx(int iScan,int iFrame);
|
|
BOOL SetInsertFrame(int iScan,int iFrame);
|
|
|
BOOL IsHasGrabFrame();
|
|
protected:
|
int OpenMulticam(void);
|
BOOL InitMulticam(CString strCamfile,int nChannel, int nPort);
|
void DeleteMulticam();
|
|
//////////////////////////////////////////////////////////////////////////
|
// Buffer
|
public:
|
BOOL CreateGrabBuffer(int nScanCount,int nBufSize, int nBufSizeX, int nBufSizeY);
|
void ClearBuffer();
|
|
void SimulationGrab(int iScan);
|
|
public:
|
_GRABBER_INIT_PARAM_ m_Param;
|
int m_nEndFrameIdx; // ÇöÀç Grab ÇÑ ¼ö
|
int m_nStartFrameIdx; // °¡Àå ¿À·¡Àü¿¡ GrabÇÑ FrameÀÇ À妽º.
|
int m_nSetBufferIdx;
|
int m_nScanIndex;
|
int m_nBoardID;
|
|
#if OFFLINE_KEY == 0
|
MCHANDLE m_hGrabChannel;
|
#endif
|
|
int m_nAllocatedGrabBufSize;
|
BOOL m_isGrabbing;
|
BOOL m_isLiveGrab;
|
CFrameBufferController *m_pFrameBuffer;
|
dqGrabIdx m_dqCallbackFrame;
|
CCriticalSection m_csIdxLock;
|
};
|