#pragma once #include "Global_Define.h" #include "GrabberControl.h" #include "MilControl_Common.h" class CFrameBufferController; class CGrabberRadient : public CGrabberControl { public: CGrabberRadient(); virtual ~CGrabberRadient(); 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); /* User's processing function prototype. */ static long MFTYPE CallbackHookFunction(long HookType , MIL_ID HookId, void MPTYPE *HookDataPtr); static long MFTYPE CallbackFreeRunFunction(long HookType , MIL_ID HookId, void MPTYPE *HookDataPtr); 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 ); dqGrabIdx *GetGrabIdx(){return &m_dqCallbackFrame;} BOOL FindGrabIdx(int iScan,int iFrame); BOOL SetInsertFrame(int iScan,int iFrame); BOOL IsHasGrabFrame(); protected: BOOL Processing(long HookType, MIL_ID HookId); ////////////////////////////////////////////////////////////////////////// // Buffer public: BOOL CreateGrabBuffer(int nScanCount,int nBufSize, int nBufSizeX, int nBufSizeY); void ClearBuffer(); BOOL CheckLastError(); void SimulationGrab(int iScan); BOOL SetImageFlipX(BOOL bOn); public: _GRABBER_INIT_PARAM_ m_Param; MIL_ID m_MilSystem; // 焊靛寸 1函荐 MIL_ID m_MilDigitizer; // 墨皋扼 函荐 MIL_ID m_Milbufgrab[BUFFERING_SIZE_MAX]; DIGSTATUS m_DigitizerStatus; long m_lBord; BOOL bUART_Connect[2]; CCriticalSection m_critical; int m_nEndFrameIdx; // 泅犁 Grab 茄 荐 int m_nStartFrameIdx; // 啊厘 坷贰傈俊 Grab茄 Frame狼 牢郸胶. int m_nSetBufferIdx; int m_nScanIndex; int m_nAllocatedGrabBufSize; BOOL m_isGrabbing; BOOL m_isLiveGrab; CFrameBufferController *m_pFrameBuffer; dqGrabIdx m_dqCallbackFrame; CCriticalSection m_csIdxLock; };