zxd
2023-09-20 ad1b4b8c22b019d300af6d053e120fc830512ebd
提交 | 用户 | age
4b03ae 1
Q 2
3 #ifndef MVGIGE_H_INCLUDE_
4 #define MVGIGE_H_INCLUDE_
5
6 #ifdef MVGIGE_EXPORTS
7 #define MVGIGE_API __declspec(dllexport)
8 #else
9 #define MVGIGE_API __declspec(dllimport)
10 #endif
11
12 #include "GigECamera_Types.h"
13 #include "MVimage.h"
14
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18
19 /*!
20  *  \brief 初始化函数库。在调用函数所有函数之前调用。
21   *  \retval      MVST_SUCCESS            : 成功
22  */
23 MVGIGE_API MVSTATUS_CODES __stdcall MVInitLib();
24
25 /*!
26  *  \brief 退出函数库。在程序退出前调用,以释放资源。
27   *  \retval      MVST_SUCCESS            : 成功
28  */
29 MVGIGE_API MVSTATUS_CODES __stdcall MVTerminateLib();
30
31 /*! 
32  *  \brief    查找连接到计算机上的相机
33  *  \retval 
34  */
35 MVGIGE_API MVSTATUS_CODES __stdcall MVUpdateCameraList();
36
37 /*! 
38  *  \brief    获取连接到计算机上的相机的数量
39  *  \param [out]    pNumCams    相机数量
40  *  \retval MVST_SUCCESS            : 成功
41  */
42 MVGIGE_API MVSTATUS_CODES __stdcall MVGetNumOfCameras(int *pNumCams);
43
44 /*! 
45  *  \brief    得到第idx个相机的信息。
46  *  \param [in]    idx idx从0开始,按照相机的IP地址排序,地址小的排在前面。
47  *  \param [out]    pCamInfo  相机的信息 (IP,MAC,SN,型号...) 
48  *  \retval MVST_SUCCESS            : 成功
49  */
50 MVGIGE_API MVSTATUS_CODES __stdcall MVGetCameraInfo(unsigned char idx,MVCamInfo *pCamInfo);
51
52 /*! 
53  *  \brief    打开第idx个相机
54  *  \param [in]    idx    idx从0开始,按照相机的IP地址排序,地址小的排在前面。
55  *  \param [out]    hCam 如果成功,返回的相机句柄
56  *  \retval MVST_INVALID_PARAMETER : idx取值不对
57  *            MVST_ACCESS_DENIED        : 相机无法访问,可能正被别的软件控制
58  *            MVST_ERROR                : 其他错误
59  *            MVST_SUCCESS            : 成功
60  */
61 MVGIGE_API MVSTATUS_CODES __stdcall MVOpenCamByIndex(unsigned char idx,HANDLE *hCam);
62
63 /*! 
64  *  \brief    打开指定UserDefinedName的相机
65  *  \param [in]    name UserDefinedName。
66  *  \param [out] hCam 如果成功,返回的相机句柄。如果失败,为NULL。
67  *  \retval 
68  *            MVST_ACCESS_DENIED        : 相机无法访问,可能正被别的软件控制
69  *            MVST_ERROR                : 其他错误
70  *            MVST_SUCCESS            : 成功
71  */
72 MVGIGE_API MVSTATUS_CODES __stdcall MVOpenCamByUserDefinedName( char *name,HANDLE *hCam );
73
74 /*! 
75  *  \brief    关闭相机。断开和相机的连接。
76  *  \param [in]    hCam 相机的句柄
77  *  \retval MVST_SUCCESS            : 成功
78  */
79 MVGIGE_API MVSTATUS_CODES __stdcall MVCloseCam(HANDLE hCam);
80
81 /*!
82  * \brief    读取图像宽度
83  * \param [in]    HANDLE hCam        相机句柄
84  * \param [out]    int * pWidth    图像宽度[像素]
85  * \retval      MVST_SUCCESS            : 成功
86  */
87 MVGIGE_API MVSTATUS_CODES __stdcall MVGetWidth(HANDLE hCam,int *pWidth);
88
89 /*!
90  *  \brief 读取图像宽度可设置的范围
91  *  \param [in]    HANDLE hCam        相机句柄
92  *  \param [out]    int * pWidthMin    图像宽度可设置的最小值
93  *  \param [out]    int * pWidthMax    图像宽度可设置的最大值
94  *  \retval      MVST_SUCCESS            : 成功
95  */
96 MVGIGE_API MVSTATUS_CODES __stdcall MVGetWidthRange(HANDLE hCam,int *pWidthMin,int *pWidthMax);
97
98 /*!
99  *  \brief 读取图像宽度调整的步长
100  *  \param [in]    HANDLE hCam        相机句柄
101  *  \param [out] int * pWidthInc    图像宽度的调整的步长,即图像的宽度 = 最小宽度 + 步长 x 整数
102   *  \retval      MVST_SUCCESS            : 成功
103  */
104 MVGIGE_API MVSTATUS_CODES __stdcall MVGetWidthInc(HANDLE hCam,int *pWidthInc);
105
106 /*!
107  *  \brief 设置图像的宽度
108  *  \param [in]    HANDLE hCam        相机句柄
109  *  \param [in]    int nWidth    图像宽度,应该在宽度可设置范围之内,并且 = 最小宽度 + 步长 x 整数
110  *  \retval      MVST_SUCCESS            : 成功
111  */
112 MVGIGE_API MVSTATUS_CODES __stdcall MVSetWidth(HANDLE hCam,int nWidth);
113
114 /*!
115  * \brief    读取图像高度
116  * \param [in]    HANDLE hCam        相机句柄
117  * \param [out]    int * pHeight    图像高度[像素]
118  * \retval      MVST_SUCCESS            : 成功
119  */
120 MVGIGE_API MVSTATUS_CODES __stdcall MVGetHeight(HANDLE hCam,int *pHeight);
121
122 /*!
123  *  \brief 读取图像高度可设置的范围
124  *  \param [in]    HANDLE hCam        相机句柄
125  *  \param [out]    int * pHeightMin    图像高度可设置的最小值
126  *  \param [out]    int * pHeightMax    图像高度可设置的最大值
127  *  \retval      MVST_SUCCESS            : 成功
128  */
129 MVGIGE_API MVSTATUS_CODES __stdcall MVGetHeightRange(HANDLE hCam,int *pHeightMin,int *pHeightMax);
130
131 /*!
132  *  \brief 设置图像的高度
133  *  \param [in]    HANDLE hCam        相机句柄
134  *  \param [in]    int nHeight    图像高度,应该在高度可设置范围之内
135  *  \retval      MVST_SUCCESS            : 成功
136  */
137 MVGIGE_API MVSTATUS_CODES __stdcall MVSetHeight(HANDLE hCam,int nHeight);
138
139 /*!
140  *  \brief 读取水平方向偏移量。图像宽度设置到小于最大宽度时,可以调整水平偏移量,设置采集窗口的水平起始位置。
141  *  \param [in]    HANDLE hCam
142  *  \param [out]    int * pOffsetX    水平偏移量
143  *  \retval      MVST_SUCCESS            : 成功
144  */
145 MVGIGE_API MVSTATUS_CODES __stdcall MVGetOffsetX(HANDLE hCam,int *pOffsetX);
146
147 /*!
148  *  \brief 读取水平方向偏移量取值范围。
149  *  \param [in]    HANDLE hCam
150  *  \param [out]    int * pOffsetXMin    水平偏移量最小值
151  *  \param [out]    int * pOffsetXMax    水平偏移量最大值
152  *  \retval      MVST_SUCCESS            : 成功
153  */
154 MVGIGE_API MVSTATUS_CODES __stdcall MVGetOffsetXRange(HANDLE hCam,int *pOffsetXMin,int *pOffsetXMax);
155
156 /*!
157  *  \brief 设置水平方向偏移量。图像宽度设置到小于最大宽度时,可以调整水平偏移量,设置采集窗口的水平起始位置。
158  *  \param [in]    HANDLE hCam
159  *  \param [in]    int nOffsetX 水平偏移量。应该在水平偏移量允许的范围之内。
160  *  \retval      MVST_SUCCESS            : 成功
161  */
162 MVGIGE_API MVSTATUS_CODES __stdcall MVSetOffsetX(HANDLE hCam,int nOffsetX);
163
164 /*!
165  *  \brief 读取垂直方向偏移量。图像宽度设置到小于最大宽度时,可以调整垂直偏移量,设置采集窗口的垂直起始位置。
166  *  \param [in]    HANDLE hCam
167  *  \param [out]    int * pOffsetY    垂直偏移量
168  *  \retval      MVST_SUCCESS            : 成功
169  */
170 MVGIGE_API MVSTATUS_CODES __stdcall MVGetOffsetY(HANDLE hCam,int *pOffsetY);
171
172 /*!
173  *  \brief 读取垂直方向偏移量取值范围。
174  *  \param [in]    HANDLE hCam
175  *  \param [out]    int * pOffsetYMin    垂直偏移量最小值
176  *  \param [out]    int * pOffsetYMax    垂直偏移量最大值
177  *  \retval      MVST_SUCCESS            : 成功
178  */
179 MVGIGE_API MVSTATUS_CODES __stdcall MVGetOffsetYRange(HANDLE hCam,int *pOffsetYMin,int *pOffsetYMax);
180
181 /*!
182  *  \brief 设置垂直方向偏移量。图像宽度设置到小于最大宽度时,可以调整垂直偏移量,设置采集窗口的垂直起始位置。
183  *  \param [in]    HANDLE hCam
184  *  \param [in]    int nOffsetY 垂直偏移量。应该在垂直偏移量允许的范围之内。
185  *  \retval      MVST_SUCCESS            : 成功
186  */
187 MVGIGE_API MVSTATUS_CODES __stdcall MVSetOffsetY(HANDLE hCam,int nOffsetY);    
188
189 /*!
190  * \brief    读取图像的像素格式
191  * \param [in]    HANDLE hCam        相机句柄
192  * \param [out]    MV_PixelFormatEnums * pPixelFormat
193  * \retval      MVST_SUCCESS            : 成功
194  */
195 MVGIGE_API MVSTATUS_CODES __stdcall MVGetPixelFormat(HANDLE hCam, MV_PixelFormatEnums *pPixelFormat);
196
197 /*!
198  *  \brief    读取传感器的通道数
199  *  \param [in]    HANDLE hCam        相机句柄
200  *  \param [out] SensorTapsEnums* pSensorTaps
201  *  \retval      MVST_SUCCESS            : 成功
202  */
203 MVGIGE_API MVSTATUS_CODES __stdcall MVGetSensorTaps(HANDLE hCam, SensorTapsEnums *pSensorTaps );
204
205 /*!
206  * \brief    读取当前增益值
207  * \param [in]    HANDLE hCam    相机句柄
208  * \param [out]    double * pGain
209  *  \retval MVST_SUCCESS            : 成功
210  */
211 MVGIGE_API MVSTATUS_CODES __stdcall MVGetGain(HANDLE hCam,double *pGain);
212
213 /*!
214  * \brief    读取增益可以设置的范围
215  * \param [in]    HANDLE hCam    相机句柄
216  * \param [out]    double * pGainMin    最小值
217  * \param [out]    double * pGainMax    最大值
218  *  \retval MVST_SUCCESS            : 成功
219  */
220 MVGIGE_API MVSTATUS_CODES __stdcall MVGetGainRange(HANDLE hCam,double *pGainMin,double *pGainMax);    
221
222 /*!
223  * \brief    设置增益
224  * \param [in]    HANDLE hCam    相机句柄
225  * \param [in]    double fGain    增益
226  *  \retval MVST_SUCCESS            : 成功
227  */
228 MVGIGE_API MVSTATUS_CODES __stdcall MVSetGain(HANDLE hCam,double fGain);
229
230 /*!
231  * \brief    当相机传感器为多通道时,设置某个通道的增益
232  * \param [in]    HANDLE hCam        相机句柄
233  * \param [in]    double fGain    增益
234  * \param [in]    int nTap        通道。双通道[0,1],四通道[0,1,2,3]
235  *  \retval MVC_ST_SUCCESS            : 成功
236  */
237 MVGIGE_API MVSTATUS_CODES __stdcall MVSetGainTaps(HANDLE hCam, double fGain, int nTap );
238
239 /*!
240  * \brief    当相机传感器为多通道时,读取某个通道的增益
241  * \param [in]    HANDLE hCam        相机句柄
242  * \param [out]    double* pGain
243  * \param [in]    int nTap        通道。双通道[0,1],四通道[0,1,2,3]
244  *  \retval MVC_ST_SUCCESS            : 成功
245  */
246 MVGIGE_API MVSTATUS_CODES __stdcall MVGetGainTaps(HANDLE hCam, double *pGain,int nTap );
247
248 /*!
249  * \brief    当相机传感器为多通道时,读取某个通道的增益可设置的范围
250  * \param [in]    HANDLE hCam        相机句柄
251  * \param [out]    double * pGainMin    增益最小值
252  * \param [out]    double * pGainMax    增益最大值
253  * \param [in]    int nTap        通道。双通道[0,1],四通道[0,1,2,3]
254  *  \retval MVC_ST_SUCCESS            : 成功
255  */
256 MVGIGE_API MVSTATUS_CODES __stdcall MVGetGainRangeTaps(HANDLE hCam, double *pGainMin,double *pGainMax, int nTap );
257
258 /*!
259  * \brief    读取当前白平衡系数
260  * \param [in]    HANDLE hCam        相机句柄
261  * \param [out]    double * pRed    红色平衡系数
262  * \param [out]    double * pGreen 绿色平衡系数
263  * \param [out]    double * pBlue    蓝色平衡系数
264  *  \retval MVST_SUCCESS            : 成功
265  */
266 MVGIGE_API MVSTATUS_CODES __stdcall MVGetWhiteBalance( HANDLE hCam,double *pRed,double *pGreen, double *pBlue );
267
268 /*!
269  * \brief    读取白平衡设置的范围
270  * \param [in]    HANDLE hCam        相机句柄
271  * \param [out]    double * pMin    系数最小值
272  * \param [out]    double * pMax    系数最大值
273  *  \retval MVST_SUCCESS            : 成功
274  */
275 MVGIGE_API MVSTATUS_CODES __stdcall MVGetWhiteBalanceRange(HANDLE hCam, double *pMin,double *pMax );
276
277 /*!
278  * \brief    设置白平衡系数
279  * \param [in]    HANDLE hCam        相机句柄
280  * \param [in]    double fRed        红色平衡系数
281  * \param [in]    double fGreen    绿色平衡系数
282  * \param [in]    double fBlue    蓝色平衡系数
283  *  \retval MVST_SUCCESS            : 成功
284  */
285 MVGIGE_API MVSTATUS_CODES __stdcall MVSetWhiteBalance(HANDLE hCam,double fRed,double fGreen, double fBlue );
286
287 /*!
288  * \brief    读取是否通道自动平衡
289  * \param [in]    HANDLE hCam        相机句柄
290  * \param [out]    int* pBalance    是否自动平衡
291  *  \retval MVST_SUCCESS            : 成功
292  */
293 MVGIGE_API MVSTATUS_CODES __stdcall MVGetGainBalance(HANDLE hCam, int *pBalance );
294
295 /*!
296  * \brief    设置是否自动通道平衡
297  * \param [in]    HANDLE hCam        相机句柄
298  * \param [in]    int nBalance    是否自动通道平衡
299  *  \retval MVST_SUCCESS            : 成功
300  */
301 MVGIGE_API MVSTATUS_CODES __stdcall MVSetGainBalance(HANDLE hCam,int nBalance );
302
303 /*! 
304  *  \brief    读取当前曝光时间
305  *  \param [in]    hCam
306  *  \param [in]    pExposuretime    单位us
307  *  \retval 
308  */
309 MVGIGE_API MVSTATUS_CODES __stdcall MVGetExposureTime(HANDLE hCam,double *pExposuretime);
310
311 /*!
312  * \brief  读取曝光时间的设置范围  
313  * \param [in]    HANDLE hCam        相机句柄
314  * \param [out]    double * pExpMin    最短曝光时间 单位为us
315  * \param [out]    double * pExpMax    最长曝光时间 单位为us
316  *  \retval MVST_SUCCESS            : 成功
317  */
318 MVGIGE_API MVSTATUS_CODES __stdcall MVGetExposureTimeRange(HANDLE hCam,double *pExpMin,double *pExpMax);
319
320 /*!
321  * \brief    设置曝光时间
322  * \param [in]    HANDLE hCam        相机句柄
323  * \param [in]    unsigned long nExp_us 曝光时间 单位为us
324  *  \retval MVST_SUCCESS            : 成功
325  */
326 MVGIGE_API MVSTATUS_CODES __stdcall MVSetExposureTime(HANDLE hCam,double nExp_us);
327
328 /*!
329  * \brief    读取帧率可设置的范围
330  * \param [in]    HANDLE hCam        相机句柄
331  * \param [out]    double* pFpsMin 最低帧率
332  * \param [out]    double* pFpsMax 最高帧率    
333  *  \retval MVST_SUCCESS            : 成功
334  */
335 MVGIGE_API MVSTATUS_CODES __stdcall MVGetFrameRateRange(HANDLE hCam,double *pFpsMin,double *pFpsMax);
336
337 /*!
338  * \brief    读取当前帧率   
339  * \param [in]    HANDLE hCam        相机句柄
340  * \param [out]    double * fFPS    帧率 帧/秒
341  *  \retval MVST_SUCCESS            : 成功
342  */
343 MVGIGE_API MVSTATUS_CODES __stdcall MVGetFrameRate(HANDLE hCam,double *fFPS);
344
345 /*!
346  * \brief    设置帧率
347  * \param [in]    HANDLE hCam        相机句柄
348  * \param [in]    double fps    帧率 帧/秒
349  *  \retval MVST_SUCCESS            : 成功
350  */
351 MVGIGE_API MVSTATUS_CODES __stdcall MVSetFrameRate(HANDLE hCam,double fps);
352
353 /*!
354  *  \brief 开始采集图像
355  *  \param [in]    HANDLE hCam    相机句柄
356  *  \param [in] StreamCB    回调函数指针
357  *  \param [in]    long nUserVal    用户数据,传递到回调函数的形参
358  *  \retval      MVST_SUCCESS            : 成功
359  */
360 MVGIGE_API MVSTATUS_CODES __stdcall MVStartGrab(HANDLE hCam,int (*StreamCB)(MV_IMAGE_INFO*,long nUserVal),long nUserVal);
361
362
363 /*!
364  *  \brief 停止采集图像
365  *  \param [in]    HANDLE hCam    相机句柄
366  *  \retval  MVST_SUCCESS            : 成功
367  */
368 MVGIGE_API MVSTATUS_CODES __stdcall MVStopGrab(HANDLE hCam);
369
370 /*!
371  * \brief    读取触发模式
372  * \param [in]    HANDLE hCam        相机句柄
373  * \param [out]    TriggerModeEnums * pMode    触发模式  TriggerMode_Off,TriggerMode_On
374  *  \retval MVST_SUCCESS            : 成功
375  */
376 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTriggerMode(HANDLE hCam,TriggerModeEnums *pMode);
377
378 /*! 
379  *  \brief    设置触发模式
380  * \param [in]    HANDLE hCam        相机句柄
381  *  \param [in]    mode    触发模式
382     TriggerMode_Off:相机工作在连续采集模式,
383     TriggerMode_On:相机工作在触发模式,需要有外触发信号或软触发指令才拍摄
384  *  \retval MVST_SUCCESS            : 成功
385  */
386 MVGIGE_API MVSTATUS_CODES __stdcall MVSetTriggerMode(HANDLE hCam,TriggerModeEnums mode);
387
388 /*!
389  * \brief    读取触发源
390  * \param [in]    HANDLE hCam        相机句柄
391  * \param [out]    TriggerSourceEnums * pSource    触发源,软触发或外触发
392  *  \retval MVST_SUCCESS            : 成功
393  */
394 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTriggerSource(HANDLE hCam,TriggerSourceEnums *pSource);
395
396 /*! 
397  *  \brief    设置触发源
398  * \param [in]    HANDLE hCam        相机句柄
399  *  \param [in]    TriggerSourceEnums    source 触发源
400                 TriggerSource_Software:通过\c MVTriggerSoftware()函数触发。
401                 TriggerSource_Line1:通过连接的触发线触发。
402  *  \retval MVST_SUCCESS            : 成功
403  */
404 MVGIGE_API MVSTATUS_CODES __stdcall MVSetTriggerSource(HANDLE hCam,TriggerSourceEnums source);
405
406 /*!
407  * \brief    读取触发极性
408  * \param [in]    HANDLE hCam        相机句柄
409  * \param [out]    TriggerActivationEnums * pAct
410                 TriggerActivation_RisingEdge: 上升沿触发
411                 TriggerActivation_FallingEdge: 下降沿触发
412  *  \retval MVST_SUCCESS            : 成功
413  */
414 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTriggerActivation(HANDLE hCam,TriggerActivationEnums *pAct);
415
416 /*! 
417  *  \brief    当使用触发线触发时,设置是上升沿触发还是下降沿触发
418  *  \param [in]    hCam
419  *  \param [in]    act 上升沿或下降沿
420                 TriggerActivation_RisingEdge: 上升沿触发
421                 TriggerActivation_FallingEdge: 下降沿触发
422  *  \retval 
423  */
424 MVGIGE_API MVSTATUS_CODES __stdcall MVSetTriggerActivation(HANDLE hCam,TriggerActivationEnums act);
425
426 /*!
427  * \brief    读取触发延时
428  * \param [in]    HANDLE hCam        相机句柄
429  * \param [out]    uint32_t * pDelay_us    触发延时,单位us
430  *  \retval MVST_SUCCESS            : 成功
431  */
432 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTriggerDelay(HANDLE hCam,uint32_t *pDelay_us);
433
434 /*!
435  * \brief    读取触发延时范围
436  * \param [in]    HANDLE hCam        相机句柄
437  * \param [out]    uint32_t * pMin    触发延时最小值,单位us    
438  * \param [out]    uint32_t * pMax 触发延时最大值,单位us    
439  *  \retval MVST_SUCCESS            : 成功
440  */
441 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTriggerDelayRange(HANDLE hCam,uint32_t *pMin,uint32_t *pMax);
442
443 /*! 
444  *  \brief    设置相机接到触发信号后延迟多少微秒后再开始曝光。
445  *  \param [in]    HANDLE hCam        相机句柄
446  *  \param [in]    nDelay_us
447  *  \retval MVST_SUCCESS            : 成功
448  */
449 MVGIGE_API MVSTATUS_CODES __stdcall MVSetTriggerDelay(HANDLE hCam,uint32_t nDelay_us);
450
451 /*! 
452  *  \brief    发出软件触发指令
453  *  \param [in]    HANDLE hCam        相机句柄
454  *  \retval MVST_SUCCESS            : 成功
455  */
456 MVGIGE_API MVSTATUS_CODES __stdcall MVTriggerSoftware(HANDLE hCam);
457
458 /*!
459  * \brief    读取闪光同步信号源
460  * \param [in]    HANDLE hCam        相机句柄
461  * \param [out]    LineSourceEnums * pSource    闪光同步信号源
462  *  \retval MVST_SUCCESS            : 成功
463  */
464 MVGIGE_API MVSTATUS_CODES __stdcall MVGetStrobeSource(HANDLE hCam,LineSourceEnums *pSource);
465
466 /*! 
467  *  \brief    闪光同步信号源
468  *  \param [in]    hCam
469  *  \param [in]    source
470                 LineSource_Off:关闭闪光同步
471                 LineSource_ExposureActive:曝光的同时闪光
472                 LineSource_Timer1Active:由定时器控制
473                 LineSource_UserOutput0:由用户通过指令控制
474  *  \retval MVST_SUCCESS            : 成功
475  */
476 MVGIGE_API MVSTATUS_CODES __stdcall MVSetStrobeSource(HANDLE hCam,LineSourceEnums source);
477
478 /*!
479  * \brief    读取闪光同步是否反转
480  * \param [in]    HANDLE hCam        相机句柄
481  * \param [out]    BOOL * pInvert
482  *  \retval MVST_SUCCESS            : 成功
483  */
484 MVGIGE_API MVSTATUS_CODES __stdcall MVGetStrobeInvert(HANDLE hCam,BOOL *pInvert);
485
486 /*! 
487  *  \brief    闪光同步是否反转,即闪光同步有效时输出高电平还是低电平。
488  *  \param [in]    HANDLE hCam        相机句柄
489  *  \param [in]    bInvert
490  *  \retval MVST_SUCCESS            : 成功
491  */
492 MVGIGE_API MVSTATUS_CODES __stdcall MVSetStrobeInvert(HANDLE hCam,BOOL bInvert);
493
494 /*!
495  * \brief    读取用户设置的闪光同步
496  * \param [in]    HANDLE hCam        相机句柄
497  * \param [out]    BOOL * pSet
498  *  \retval MVST_SUCCESS            : 成功
499  */
500 MVGIGE_API MVSTATUS_CODES __stdcall MVGetUserOutputValue0(HANDLE hCam,BOOL *pSet);
501
502 /*! 
503  *  \brief    当闪光同步源选为UserOutput时
504             主机可以通过MVSetUserOutputValue0来控制闪光同步输出高电平或低电平。
505  *  \param [in]    HANDLE hCam        相机句柄
506  *  \param [in]    bSet 设置电平
507  *  \retval MVST_SUCCESS            : 成功
508  */
509 MVGIGE_API MVSTATUS_CODES __stdcall MVSetUserOutputValue0(HANDLE hCam,BOOL bSet);
510
511 /*!
512  *  \brief 设置心跳超时时间
513  *  \param [in]    HANDLE hCam    相机句柄
514  *  \param [in]    unsigned long nTimeOut    心跳超时时间 单位ms
515  *  \retval      MVST_SUCCESS            : 成功
516  *  \note 应用程序打开相机后,正常情况下会去关闭相机。但有时程序会意外中断,没有正常关闭相机。
517  *            这种情况下相机就无法再次打开了(相机认为还在被原来软件控制着)。 
518  *            因此设计了heartbeat,应用程序无论是否在采集图像,每隔一定时间(一般是1000ms)都要去访问一下相机。
519  *            当超过HeartbeatTimeout时间没有来自应用程序的访问,相机就认为应用程序中断了,会自动关闭原有连接,
520  *            以迎接新的连接。
521  *            定时访问相机的操作在SDK内部已经实现。编程时无需再次实现。
522  *            在设置断点调试程序时,可以将nTimeOut设置长一些,否则相机会自动关闭连接。
523  *            Release状态下设置短一些(3000ms),否则应用程序意外退出时,相机会长时间无法重新打开。
524  */
525 MVGIGE_API MVSTATUS_CODES __stdcall MVSetHeartbeatTimeout(HANDLE hCam,unsigned long nTimeOut);//unit ms
526
527 /*!
528  * \brief    读取网络数据包大小
529  * \param [in]    HANDLE hCam        相机句柄
530  * \param [out]    int *pPacketSize 数据包大小
531  *  \retval MVST_SUCCESS            : 成功
532  */
533 MVGIGE_API MVSTATUS_CODES __stdcall MVGetPacketSize(HANDLE hCam,unsigned int *pPacketSize);
534
535 /*!
536  * \brief    读取网络数据包大小的范围。
537  * \param [in]    HANDLE hCam            相机句柄
538  * \param [out]    unsigned int * pMin    网络数据包最小值    
539  * \param [out]    unsigned int * pMax 网络数据包最大值    
540  *  \retval MVST_SUCCESS            : 成功
541  */
542 MVGIGE_API MVSTATUS_CODES __stdcall MVGetPacketSizeRange(HANDLE hCam,unsigned int *pMin,unsigned int *pMax);
543
544 /*! 
545  *  \brief    设置网络数据包的大小。
546  *  \param [in]    HANDLE hCam            相机句柄
547  *  \param [in]    nPacketSize 网络数据包大小(单位:字节)。该大小必须小于网卡能够支持的最大巨型帧(Jumbo Frame)。
548  *  \retval 
549  */
550 MVGIGE_API MVSTATUS_CODES __stdcall MVSetPacketSize(HANDLE hCam,unsigned int nPacketSize);
551
552 /*!
553  * \brief    读取网络数据包间隔。
554  * \param [in]    HANDLE hCam                相机句柄
555  * \param [out]    unsigned int *pDelay_us 数据包间隔时间,单位us
556  *  \retval MVST_SUCCESS                : 成功
557  */
558 MVGIGE_API MVSTATUS_CODES __stdcall MVGetPacketDelay(HANDLE hCam,unsigned int *pDelay_us);
559
560 /*!
561  * \brief    读取网络数据包间隔范围
562  * \param [in]    HANDLE hCam            相机句柄
563  * \param [out]    unsigned int * pMin    数据包间隔时间最小值,单位us    
564  * \param [out]    unsigned int * pMax 数据包间隔时间最大值,单位us    
565  *  \retval MVST_SUCCESS            : 成功
566  */
567 MVGIGE_API MVSTATUS_CODES __stdcall MVGetPacketDelayRange(HANDLE hCam,unsigned int *pMin,unsigned int *pMax);
568
569
570 /*! 
571  *  \brief    设置网络数据包之间的时间间隔。如果网卡或电脑的性能欠佳,无法处理高速到达的数据包,会导致丢失数据包,
572             从而使图像不完整。可以通过增加数据包之间的时间间隔以保证图像传输。但是增加该值将增加图像的时间延迟,
573             并有可能影像到帧率。
574  *  \param [in]    hCam
575  *  \param [in]    nDelay_us 时间间隔(单位:微秒)
576  *  \retval MVST_SUCCESS            : 成功
577  */
578 MVGIGE_API MVSTATUS_CODES __stdcall MVSetPacketDelay(HANDLE hCam,unsigned int nDelay_us);
579
580 /*!
581  * \brief    读取定时器延时
582  * \param [in]    HANDLE hCam        相机句柄
583  * \param [out]    uint32_t * pDelay    定时器延时
584  *  \retval MVST_SUCCESS            : 成功
585  */
586 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTimerDelay(HANDLE hCam,uint32_t *pDelay);
587
588 /*!
589  * \brief    读取定时器延时的范围
590  * \param [in]    HANDLE hCam        相机句柄
591  * \param [out]    uint32_t * pMin    定时器延时的最小值
592  * \param [out]    uint32_t * pMax 定时器延时的最大值
593  *  \retval MVST_SUCCESS            : 成功
594  */
595 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTimerDelayRange(HANDLE hCam,uint32_t *pMin,uint32_t *pMax);
596
597 /*! 
598  *  \brief    当闪光同步源选为Timer1时MVSetStobeSource(hCam,LineSource_Timer1Active)
599             设置Timer1在接到触发信号后延迟多少us开始计时
600  *  \param [in]    HANDLE hCam        相机句柄
601  *  \param [in]    uint32_t nDelay 接到触发信号后延迟多少us开始计时
602  *  \retval MVST_SUCCESS            : 成功
603  */
604 MVGIGE_API MVSTATUS_CODES __stdcall MVSetTimerDelay(HANDLE hCam,uint32_t nDelay);
605
606 /*!
607  * \brief    读取定时器计时时长
608  * \param [in]    HANDLE hCam        相机句柄
609  * \param [out]    uint32_t * pDuration    定时器计时时长
610  *  \retval MVST_SUCCESS            : 成功
611  */
612 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTimerDuration(HANDLE hCam,uint32_t *pDuration);
613
614 /*!
615  * \brief    读取定时器计时时长取值范围
616  * \param [in]    HANDLE hCam        相机句柄
617  * \param [out]    uint32_t * pMin    定时器计时时长最小值
618  * \param [out]    uint32_t * pMax    定时器计时时长最大值
619  *  \retval MVST_SUCCESS            : 成功
620  */
621 MVGIGE_API MVSTATUS_CODES __stdcall MVGetTimerDurationRange(HANDLE hCam,uint32_t *pMin,uint32_t *pMax);
622
623 /*! 
624 *  \brief    当闪光同步源选为Timer1时MVSetStobeSource(hCam,LineSource_Timer1Active)
625             设置Timer1在开始计时后,计时多长时间。
626  *  \param [in]    HANDLE hCam
627  *  \param [in]    uint32_t nDuration 设置Timer1在开始计时后,计时多长时间(us)。即输出高/低电平的脉冲宽度。
628  *  \retval MVST_SUCCESS            : 成功
629  */
630 MVGIGE_API MVSTATUS_CODES __stdcall MVSetTimerDuration(HANDLE hCam,uint32_t nDuration);
631
632
633 /*!
634  *  \brief 将Bayer格式的8bit单通道图转换为BGR格式的8Bit三通道图
635  *  \param [in]    HANDLE hCam    相机句柄
636  *  \param [in]    void * psrc    单通道图像的指针
637  *  \param [out]    void * pdst    三通道图像指针
638  *  \param [in]    unsigned int dststep    三通道图像一行图像的字节数。通常为图像宽度*3,但是会为了4字节对齐会补几个字节。
639  *  \param [in]    unsigned int width    图像宽度
640  *  \param [in]    unsigned int height    图像高度
641  *  \param [in]    MV_PixelFormatEnums pixelformat    像素格式,由MVGetPixelFormat取得
642  *  \retval      MVST_SUCCESS            : 成功
643  */
644 MVGIGE_API MVSTATUS_CODES __stdcall MVBayerToBGR(HANDLE hCam, void *psrc,void *pdst,unsigned int dststep,unsigned int width,unsigned int height,MV_PixelFormatEnums pixelformat);
645
646 /*!
647  *  \brief 将Bayer格式的8bit单通道图转换为BGR格式的8Bit三通道图
648  *  \param [in]    HANDLE hCam    相机句柄
649  *  \param [in]    MV_IMAGE_INFO * pInfo    采集Callback函数中传来的图像信息指针
650  *  \param [out]    MVImage * pImage    转换结果图像的指针
651  *  \retval      MVST_SUCCESS            : 成功
652  */
653 MVGIGE_API MVSTATUS_CODES __stdcall MVImageBayerToBGR(HANDLE hCam,MV_IMAGE_INFO *pInfo,MVImage *pImage);
654
655
656 /*!
657  *  \brief 将Bayer格式的8bit单通道图转换为BGR格式的8Bit三通道图,同时调整图像的GAMMA,颜色和反差
658  *  \param [in]    HANDLE hCam    相机句柄
659  *  \param [in]    MV_IMAGE_INFO * pInfo    采集Callback函数中传来的图像信息指针
660  *  \param [out]    MVImage * pImage    转换结果图像的指针
661  *  \param [in]    double fGamma            Gamma校正值,1为不校正,<1时,将暗部提升。
662  *  \param [in]    BOOL bColorCorrect        是否进行颜色校正,进行颜色校正后,图像会变得更鲜艳。
663  *  \param [in]    int nContrast            是否调整反差,范围为0-50,当该值大于0时,图像反差会更强。
664  *  \retval      MVST_SUCCESS            : 成功
665  */
666 MVGIGE_API MVSTATUS_CODES __stdcall MVImageBayerToBGREx( HANDLE hCam,MV_IMAGE_INFO *pInfo,MVImage *pImage,double fGamma,BOOL bColorCorrect,int nContrast );
667
668 /*!
669  *  \brief BGR格式三通道图像缩放
670  *  \param [in]    HANDLE hCam    相机句柄
671  *  \param [in]    unsigned char * pSrc 源图像指针
672  *  \param [in]    int srcWidth    源图像宽度
673  *  \param [in]    int srcHeight    源图像高度
674  *  \param [out]    unsigned char * pDst    缩放后图像指针
675  *  \param [in]    double fFactorX    缩放比例
676  *  \param [in]    double fFactorY    缩放比例
677  *  \retval      MVST_SUCCESS            : 成功
678  */
679 MVGIGE_API MVSTATUS_CODES __stdcall MVZoomImageBGR(HANDLE hCam,unsigned char *pSrc,int srcWidth,int srcHeight, unsigned char *pDst,double fFactorX,double fFactorY);
680
681 /*!
682  *  \brief    获取数据传输的统计信息
683  *  \param [in]    HANDLE hCam    相机句柄
684  *  \param [out]    MVStreamStatistic * pStatistic    统计信息
685  *  \retval      JMVST_SUCCESS            : 成功
686  */
687 MVGIGE_API MVSTATUS_CODES __stdcall MVGetStreamStatistic(HANDLE hCam, MVStreamStatistic *pStatistic );
688
689
690
691 /*!
692  *  \brief    读取并应用某组用户预设的参数
693  *  \param [in]    HANDLE hCam        相机句柄
694  *  \param [in]    UserSetSelectorEnums userset
695  *  \retval      MVST_SUCCESS            : 成功
696  */
697 MVGIGE_API MVSTATUS_CODES __stdcall MVLoadUserSet(HANDLE hCam,UserSetSelectorEnums userset);
698
699 /*!
700  *  \brief    将当前相机的参数保存到用户设置中。
701  *  \param [in]    HANDLE hCam        相机句柄
702  *  \param [in]    UserSetSelectorEnums userset
703  *  \retval      MVST_SUCCESS            : 成功
704  */
705 MVGIGE_API MVSTATUS_CODES __stdcall MVSaveUserSet(HANDLE hCam,UserSetSelectorEnums userset);
706
707 /*!
708  *  \brief    设置相机上电开机时默认读取并应用哪一组用户设置
709  *  \param [in]    HANDLE hCam        相机句柄
710  *  \param [in]    UserSetSelectorEnums userset
711  *  \retval      MVST_SUCCESS            : 成功
712  */
713 MVGIGE_API MVSTATUS_CODES __stdcall MVSetDefaultUserSet(HANDLE hCam,UserSetSelectorEnums userset);
714
715 /*!
716  *  \brief    读取相机上电开机时默认读取并应用哪一组用户设置
717  *  \param [in]    HANDLE hCam        相机句柄
718  *  \param [out]    UserSetSelectorEnums* pUserset    用户设置
719  *  \retval      MVST_SUCCESS            : 成功
720  */
721 MVGIGE_API MVSTATUS_CODES __stdcall MVGetDefaultUserSet(HANDLE hCam, UserSetSelectorEnums *pUserset);
722
723 /*!
724  *  \brief 图像翻转
725  *  \param [in]    HANDLE hCam    相机句柄
726  *  \param [in]    MVImage * pSrcImage    源图像指针
727  *  \param [out] MVImage * pDstImage    结果图像指针。如果为NULL,则翻转的结果还在源图像内。
728  *  \param [in]    ImageFlipType flipType    翻转类型。FlipHorizontal:左右翻转,FlipVertical:上下翻转,FlipBoth:旋转180度
729  *  \retval      MVST_SUCCESS            : 成功
730  */
731 MVGIGE_API MVSTATUS_CODES __stdcall MVImageFlip(HANDLE hCam,MVImage *pSrcImage,MVImage *pDstImage,ImageFlipType flipType);
732
733
734 /*!
735  *  \brief 图像旋转
736  *  \param [in]    HANDLE hCam    相机句柄
737  *  \param [in]    MVImage * pSrcImage    源图像指针
738  *  \param [out] MVImage * pDstImage    结果图像指针,不能为NULL。结果图像的宽度和高度应该和源图像的宽度和高度互换。
739  *  \param [in]    ImageRotateType roateType    旋转类型:Rotate90DegCw, Rotate90DegCcw
740  *  \retval      MVST_SUCCESS            : 成功
741  */
742 MVGIGE_API MVSTATUS_CODES __stdcall MVImageRotate(HANDLE hCam,MVImage *pSrcImage,MVImage *pDstImage, ImageRotateType roateType);
743
744 /*!
745  *  \brief 将彩色BGR三通道24bit图像转换为灰度单通道8bit图像
746  *  \param [in]    HANDLE hCam    相机句柄
747  *  \param [in]    unsigned char * psrc    彩色BGR三通道24bit图像指针
748  *  \param [out]    unsigned char * pdst    灰度单通道8bit图像指针
749  *  \param [in]    unsigned int width    图像宽度
750  *  \param [in]    unsigned int height    图像高度
751  *  \retval      MVST_SUCCESS            : 成功
752  */
753 MVGIGE_API MVSTATUS_CODES __stdcall MVBGRToGray(HANDLE hCam,unsigned char *psrc,unsigned char *pdst,unsigned int width,unsigned int height);
754
755 /*!
756  *  \brief 将彩色BGR三通道24bit图像转换为灰度单通道8bit图像
757  *  \param [in]    HANDLE hCam    相机句柄
758  *  \param [in]    MVImage * pSrcImage    彩色BGR三通道24bit图像指针
759  *  \param [out]    MVImage * pDstImage    灰度单通道8bit图像指针。宽度高度必须和源图相同
760  *  \retval      MVST_SUCCESS            : 成功
761  */
762 MVGIGE_API MVSTATUS_CODES __stdcall MVImageBGRToGray(HANDLE hCam,MVImage *pSrcImage,MVImage *pDstImage);
763
764
765 /*!
766  *  \brief    将彩色BGR三通道24bit图像转换为YUV图像 
767  *  \param [in]    HANDLE hCam    相机句柄
768  *  \param [in]    MVImage * pSrcImage    彩色BGR三通道24bit图像指针
769  *  \param [out]    unsigned char * pDst    YUV图像指针 (YUV422)
770  *  \retval      MVST_SUCCESS            : 成功
771  */
772 MVGIGE_API MVSTATUS_CODES __stdcall MVImageBGRToYUV(HANDLE hCam,MVImage *pSrcImage,unsigned char *pDst);
773
774 /*!
775  *  \brief 将灰度单通道8bit图像转换为彩色BGR三通道24bit图像。转换后三个通道的值是相同的。
776  *  \param [in]    HANDLE hCam    相机句柄
777  *  \param [in]    unsigned char * psrc    灰度单通道8bit图像指针
778  *  \param [out]    unsigned char * pdst    彩色BGR三通道24bit图像指针
779  *  \param [in]    unsigned int width    图像宽度
780  *  \param [in]    unsigned int height    图像高度
781  *  \retval      MVST_SUCCESS            : 成功
782  */
783 MVGIGE_API MVSTATUS_CODES __stdcall MVGrayToBGR(HANDLE hCam,unsigned char *pSrc,unsigned char *pDst,int width,int height);
784
785 /*!
786  *  \brief 获取当前自动曝光模式
787  *  \param [in]    HANDLE hCam    相机句柄
788  *  \param [out]    ExposureAutoEnums * pExposureAuto    当前自动曝光模式
789  *  \retval      MVST_SUCCESS            : 成功
790  */
791 MVGIGE_API MVSTATUS_CODES __stdcall MVGetExposureAuto( HANDLE hCam,ExposureAutoEnums *pExposureAuto);
792 /*!
793  *  \brief 设置自动曝光模式
794  *  \param [in]    HANDLE hCam    相机句柄
795  *  \param [in]    ExposureAutoEnums ExposureAuto    自动曝光模式
796  *  \retval      MVST_SUCCESS            : 成功
797  */
798 MVGIGE_API MVSTATUS_CODES __stdcall MVSetExposureAuto( HANDLE hCam,ExposureAutoEnums ExposureAuto);
799
800 /*!    
801  *  \brief 获取当前自动增益模式
802  *  \param [in]    HANDLE hCam    相机句柄
803  *  \param [out]    GainAutoEnums * pGainAuto    当前自动增益模式的
804  *  \retval      MVST_SUCCESS            : 成功
805  */
806 MVGIGE_API MVSTATUS_CODES __stdcall MVGetGainAuto( HANDLE hCam,GainAutoEnums *pGainAuto);
807 /*!
808  *  \brief 设置当前自动增益模式
809  *  \param [in]    HANDLE hCam    相机句柄
810  *  \param [in]    GainAutoEnums GainAuto    自动增益模式
811  *  \retval      MVST_SUCCESS            : 成功
812  */
813 MVGIGE_API MVSTATUS_CODES __stdcall MVSetGainAuto( HANDLE hCam,GainAutoEnums GainAuto);
814
815 /*!
816  *  \brief 获取当前自动白平衡模式
817  *  \param [in]    HANDLE hCam    相机句柄
818  *  \param [out]    BalanceWhiteAutoEnums * pBalanceWhiteAuto    当前自动白平衡模式
819  *  \retval      MVST_SUCCESS            : 成功
820  */
821 MVGIGE_API MVSTATUS_CODES __stdcall MVGetBalanceWhiteAuto( HANDLE hCam,BalanceWhiteAutoEnums *pBalanceWhiteAuto);
822 /*!
823  *  \brief 设置自动白平衡模式
824  *  \param [in]    HANDLE hCam    相机句柄
825  *  \param [in]    BalanceWhiteAutoEnums BalanceWhiteAuto    自动白平衡模式
826  *  \retval      MVST_SUCCESS            : 成功
827  */
828 MVGIGE_API MVSTATUS_CODES __stdcall MVSetBalanceWhiteAuto( HANDLE hCam,BalanceWhiteAutoEnums BalanceWhiteAuto);
829
830 /*!
831  *  \brief 获取自动调整增益时,增益调整范围的最小值
832  *  \param [in]    HANDLE hCam    相机句柄
833  *  \param [out]    double * pAutoGainLowerLimit    增益调整范围的最小值
834  *  \retval      MVST_SUCCESS            : 成功
835  */
836 MVGIGE_API MVSTATUS_CODES __stdcall MVGetAutoGainLowerLimit( HANDLE hCam,double *pAutoGainLowerLimit);
837 /*!
838  *  \brief 设置自动调整增益时,增益调整范围的最小值
839  *  \param [in]    HANDLE hCam    相机句柄
840  *  \param [in]    double fAutoGainLowerLimit    增益调整范围的最小值
841  *  \retval      MVST_SUCCESS            : 成功
842  */
843 MVGIGE_API MVSTATUS_CODES __stdcall MVSetAutoGainLowerLimit( HANDLE hCam,double fAutoGainLowerLimit);
844
845 /*!
846  *  \brief 获取自动调整增益时,增益调整范围的最大值
847  *  \param [in]    HANDLE hCam    相机句柄
848  *  \param [out]    double * pAutoGainUpperLimit    增益调整范围的最大值
849  *  \retval      MVST_SUCCESS            : 成功
850  */
851 MVGIGE_API MVSTATUS_CODES __stdcall MVGetAutoGainUpperLimit( HANDLE hCam,double *pAutoGainUpperLimit);
852 /*!
853  *  \brief 设置自动调整增益时,增益调整范围的最大值
854  *  \param [in]    HANDLE hCam    相机句柄
855  *  \param [in]    double fAutoGainUpperLimit    曝光时间调整范围的最小值
856  *  \retval      MVST_SUCCESS            : 成功
857  */
858 MVGIGE_API MVSTATUS_CODES __stdcall MVSetAutoGainUpperLimit( HANDLE hCam,double fAutoGainUpperLimit);
859
860 /*!
861  *  \brief 获取自动调整曝光时间时,曝光时间调整范围的最小值
862  *  \param [in]    HANDLE hCam    相机句柄
863  *  \param [out]    double * pAutoExposureTimeLowerLimit    曝光时间调整范围的最小值
864  *  \retval      MVST_SUCCESS            : 成功
865  */
866 MVGIGE_API MVSTATUS_CODES __stdcall MVGetAutoExposureTimeLowerLimit( HANDLE hCam,double *pAutoExposureTimeLowerLimit);
867 /*!
868  *  \brief 设置自动调整曝光时间时,曝光时间调整范围的最小值
869  *  \param [in]    HANDLE hCam    相机句柄
870  *  \param [in]    double fAutoExposureTimeLowerLimit    曝光时间调整范围的最大值
871  *  \retval      MVST_SUCCESS            : 成功
872  */
873 MVGIGE_API MVSTATUS_CODES __stdcall MVSetAutoExposureTimeLowerLimit( HANDLE hCam,double fAutoExposureTimeLowerLimit);
874
875 /*!
876  *  \brief 获取自动调整曝光时间时,曝光时间调整范围的最大值
877  *  \param [in]    HANDLE hCam    相机句柄
878  *  \param [out]    double * pAutoExposureTimeUpperLimit    曝光时间调整范围的最大值
879  *  \retval      MVST_SUCCESS            : 成功
880  */
881 MVGIGE_API MVSTATUS_CODES __stdcall MVGetAutoExposureTimeUpperLimit( HANDLE hCam,double *pAutoExposureTimeUpperLimit);
882 /*!
883  *  \brief 设置自动调整曝光时间时,曝光时间调整范围的最大值
884  *  \param [in]    HANDLE hCam    相机句柄
885  *  \param [in]    double fAutoExposureTimeUpperLimit
886  *  \retval      MVST_SUCCESS            : 成功
887  */
888 MVGIGE_API MVSTATUS_CODES __stdcall MVSetAutoExposureTimeUpperLimit( HANDLE hCam,double fAutoExposureTimeUpperLimit);
889
890 /*!
891  *  \brief 获取自动调整亮度(曝光、增益)时,期望调整到的图像亮度
892  *  \param [in]    HANDLE hCam    相机句柄
893  *  \param [out]    int * pAutoTargetValue    期望调整到的图像亮度
894  *  \retval      MVST_SUCCESS            : 成功
895  */
896 MVGIGE_API MVSTATUS_CODES __stdcall MVGetAutoTargetValue( HANDLE hCam,int *pAutoTargetValue);
897 /*!
898  *  \brief 设置自动调整亮度(曝光、增益)时,期望调整到的图像亮度
899  *  \param [in]    HANDLE hCam    相机句柄
900  *  \param [in]    int nAutoTargetValue    期望调整到的图像亮度
901  *  \retval      MVST_SUCCESS            : 成功
902  */
903 MVGIGE_API MVSTATUS_CODES __stdcall MVSetAutoTargetValue( HANDLE hCam,int nAutoTargetValue);
904
905 /*!
906  *  \brief 当自动增益和自动曝光时间都打开时,获取哪一个值优先调整
907  *  \param [in]    HANDLE hCam    相机句柄
908  *  \param [out]    AutoFunctionProfileEnums * pAutoFunctionProfile    增益优先或曝光时间优先
909  *  \retval      MVST_SUCCESS            : 成功
910  */
911 MVGIGE_API MVSTATUS_CODES __stdcall MVGetAutoFunctionProfile( HANDLE hCam,AutoFunctionProfileEnums *pAutoFunctionProfile);
912 /*!
913  *  \brief 当自动增益和自动曝光时间都打开时,设置哪一个值优先调整
914  *  \param [in]    HANDLE hCam    相机句柄
915  *  \param [in]    AutoFunctionProfileEnums AutoFunctionProfile    增益优先或曝光时间优先
916  *  \retval      MVST_SUCCESS            : 成功
917  */
918 MVGIGE_API MVSTATUS_CODES __stdcall MVSetAutoFunctionProfile( HANDLE hCam,AutoFunctionProfileEnums AutoFunctionProfile);
919
920 /*!
921  *  \brief    自动增益或自动曝光时,图像亮度与目标亮度差异的容差。
922  *  \param [in]    HANDLE hCam    相机句柄
923  *  \param [out]    int * pAutoThreshold    图像亮度与目标亮度差异的容差
924  *  \retval      MVST_SUCCESS            : 成功
925  */
926 MVGIGE_API MVSTATUS_CODES __stdcall MVGetAutoThreshold( HANDLE hCam,int *pAutoThreshold);
927 /*!
928  *  \brief 自动增益或自动曝光时,图像亮度与目标亮度差异的容差。
929  *  \param [in]    HANDLE hCam    相机句柄
930  *  \param [in]    int nAutoThreshold    图像亮度与目标亮度差异的容差
931  *  \retval      MVST_SUCCESS            : 成功
932  */
933 MVGIGE_API MVSTATUS_CODES __stdcall MVSetAutoThreshold( HANDLE hCam,int nAutoThreshold);
934
935 /*!
936  *  \brief 获取当前伽马值
937  *  \param [in]    HANDLE hCam    相机句柄
938  *  \param [out]    double * pGamma    当前伽马值
939  *  \retval      MVST_SUCCESS            : 成功
940  */
941 MVGIGE_API MVSTATUS_CODES __stdcall MVGetGamma( HANDLE hCam, double *pGamma );
942 /*!
943  *  \brief 获取伽马值可设置的范围
944  *  \param [in]    HANDLE hCam    相机句柄
945  *  \param [out]    double * pGammaMin    伽马最小值
946  *  \param [out]    double * pGammaMax    伽马最大值
947  *  \retval      MVST_SUCCESS            : 成功
948  */
949 MVGIGE_API MVSTATUS_CODES __stdcall MVGetGammaRange( HANDLE hCam, double *pGammaMin, double *pGammaMax);
950 /*!
951  *  \brief 设置伽马值
952  *  \param [in]    HANDLE hCam    相机句柄
953  *  \param [in]    double fGamma    伽马值
954  *  \retval      MVST_SUCCESS            : 成功
955  */
956 MVGIGE_API MVSTATUS_CODES __stdcall MVSetGamma( HANDLE hCam,double fGamma);
957 /*!
958  *  \brief 设置查找表
959  *  \param [in]    HANDLE hCam    相机句柄
960  *  \param [in]    unsigned long * pLUT    查找表数组,unsigned long pLUT[1024];
961  *  \param [in]    int nCnt    查找表数组单元个数,必须是1024
962  *  \retval      MVST_SUCCESS            : 成功
963  */
964 MVGIGE_API MVSTATUS_CODES __stdcall MVSetLUT( HANDLE hCam,unsigned long *pLUT,int nCnt );
965
966 /*!
967  *  \brief 使用查找表
968  *  \param [in]    HANDLE hCam 相机句柄
969  *  \param [in]    BOOL bEnable 是否允许
970  *  \retval      MVST_SUCCESS            : 成功
971  */
972 MVGIGE_API MVSTATUS_CODES __stdcall MVSetEnableLUT( HANDLE hCam,BOOL bEnable );
973
974 /*!
975  *  \brief 获取当前是否使用查找表状态
976  *  \param [in]    HANDLE hCam
977  *  \param [out]    BOOL * bEnable    当前是否使用查找表状态
978  *  \retval      MVST_SUCCESS            : 成功
979  */
980 MVGIGE_API MVSTATUS_CODES __stdcall MVGetEnableLUT( HANDLE hCam,BOOL *bEnable );
981
982     /*!
983      *  \brief 采集一帧图像。
984      *  \param [in]    HANDLE hCam    相机句柄
985      *  \param [out]    HANDLE hImage    图像句柄。保存采集到的图像。
986      *  \param [in]    unsigned long nWaitMs    等待多长时间,单位ms
987      *  \retval      MVST_SUCCESS            : 成功
988      */
989     MVGIGE_API MVSTATUS_CODES __stdcall MVSingleGrab(HANDLE hCam, HANDLE hImage, unsigned long nWaitMs);
990     /*!
991      *  \brief 当计算机收到新的图像,而上一帧的Callback函数还没有执行完,SDK中会扔掉新的一帧图像。此函数可以获取扔掉的帧数。
992      *  \param [in]    HANDLE hCam
993      *  \param [out]    unsigned long * pDroppedFrames    扔掉的帧数
994      *  \retval      MVST_SUCCESS            : 成功
995      */
996     MVGIGE_API MVSTATUS_CODES __stdcall MVGetDroppedFrame(HANDLE hCam,unsigned long *pDroppedFrames);
997 #ifdef __cplusplus
998 }
999 #endif
1000
1001 #endif //MVGIGE_H_INCLUDE_