QuakeGod
2021-07-29 3b04f942bd51c0453cbb64167cbdb7de69159bd5
提交 | 用户 | age
4b03ae 1
Q 2 #ifndef __MV_GIGE_DEVICE_H__
3 #define __MV_GIGE_DEVICE_H__
4
5 #include "MvDeviceBase.h"
6
7 namespace MvCamCtrl
8 {
9     class CMvGigEDevice : public IMvDevice
10     {
11     public:
12
13         // 打开设备
14         virtual int     Open(unsigned int nAccessMode = MV_ACCESS_Exclusive, unsigned short nSwitchoverKey = 0);
15
16
17         // 关闭设备
18         virtual int     Close();
19
20
21         // 判断设备的状态,仅当返回false时,可打开设备
22         virtual bool    IsOpen();
23
24
25         // 开启抓图
26         virtual int     StartGrabbing();
27
28
29         // ֹͣץͼ
30         virtual int     StopGrabbing();
31
32
33         // 获取设备信息
34         virtual int     GetDeviceInfo(MV_CC_DEVICE_INFO&);
35
36
37         /** @fn     GetGenICamXML(unsigned char* pData, unsigned int nDataSize, unsigned int* pnDataLen)
38          *  @brief  获取设备的XML文件
39          *  @param  pData           [IN][OUT]   - 待拷入的缓存地址
40                     nDataSize       [IN]        - 缓存大小
41                     pnDataLen       [OUT]       - xml 文件数据长度
42          *  
43          *  @return 成功,返回MV_OK;失败,返回错误码
44          *  @note   当pData为NULL或nDataSize比实际的xml文件小时,不拷贝数据,由pnDataLen返回xml文件大小;
45          *          当pData为有效缓存地址,且缓存足够大时,拷贝完整数据,并由pnDataLen返回xml文件大小。
46          */
47         virtual int     GetGenICamXML(unsigned char* pData, unsigned int nDataSize, unsigned int* pnDataLen);
48
49
50         /** @fn     GetOneFrame(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO* pFrameInfo)
51          *  @brief  获取一帧图像数据
52          *  @param  pData           [IN][OUT]   - 数据指针
53                     nDataLen        [IN]        - 数据长度
54                     pFrameInfo      [OUT]       - 输出的帧信息
55          *  
56          *  @return 成功,返回MV_OK;失败,返回错误码
57          */
58         virtual int     GetOneFrame(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO* pFrameInfo);
59
60
61         // 获取GenICam使用的传输层代理类
62         virtual TlProxy     GetTlProxy();
63
64
65         virtual ~CMvGigEDevice( void );
66
67
68         CMvGigEDevice( const MV_CC_DEVICE_INFO* pInfo );
69
70
71         // 获取网络信息
72         virtual int     GetNetTransInfo(MV_NETTRANS_INFO* pstInfo);
73
74
75         // 强制IP
76         virtual int     ForceIp(unsigned int nIP);
77
78
79         // 配置IP方式
80         virtual int     SetIpConfig(unsigned int nType);
81
82
83         // 获取各种类型的信息
84         virtual int     GetAllMatchInfo(MV_ALL_MATCH_INFO* pstInfo);
85         // add new interface here...
86
87         // 注册消息异常回调
88         virtual int     RegisterExceptionCallBack(void(__stdcall* cbException)(unsigned int nMsgType, void* pUser),
89                                                     void* pUser);
90
91         virtual int     SetSingleShot(void(__stdcall* cbSingleShot)(unsigned char* pData , unsigned int nDataLen, 
92                                                                     MV_FRAME_OUT_INFO* pFrameInfo, void* pUser), 
93                                         void* pUser);
94
95         // 设置设备采集模式
96         virtual int     SetAcquisitionMode(MV_CAM_ACQUISITION_MODE enMode);
97
98
99         // 设备本地升级
100         virtual int     LocalUpgrade(const void *pFilePathName);
101
102         // 获取当前升级进度
103         virtual int     GetUpgradeProcess(unsigned int* pnProcess);
104
105         virtual int     GetOptimalPacketSize();
106
107         // 显示一帧图像
108         virtual int     Display(void* hWnd);
109
110         virtual int     SetNetTransMode(unsigned int nType);
111
112         virtual int     ReadMemory(void *pBuffer, int64_t nAddress, int64_t nLength);
113
114         virtual int     WriteMemory(const void *pBuffer, int64_t nAddress, int64_t nLength);
115
116         // 返回值 0驱动不正常,1驱动正常工作
117         virtual int     IsDriverWorking();
118
119         // 0:不丢弃;1:丢弃
120         virtual int     SetThrowAbnormalImage(int bThrow);
121
122         // 设置SDK内部图像缓存节点个数,范围[1, 30],在抓图前调用
123         virtual int     SetImageNodeNum(unsigned int nNum);
124
125         // 设置gvcp超时时间
126         virtual int     SetGvcpTimeout(unsigned int nTimeout);
127
128         // 注册图像数据回调
129         virtual int     RegisterImageCallBack(void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO* pFrameInfo, void* pUser),
130                                                     void* pUser);
131
132         // 注册EVENT消息回调
133         virtual int     RegisterEventCallBack(void(__stdcall* cbEvent)(unsigned int nUserDefinedId, void* pUser),
134                                                 void* pUser);
135
136         // 注册图像数据回调,chunk
137         virtual int     RegisterImageCallBackEx(void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),void* pUser);
138
139         virtual int     RegisterImageCallBackForRGB(void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),void* pUser);
140         virtual int     RegisterImageCallBackForBGR(void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),void* pUser);
141
142         virtual int     GetOneFrameEx(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO_EX* pFrameInfo);
143
144         virtual int     GetImageForRGB(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO_EX* pFrameInfo, int nMsec);
145         virtual int     GetImageForBGR(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO_EX* pFrameInfo, int nMsec);
146
147         virtual int     GetOneFrameTimeout(unsigned char * pData , IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX* pFrameInfo, int nMsec);
148
149     private:
150         CDevRefs*       m_pRefs;
151     };
152
153
154 }
155
156 #endif /* __MV_GIGE_DEVICE_H__ */