1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#pragma once
 
#include "FrameBufferController.h"
#define INITX64_SUCCESS                0
#define INITX64_FAIL_GETSERVER        11
#define INITX64_FAIL_CREATEACQ        12
#define INITX64_FAIL_TDIDIRECTION    13
#define INITX64_FAIL_CAMNVIC        14
#define INITX64_FAIL_CREATEBUFFER    15
#define INITX64_FAIL_VIRTUALBUFFER    16
#define INITX64_FAIL_CREATEXFER        17
#define INITX64_FAIL_INVALID        18
 
typedef enum { eMIL_GRAB_OFF = 0, eMIL_GRAB_ON, eMIL_SNAP_ON } _eGrabStatus_;
 
#define MAX_DFC_PATH 1024
typedef struct _tag_struct_Grabber_Intialize_Parameter_
{
    HWND hWnd;
    BOOL bDemo;
 
    int     nScanCount;
    int  nGrabBufCount;
    int     nGrabBufSize;
    int  nFrameWidth;
    int  nFrameHeight;
    int     nConnectPort;
    int     nImgFlipX;
    int     nCameraIdx;
    int     nCameraScan;
    int     nBoardIdx;
    int  nBoardCh;
    char cDCFPath[MAX_DFC_PATH];
    char cVICPath[MAX_DFC_PATH];
    int     nExposure;
    int     nExposureDelay;
 
    _tag_struct_Grabber_Intialize_Parameter_()
    {
        ZeroMemory(this, sizeof(this));
    }
} _GRABBER_INIT_PARAM_;
 
class AFX_EXT_CLASS CGrabberControl
{
public:
    CGrabberControl(void);
    virtual ~CGrabberControl(void);
 
public:
    virtual BOOL    Initialize(void *pParam, int *pErrorCode, int iBoard = 0) = 0;    // Grabber ÃʱâÈ­
    virtual BOOL    InitializeBuffer(void *pParam) = 0;
    //////////////////////////////////////////////////////////////////////////
    // Deinit
    virtual BOOL    Deinitialize() = 0;
 
    virtual BOOL    GrabScanStart(int iScan, BOOL bFreeRun, int nPeriod, int nExposure = 10, BOOL bAuto = TRUE) = 0;
    virtual BOOL    GrabLiveStart(int nExposure = 15) = 0;
    virtual BOOL    GrabScanStop() = 0;
 
    virtual BOOL    IsGrabbing() = 0;
    virtual int        IsAcqFrame(int nFrameNo, int nThreadIdx = -1) = 0;
 
    virtual LPBYTE    GetFrameHeader(int iScan, int nFrameNo, BOOL* bSuccess = NULL) = 0;
    virtual LPBYTE    GetFrameHeaderLine(int iScan, int nLine, BOOL* bSuccess = NULL) = 0;
    virtual BOOL    GetSmallImage(int iScan, LPBYTE lpIn, int nXStart, int nYStart, int nXSize, int nYSize, BOOL bMustMapping = TRUE) = 0;
 
    virtual int        GetStartFrameIdx() { return 0; }
    virtual int        GetEndFrameIdx() { return 0; }
 
    virtual void    SetSimulFrame(int nFrame) = 0;
    virtual int        GetGrabFrameCount() = 0;
    virtual void    ClearGrabIdx() = 0;
    virtual stFrameIndex    GetGrabFrame() = 0;
    virtual stFrameIndex    GetGrabFrameNoRemove() = 0;
    virtual CFrameBufferController    *GetFrameBuffer() = 0;
    virtual BOOL    SetTriggerMode(BOOL bExTrigger) = 0;
};