提交 | 用户 | age
|
4b03ae
|
1 |
|
Q |
2 |
#ifndef _MV_CAMERA_PARAMS_H_
|
|
3 |
#define _MV_CAMERA_PARAMS_H_
|
|
4 |
|
|
5 |
#include "PixelType.h"
|
|
6 |
|
|
7 |
// 设备类型定义
|
|
8 |
#define MV_UNKNOW_DEVICE 0x00000000 // 未知设备类型,保留意义
|
|
9 |
#define MV_GIGE_DEVICE 0x00000001 // GigE设备
|
|
10 |
#define MV_1394_DEVICE 0x00000002 // 1394-a/b 设备
|
|
11 |
#define MV_USB_DEVICE 0x00000004 // USB3.0 设备
|
|
12 |
#define MV_CAMERALINK_DEVICE 0x00000008 // CameraLink设备
|
|
13 |
|
|
14 |
typedef struct _MV_GIGE_DEVICE_INFO_
|
|
15 |
{
|
|
16 |
unsigned int nIpCfgOption;
|
|
17 |
unsigned int nIpCfgCurrent; //IP configuration:bit31-static bit30-dhcp bit29-lla
|
|
18 |
unsigned int nCurrentIp; //curtent ip
|
|
19 |
unsigned int nCurrentSubNetMask; //curtent subnet mask
|
|
20 |
unsigned int nDefultGateWay; //current gateway
|
|
21 |
unsigned char chManufacturerName[32];
|
|
22 |
unsigned char chModelName[32];
|
|
23 |
unsigned char chDeviceVersion[32];
|
|
24 |
unsigned char chManufacturerSpecificInfo[48];
|
|
25 |
unsigned char chSerialNumber[16];
|
|
26 |
unsigned char chUserDefinedName[16];
|
|
27 |
|
|
28 |
unsigned int nNetExport; // 网口IP地址
|
|
29 |
|
|
30 |
unsigned int nReserved[4];
|
|
31 |
|
|
32 |
}MV_GIGE_DEVICE_INFO;
|
|
33 |
|
|
34 |
#define INFO_MAX_BUFFER_SIZE 64
|
|
35 |
typedef struct _MV_USB3_DEVICE_INFO_
|
|
36 |
{
|
|
37 |
unsigned char CrtlInEndPoint; //控制输入端点
|
|
38 |
unsigned char CrtlOutEndPoint; //控制输出端点
|
|
39 |
unsigned char StreamEndPoint; //流端点
|
|
40 |
unsigned char EventEndPoint; //事件端点
|
|
41 |
unsigned short idVendor; //供应商ID号
|
|
42 |
unsigned short idProduct; //产品ID号
|
|
43 |
unsigned int nDeviceNumber; //设备序列号
|
|
44 |
unsigned char chDeviceGUID[INFO_MAX_BUFFER_SIZE]; //设备GUID号
|
|
45 |
unsigned char chVendorName[INFO_MAX_BUFFER_SIZE]; //供应商名字
|
|
46 |
unsigned char chModelName[INFO_MAX_BUFFER_SIZE]; //型号名字
|
|
47 |
unsigned char chFamilyName[INFO_MAX_BUFFER_SIZE]; //家族名字
|
|
48 |
unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE]; //设备版本号
|
|
49 |
unsigned char chManufacturerName[INFO_MAX_BUFFER_SIZE]; //制造商名字
|
|
50 |
unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE]; //序列号
|
|
51 |
unsigned char chUserDefinedName[INFO_MAX_BUFFER_SIZE]; //用户自定义名字
|
|
52 |
unsigned int nbcdUSB; //支持的USB协议
|
|
53 |
unsigned int nReserved[3]; //保留字节
|
|
54 |
}MV_USB3_DEVICE_INFO;
|
|
55 |
|
|
56 |
// 设备信息
|
|
57 |
typedef struct _MV_CC_DEVICE_INFO_
|
|
58 |
{
|
|
59 |
// common info
|
|
60 |
unsigned short nMajorVer;
|
|
61 |
unsigned short nMinorVer;
|
|
62 |
unsigned int nMacAddrHigh; // MAC 地址
|
|
63 |
unsigned int nMacAddrLow;
|
|
64 |
|
|
65 |
unsigned int nTLayerType; // 设备传输层协议类型,e.g. MV_GIGE_DEVICE
|
|
66 |
|
|
67 |
unsigned int nReserved[4];
|
|
68 |
|
|
69 |
union
|
|
70 |
{
|
|
71 |
MV_GIGE_DEVICE_INFO stGigEInfo;
|
|
72 |
MV_USB3_DEVICE_INFO stUsb3VInfo;
|
|
73 |
// more ...
|
|
74 |
}SpecialInfo;
|
|
75 |
|
|
76 |
}MV_CC_DEVICE_INFO;
|
|
77 |
|
|
78 |
// 网络传输的相关信息
|
|
79 |
typedef struct _MV_NETTRANS_INFO_
|
|
80 |
{
|
|
81 |
int64_t nReviceDataSize; // 已接收数据大小 [统计StartGrabbing和StopGrabbing之间的数据量]
|
|
82 |
int nThrowFrameCount; // 丢帧数量
|
|
83 |
unsigned int nReserved[5];
|
|
84 |
|
|
85 |
}MV_NETTRANS_INFO;
|
|
86 |
|
|
87 |
|
|
88 |
// 最多支持的传输层实例个数
|
|
89 |
#define MV_MAX_TLS_NUM 8
|
|
90 |
// 最大支持的设备个数
|
|
91 |
#define MV_MAX_DEVICE_NUM 256
|
|
92 |
|
|
93 |
// 设备信息列表
|
|
94 |
typedef struct _MV_CC_DEVICE_INFO_LIST_
|
|
95 |
{
|
|
96 |
unsigned int nDeviceNum; // 在线设备数量
|
|
97 |
MV_CC_DEVICE_INFO* pDeviceInfo[MV_MAX_DEVICE_NUM]; // 支持最多256个设备
|
|
98 |
|
|
99 |
}MV_CC_DEVICE_INFO_LIST;
|
|
100 |
|
|
101 |
|
|
102 |
// 输出帧的信息
|
|
103 |
typedef struct _MV_FRAME_OUT_INFO_
|
|
104 |
{
|
|
105 |
unsigned short nWidth; // 图像宽
|
|
106 |
unsigned short nHeight; // 图像高
|
|
107 |
enum MvGvspPixelType enPixelType; // 像素格式
|
|
108 |
|
|
109 |
/*以下字段暂不支持*/
|
|
110 |
unsigned int nFrameNum; // 帧号
|
|
111 |
unsigned int nDevTimeStampHigh; // 时间戳高32位
|
|
112 |
unsigned int nDevTimeStampLow; // 时间戳低32位
|
|
113 |
unsigned int nReserved0; // 保留,8字节对齐
|
|
114 |
int64_t nHostTimeStamp; // 主机生成的时间戳
|
|
115 |
|
|
116 |
unsigned int nFrameLen;
|
|
117 |
|
|
118 |
unsigned int nLostPacket; // 本帧丢包数
|
|
119 |
unsigned int nReserved[2];
|
|
120 |
}MV_FRAME_OUT_INFO;
|
|
121 |
|
|
122 |
// 输出帧的信息
|
|
123 |
typedef struct _MV_FRAME_OUT_INFO_EX_
|
|
124 |
{
|
|
125 |
unsigned short nWidth; // 图像宽
|
|
126 |
unsigned short nHeight; // 图像高
|
|
127 |
enum MvGvspPixelType enPixelType; // 像素格式
|
|
128 |
|
|
129 |
/*以下字段暂不支持*/
|
|
130 |
unsigned int nFrameNum; // 帧号
|
|
131 |
unsigned int nDevTimeStampHigh; // 时间戳高32位
|
|
132 |
unsigned int nDevTimeStampLow; // 时间戳低32位
|
|
133 |
unsigned int nReserved0; // 保留,8字节对齐
|
|
134 |
int64_t nHostTimeStamp; // 主机生成的时间戳
|
|
135 |
|
|
136 |
unsigned int nFrameLen;
|
|
137 |
|
|
138 |
// 以下为chunk新增水印信息
|
|
139 |
// 设备水印时标
|
|
140 |
unsigned int nSecondCount;
|
|
141 |
unsigned int nCycleCount;
|
|
142 |
unsigned int nCycleOffset;
|
|
143 |
|
|
144 |
float fGain;
|
|
145 |
float fExposureTime;
|
|
146 |
unsigned int nAverageBrightness; //平均亮度
|
|
147 |
|
|
148 |
// 白平衡相关
|
|
149 |
unsigned int nRed;
|
|
150 |
unsigned int nGreen;
|
|
151 |
unsigned int nBlue;
|
|
152 |
|
|
153 |
unsigned int nFrameCounter;
|
|
154 |
unsigned int nTriggerIndex; //触发计数
|
|
155 |
|
|
156 |
//Line 输入/输出
|
|
157 |
unsigned int nInput; //输入
|
|
158 |
unsigned int nOutput; //输出
|
|
159 |
|
|
160 |
// ROI区域
|
|
161 |
unsigned short nOffsetX;
|
|
162 |
unsigned short nOffsetY;
|
|
163 |
unsigned short nChunkWidth;
|
|
164 |
unsigned short nChunkHeight;
|
|
165 |
|
|
166 |
unsigned int nLostPacket; // 本帧丢包数
|
|
167 |
|
|
168 |
unsigned int nReserved[39]; // 保留
|
|
169 |
}MV_FRAME_OUT_INFO_EX;
|
|
170 |
|
|
171 |
typedef struct _MV_DISPLAY_FRAME_INFO_
|
|
172 |
{
|
|
173 |
void* hWnd;
|
|
174 |
unsigned char* pData;
|
|
175 |
unsigned int nDataLen;
|
|
176 |
unsigned short nWidth; // 图像宽
|
|
177 |
unsigned short nHeight; // 图像高
|
|
178 |
enum MvGvspPixelType enPixelType; // 像素格式
|
|
179 |
unsigned int nRes[4];
|
|
180 |
|
|
181 |
}MV_DISPLAY_FRAME_INFO;
|
|
182 |
|
|
183 |
// 保存图片格式
|
|
184 |
enum MV_SAVE_IAMGE_TYPE
|
|
185 |
{
|
|
186 |
MV_Image_Undefined = 0,
|
|
187 |
MV_Image_Bmp = 1,
|
|
188 |
MV_Image_Jpeg = 2,
|
|
189 |
MV_Image_Png = 3, //不支持
|
|
190 |
MV_Image_Tif = 4, //不支持
|
|
191 |
};
|
|
192 |
// 保存图片参数
|
|
193 |
typedef struct _MV_SAVE_IMAGE_PARAM_T_
|
|
194 |
{
|
|
195 |
unsigned char* pData; // [IN] 输入数据缓存
|
|
196 |
unsigned int nDataLen; // [IN] 输入数据大小
|
|
197 |
enum MvGvspPixelType enPixelType; // [IN] 输入数据的像素格式
|
|
198 |
unsigned short nWidth; // [IN] 图像宽
|
|
199 |
unsigned short nHeight; // [IN] 图像高
|
|
200 |
|
|
201 |
unsigned char* pImageBuffer; // [OUT] 输出图片缓存
|
|
202 |
unsigned int nImageLen; // [OUT] 输出图片大小
|
|
203 |
unsigned int nBufferSize; // [IN] 提供的输出缓冲区大小
|
|
204 |
enum MV_SAVE_IAMGE_TYPE enImageType; // [IN] 输出图片格式
|
|
205 |
|
|
206 |
}MV_SAVE_IMAGE_PARAM;
|
|
207 |
|
|
208 |
// 图片保存参数
|
|
209 |
typedef struct _MV_SAVE_IMAGE_PARAM_T_EX_
|
|
210 |
{
|
|
211 |
unsigned char* pData; // [IN] 输入数据缓存
|
|
212 |
unsigned int nDataLen; // [IN] 输入数据大小
|
|
213 |
enum MvGvspPixelType enPixelType; // [IN] 输入数据的像素格式
|
|
214 |
unsigned short nWidth; // [IN] 图像宽
|
|
215 |
unsigned short nHeight; // [IN] 图像高
|
|
216 |
|
|
217 |
unsigned char* pImageBuffer; // [OUT] 输出图片缓存
|
|
218 |
unsigned int nImageLen; // [OUT] 输出图片大小
|
|
219 |
unsigned int nBufferSize; // [IN] 提供的输出缓冲区大小
|
|
220 |
enum MV_SAVE_IAMGE_TYPE enImageType; // [IN] 输出图片格式
|
|
221 |
unsigned int nJpgQuality; // [IN] 编码质量, (50-99]
|
|
222 |
|
|
223 |
// [IN] Bayer格式转为RGB24的插值方法 0-最近邻 1-双线性 2-Hamilton
|
|
224 |
unsigned int iMethodValue;
|
|
225 |
unsigned int nReserved[3];
|
|
226 |
|
|
227 |
}MV_SAVE_IMAGE_PARAM_EX;
|
|
228 |
|
|
229 |
// 图像转换结构体
|
|
230 |
typedef struct _MV_PIXEL_CONVERT_PARAM_T_
|
|
231 |
{
|
|
232 |
unsigned short nWidth; // [IN] 图像宽
|
|
233 |
unsigned short nHeight; // [IN] 图像高
|
|
234 |
|
|
235 |
enum MvGvspPixelType enSrcPixelType; // [IN] 源像素格式
|
|
236 |
unsigned char* pSrcData; // [IN] 输入数据缓存
|
|
237 |
unsigned int nSrcDataLen; // [IN] 输入数据大小
|
|
238 |
|
|
239 |
enum MvGvspPixelType enDstPixelType; // [IN] 目标像素格式
|
|
240 |
unsigned char* pDstBuffer; // [OUT] 输出数据缓存
|
|
241 |
unsigned int nDstLen; // [OUT] 输出数据大小
|
|
242 |
unsigned int nDstBufferSize; // [IN] 提供的输出缓冲区大小
|
|
243 |
unsigned int nRes[4];
|
|
244 |
}MV_CC_PIXEL_CONVERT_PARAM;
|
|
245 |
|
|
246 |
|
|
247 |
|
|
248 |
// 采集模式
|
|
249 |
typedef enum _MV_CAM_ACQUISITION_MODE_
|
|
250 |
{
|
|
251 |
MV_ACQ_MODE_SINGLE = 0, // 单帧模式
|
|
252 |
MV_ACQ_MODE_MUTLI = 1, // 多帧模式
|
|
253 |
MV_ACQ_MODE_CONTINUOUS = 2, // 持续采集模式
|
|
254 |
|
|
255 |
}MV_CAM_ACQUISITION_MODE;
|
|
256 |
|
|
257 |
// 增益模式
|
|
258 |
typedef enum _MV_CAM_GAIN_MODE_
|
|
259 |
{
|
|
260 |
MV_GAIN_MODE_OFF = 0, // 关闭
|
|
261 |
MV_GAIN_MODE_ONCE = 1, // 一次
|
|
262 |
MV_GAIN_MODE_CONTINUOUS = 2, // 连续
|
|
263 |
|
|
264 |
}MV_CAM_GAIN_MODE;
|
|
265 |
|
|
266 |
// 曝光模式
|
|
267 |
typedef enum _MV_CAM_EXPOSURE_MODE_
|
|
268 |
{
|
|
269 |
MV_EXPOSURE_MODE_TIMED = 0, // Timed
|
|
270 |
MV_EXPOSURE_MODE_TRIGGER_WIDTH = 1, // TriggerWidth
|
|
271 |
}MV_CAM_EXPOSURE_MODE;
|
|
272 |
|
|
273 |
// 自动曝光模式
|
|
274 |
typedef enum _MV_CAM_EXPOSURE_AUTO_MODE_
|
|
275 |
{
|
|
276 |
MV_EXPOSURE_AUTO_MODE_OFF = 0, // 关闭
|
|
277 |
MV_EXPOSURE_AUTO_MODE_ONCE = 1, // 一次
|
|
278 |
MV_EXPOSURE_AUTO_MODE_CONTINUOUS = 2, // 连续
|
|
279 |
|
|
280 |
}MV_CAM_EXPOSURE_AUTO_MODE;
|
|
281 |
|
|
282 |
typedef enum _MV_CAM_TRIGGER_MODE_
|
|
283 |
{
|
|
284 |
MV_TRIGGER_MODE_OFF = 0, // 关闭
|
|
285 |
MV_TRIGGER_MODE_ON = 1, // 打开
|
|
286 |
|
|
287 |
}MV_CAM_TRIGGER_MODE;
|
|
288 |
|
|
289 |
typedef enum _MV_CAM_GAMMA_SELECTOR_
|
|
290 |
{
|
|
291 |
MV_GAMMA_SELECTOR_USER = 1,
|
|
292 |
MV_GAMMA_SELECTOR_SRGB = 2,
|
|
293 |
|
|
294 |
}MV_CAM_GAMMA_SELECTOR;
|
|
295 |
|
|
296 |
typedef enum _MV_CAM_BALANCEWHITE_AUTO_
|
|
297 |
{
|
|
298 |
MV_BALANCEWHITE_AUTO_OFF = 0,
|
|
299 |
MV_BALANCEWHITE_AUTO_ONCE = 2,
|
|
300 |
MV_BALANCEWHITE_AUTO_CONTINUOUS = 1, // 连续
|
|
301 |
|
|
302 |
}MV_CAM_BALANCEWHITE_AUTO;
|
|
303 |
|
|
304 |
typedef enum _MV_CAM_TRIGGER_SOURCE_
|
|
305 |
{
|
|
306 |
MV_TRIGGER_SOURCE_LINE0 = 0,
|
|
307 |
MV_TRIGGER_SOURCE_LINE1 = 1,
|
|
308 |
MV_TRIGGER_SOURCE_LINE2 = 2,
|
|
309 |
MV_TRIGGER_SOURCE_LINE3 = 3,
|
|
310 |
MV_TRIGGER_SOURCE_COUNTER0 = 4,
|
|
311 |
|
|
312 |
MV_TRIGGER_SOURCE_SOFTWARE = 7,
|
|
313 |
MV_TRIGGER_SOURCE_FrequencyConverter= 8,
|
|
314 |
|
|
315 |
}MV_CAM_TRIGGER_SOURCE;
|
|
316 |
|
|
317 |
|
|
318 |
// GigEVision IP Configuration
|
|
319 |
#define MV_IP_CFG_STATIC 0x05000000
|
|
320 |
#define MV_IP_CFG_DHCP 0x06000000
|
|
321 |
#define MV_IP_CFG_LLA 0x04000000
|
|
322 |
|
|
323 |
// GigEVision Net Transfer Mode
|
|
324 |
#define MV_NET_TRANS_DRIVER 0x00000001
|
|
325 |
#define MV_NET_TRANS_SOCKET 0x00000002
|
|
326 |
|
|
327 |
|
|
328 |
// 信息类型
|
|
329 |
#define MV_MATCH_TYPE_NET_DETECT 0x00000001 // 网络流量和丢包信息
|
|
330 |
#define MV_MATCH_TYPE_USB_DETECT 0x00000002 // host接收到来自U3V设备的字节总数
|
|
331 |
|
|
332 |
|
|
333 |
// 某个节点对应的子节点个数最大值
|
|
334 |
#define MV_MAX_XML_NODE_NUM_C 128
|
|
335 |
|
|
336 |
// 节点名称字符串最大长度
|
|
337 |
#define MV_MAX_XML_NODE_STRLEN_C 64
|
|
338 |
|
|
339 |
//节点String值最大长度
|
|
340 |
#define MV_MAX_XML_STRVALUE_STRLEN_C 64
|
|
341 |
|
|
342 |
// 节点描述字段最大长度
|
|
343 |
#define MV_MAX_XML_DISC_STRLEN_C 512
|
|
344 |
|
|
345 |
// 最多的单元数
|
|
346 |
#define MV_MAX_XML_ENTRY_NUM 10
|
|
347 |
|
|
348 |
// 父节点个数上限
|
|
349 |
#define MV_MAX_XML_PARENTS_NUM 8
|
|
350 |
|
|
351 |
//每个已经实现单元的名称长度
|
|
352 |
#define MV_MAX_XML_SYMBOLIC_STRLEN_C 64
|
|
353 |
|
|
354 |
#define MV_MAX_XML_SYMBOLIC_NUM 64
|
|
355 |
|
|
356 |
//重发包默认最大包数量
|
|
357 |
|
|
358 |
// 全匹配的一种信息结构体
|
|
359 |
typedef struct _MV_ALL_MATCH_INFO_
|
|
360 |
{
|
|
361 |
unsigned int nType; // 需要输出的信息类型,e.g. MV_MATCH_TYPE_NET_DETECT
|
|
362 |
void* pInfo; // 输出的信息缓存,由调用者分配
|
|
363 |
unsigned int nInfoSize; // 信息缓存的大小
|
|
364 |
|
|
365 |
}MV_ALL_MATCH_INFO;
|
|
366 |
|
|
367 |
// 网络流量和丢包信息反馈结构体,对应类型为 MV_MATCH_TYPE_NET_DETECT
|
|
368 |
typedef struct _MV_MATCH_INFO_NET_DETECT_
|
|
369 |
{
|
|
370 |
int64_t nReviceDataSize; // 已接收数据大小 [统计StartGrabbing和StopGrabbing之间的数据量]
|
|
371 |
int64_t nLostPacketCount; // 丢失的包数量
|
|
372 |
unsigned int nLostFrameCount; // 丢帧数量
|
|
373 |
unsigned int nReserved[5]; // 保留
|
|
374 |
}MV_MATCH_INFO_NET_DETECT;
|
|
375 |
|
|
376 |
// host收到从u3v设备端的总字节数,对应类型为 MV_MATCH_TYPE_USB_DETECT
|
|
377 |
typedef struct _MV_MATCH_INFO_USB_DETECT_
|
|
378 |
{
|
|
379 |
int64_t nReviceDataSize; // 已接收数据大小 [统计OpenDevicce和CloseDevice之间的数据量]
|
|
380 |
unsigned int nRevicedFrameCount; // 已收到的帧数
|
|
381 |
unsigned int nErrorFrameCount; // 错误帧数
|
|
382 |
unsigned int nReserved[2]; // 保留
|
|
383 |
}MV_MATCH_INFO_USB_DETECT;
|
|
384 |
|
|
385 |
typedef struct _MV_IMAGE_BASIC_INFO_
|
|
386 |
{
|
|
387 |
// width
|
|
388 |
unsigned short nWidthValue;
|
|
389 |
unsigned short nWidthMin;
|
|
390 |
unsigned int nWidthMax;
|
|
391 |
unsigned int nWidthInc;
|
|
392 |
|
|
393 |
// height
|
|
394 |
unsigned int nHeightValue;
|
|
395 |
unsigned int nHeightMin;
|
|
396 |
unsigned int nHeightMax;
|
|
397 |
unsigned int nHeightInc;
|
|
398 |
|
|
399 |
// framerate
|
|
400 |
float fFrameRateValue;
|
|
401 |
float fFrameRateMin;
|
|
402 |
float fFrameRateMax;
|
|
403 |
|
|
404 |
// 像素格式
|
|
405 |
unsigned int enPixelType; // 当前的像素格式
|
|
406 |
unsigned int nSupportedPixelFmtNum; // 支持的像素格式种类
|
|
407 |
unsigned int enPixelList[MV_MAX_XML_SYMBOLIC_NUM];
|
|
408 |
unsigned int nReserved[8];
|
|
409 |
|
|
410 |
}MV_IMAGE_BASIC_INFO;
|
|
411 |
|
|
412 |
// 异常消息类型
|
|
413 |
#define MV_EXCEPTION_DEV_DISCONNECT 0x00008001 // 设备断开连接
|
|
414 |
#define MV_EXCEPTION_VERSION_CHECK 0x00008002 // SDK与驱动版本不匹配
|
|
415 |
|
|
416 |
|
|
417 |
// 设备的访问模式
|
|
418 |
// 独占权限,其他APP只允许读CCP寄存器
|
|
419 |
#define MV_ACCESS_Exclusive 1
|
|
420 |
// 可以从5模式下抢占权限,然后以独占权限打开
|
|
421 |
#define MV_ACCESS_ExclusiveWithSwitch 2
|
|
422 |
// 控制权限,其他APP允许读所有寄存器
|
|
423 |
#define MV_ACCESS_Control 3
|
|
424 |
// 可以从5的模式下抢占权限,然后以控制权限打开
|
|
425 |
#define MV_ACCESS_ControlWithSwitch 4
|
|
426 |
// 以可被抢占的控制权限打开
|
|
427 |
#define MV_ACCESS_ControlSwitchEnable 5
|
|
428 |
// 可以从5的模式下抢占权限,然后以可被抢占的控制权限打开
|
|
429 |
#define MV_ACCESS_ControlSwitchEnableWithKey 6
|
|
430 |
// 读模式打开设备,适用于控制权限下
|
|
431 |
#define MV_ACCESS_Monitor 7
|
|
432 |
|
|
433 |
|
|
434 |
/************************************************************************/
|
|
435 |
/* 封装了GenICam的C接口相关参数定义 */
|
|
436 |
/************************************************************************/
|
|
437 |
|
|
438 |
// 每个节点对应的接口类型
|
|
439 |
enum MV_XML_InterfaceType
|
|
440 |
{
|
|
441 |
IFT_IValue, //!> IValue interface
|
|
442 |
IFT_IBase, //!> IBase interface
|
|
443 |
IFT_IInteger, //!> IInteger interface
|
|
444 |
IFT_IBoolean, //!> IBoolean interface
|
|
445 |
IFT_ICommand, //!> ICommand interface
|
|
446 |
IFT_IFloat, //!> IFloat interface
|
|
447 |
IFT_IString, //!> IString interface
|
|
448 |
IFT_IRegister, //!> IRegister interface
|
|
449 |
IFT_ICategory, //!> ICategory interface
|
|
450 |
IFT_IEnumeration, //!> IEnumeration interface
|
|
451 |
IFT_IEnumEntry, //!> IEnumEntry interface
|
|
452 |
IFT_IPort, //!> IPort interface
|
|
453 |
};
|
|
454 |
|
|
455 |
// 节点的访问模式
|
|
456 |
enum MV_XML_AccessMode
|
|
457 |
{
|
|
458 |
AM_NI, //!< Not implemented
|
|
459 |
AM_NA, //!< Not available
|
|
460 |
AM_WO, //!< Write Only
|
|
461 |
AM_RO, //!< Read Only
|
|
462 |
AM_RW, //!< Read and Write
|
|
463 |
AM_Undefined, //!< Object is not yet initialized
|
|
464 |
AM_CycleDetect, //!< used internally for AccessMode cycle detection
|
|
465 |
|
|
466 |
};
|
|
467 |
|
|
468 |
enum MV_XML_Visibility
|
|
469 |
{
|
|
470 |
V_Beginner = 0, //!< Always visible
|
|
471 |
V_Expert = 1, //!< Visible for experts or Gurus
|
|
472 |
V_Guru = 2, //!< Visible for Gurus
|
|
473 |
V_Invisible = 3, //!< Not Visible
|
|
474 |
V_Undefined = 99 //!< Object is not yet initialized
|
|
475 |
};
|
|
476 |
|
|
477 |
typedef enum _MV_GIGE_EVENT_
|
|
478 |
{
|
|
479 |
MV_EVENT_ExposureEnd = 1, // 每帧的曝光结束
|
|
480 |
MV_EVENT_FrameStartOvertrigger = 2, // 帧开始触发
|
|
481 |
MV_EVENT_AcquisitionStartOvertrigger = 3, // 取流开始过触发
|
|
482 |
MV_EVENT_FrameStart = 4, // 每帧的开始
|
|
483 |
MV_EVENT_AcquisitionStart = 5, // 开始取流(连续或单帧模式)
|
|
484 |
MV_EVENT_EventOverrun = 6 // 事件过触发
|
|
485 |
}MV_GIGE_EVENT;
|
|
486 |
|
|
487 |
|
|
488 |
//
|
|
489 |
|
|
490 |
// 单个节点基本属性
|
|
491 |
typedef struct _MV_XML_NODE_FEATURE_
|
|
492 |
{
|
|
493 |
enum MV_XML_InterfaceType enType; // 节点类型
|
|
494 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
495 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
|
|
496 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
|
|
497 |
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
|
|
498 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
|
|
499 |
|
|
500 |
unsigned int nReserved[4];
|
|
501 |
}MV_XML_NODE_FEATURE;
|
|
502 |
|
|
503 |
// 节点列表
|
|
504 |
typedef struct _MV_XML_NODES_LIST_
|
|
505 |
{
|
|
506 |
unsigned int nNodeNum; // 节点个数
|
|
507 |
MV_XML_NODE_FEATURE stNodes[MV_MAX_XML_NODE_NUM_C];
|
|
508 |
}MV_XML_NODES_LIST;
|
|
509 |
|
|
510 |
|
|
511 |
|
|
512 |
typedef struct _MV_XML_FEATURE_Value_
|
|
513 |
{
|
|
514 |
enum MV_XML_InterfaceType enType; // 节点类型
|
|
515 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
|
|
516 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
|
|
517 |
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
|
|
518 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
|
|
519 |
unsigned int nReserved[4];
|
|
520 |
}MV_XML_FEATURE_Value;
|
|
521 |
|
|
522 |
typedef struct _MV_XML_FEATURE_Base_
|
|
523 |
{
|
|
524 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
525 |
}MV_XML_FEATURE_Base;
|
|
526 |
|
|
527 |
typedef struct _MV_XML_FEATURE_Integer_
|
|
528 |
{
|
|
529 |
char strName[MV_MAX_XML_NODE_STRLEN_C];
|
|
530 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
|
|
531 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // 目前暂不支持
|
|
532 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
|
|
533 |
|
|
534 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
535 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
536 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
537 |
int64_t nValue; // 当前值
|
|
538 |
int64_t nMinValue; // 最小值
|
|
539 |
int64_t nMaxValue; // 最大值
|
|
540 |
int64_t nIncrement; // 增量
|
|
541 |
|
|
542 |
unsigned int nReserved[4];
|
|
543 |
|
|
544 |
}MV_XML_FEATURE_Integer;
|
|
545 |
|
|
546 |
typedef struct _MV_XML_FEATURE_Boolean_
|
|
547 |
{
|
|
548 |
char strName[MV_MAX_XML_NODE_STRLEN_C];
|
|
549 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
|
|
550 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // 目前暂不支持
|
|
551 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
|
|
552 |
|
|
553 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
554 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
555 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
556 |
bool bValue; // 当前值
|
|
557 |
|
|
558 |
unsigned int nReserved[4];
|
|
559 |
}MV_XML_FEATURE_Boolean;
|
|
560 |
|
|
561 |
typedef struct _MV_XML_FEATURE_Command_
|
|
562 |
{
|
|
563 |
char strName[MV_MAX_XML_NODE_STRLEN_C];
|
|
564 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
|
|
565 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // 目前暂不支持
|
|
566 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
|
|
567 |
|
|
568 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
569 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
570 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
571 |
|
|
572 |
unsigned int nReserved[4];
|
|
573 |
}MV_XML_FEATURE_Command;
|
|
574 |
|
|
575 |
typedef struct _MV_XML_FEATURE_Float_
|
|
576 |
{
|
|
577 |
char strName[MV_MAX_XML_NODE_STRLEN_C];
|
|
578 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
|
|
579 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // 目前暂不支持
|
|
580 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
|
|
581 |
|
|
582 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
583 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
584 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
585 |
double dfValue; // 当前值
|
|
586 |
double dfMinValue; // 最小值
|
|
587 |
double dfMaxValue; // 最大值
|
|
588 |
double dfIncrement; // 增量
|
|
589 |
|
|
590 |
unsigned int nReserved[4];
|
|
591 |
}MV_XML_FEATURE_Float;
|
|
592 |
|
|
593 |
typedef struct _MV_XML_FEATURE_String_
|
|
594 |
{
|
|
595 |
char strName[MV_MAX_XML_NODE_STRLEN_C];
|
|
596 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
|
|
597 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // 目前暂不支持
|
|
598 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
|
|
599 |
|
|
600 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
601 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
602 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
603 |
char strValue[MV_MAX_XML_STRVALUE_STRLEN_C];// 当前值
|
|
604 |
|
|
605 |
unsigned int nReserved[4];
|
|
606 |
}MV_XML_FEATURE_String;
|
|
607 |
|
|
608 |
typedef struct _MV_XML_FEATURE_Register_
|
|
609 |
{
|
|
610 |
char strName[MV_MAX_XML_NODE_STRLEN_C];
|
|
611 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
|
|
612 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // 目前暂不支持
|
|
613 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
|
|
614 |
|
|
615 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
616 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
617 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
618 |
int64_t nAddrValue; // 当前值
|
|
619 |
|
|
620 |
unsigned int nReserved[4];
|
|
621 |
}MV_XML_FEATURE_Register;
|
|
622 |
|
|
623 |
typedef struct _MV_XML_FEATURE_Category_
|
|
624 |
{
|
|
625 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
|
|
626 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
|
|
627 |
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
|
|
628 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
|
|
629 |
|
|
630 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
631 |
|
|
632 |
unsigned int nReserved[4];
|
|
633 |
}MV_XML_FEATURE_Category;
|
|
634 |
|
|
635 |
typedef struct _MV_XML_FEATURE_EnumEntry_
|
|
636 |
{
|
|
637 |
char strName[MV_MAX_XML_NODE_STRLEN_C];
|
|
638 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
|
|
639 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // 目前暂不支持
|
|
640 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
|
|
641 |
int bIsImplemented;
|
|
642 |
int nParentsNum;
|
|
643 |
MV_XML_NODE_FEATURE stParentsList[MV_MAX_XML_PARENTS_NUM];
|
|
644 |
|
|
645 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
646 |
int64_t nValue; // 当前值
|
|
647 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
648 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
649 |
int nReserved[8];
|
|
650 |
|
|
651 |
}MV_XML_FEATURE_EnumEntry;
|
|
652 |
|
|
653 |
|
|
654 |
typedef struct _MV_XML_FEATURE_Enumeration_
|
|
655 |
{
|
|
656 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
657 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
|
|
658 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
|
|
659 |
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
|
|
660 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
|
|
661 |
|
|
662 |
int nSymbolicNum; // Symbolic数
|
|
663 |
char strCurrentSymbolic[MV_MAX_XML_SYMBOLIC_STRLEN_C]; // 当前Symbolic索引
|
|
664 |
char strSymbolic[MV_MAX_XML_SYMBOLIC_NUM][MV_MAX_XML_SYMBOLIC_STRLEN_C];
|
|
665 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
666 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
667 |
int64_t nValue; // 当前值
|
|
668 |
|
|
669 |
unsigned int nReserved[4];
|
|
670 |
}MV_XML_FEATURE_Enumeration;
|
|
671 |
|
|
672 |
|
|
673 |
typedef struct _MV_XML_FEATURE_Port_
|
|
674 |
{
|
|
675 |
enum MV_XML_Visibility enVisivility; //是否可见
|
|
676 |
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
|
|
677 |
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
|
|
678 |
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
|
|
679 |
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
|
|
680 |
|
|
681 |
enum MV_XML_AccessMode enAccessMode; // 访问模式
|
|
682 |
int bIsLocked; // 是否锁定。0-否;1-是 目前暂不支持
|
|
683 |
|
|
684 |
unsigned int nReserved[4];
|
|
685 |
}MV_XML_FEATURE_Port;
|
|
686 |
|
|
687 |
|
|
688 |
|
|
689 |
typedef struct _MV_XML_CAMERA_FEATURE_
|
|
690 |
{
|
|
691 |
enum MV_XML_InterfaceType enType;
|
|
692 |
union
|
|
693 |
{
|
|
694 |
MV_XML_FEATURE_Integer stIntegerFeature;
|
|
695 |
MV_XML_FEATURE_Float stFloatFeature;
|
|
696 |
MV_XML_FEATURE_Enumeration stEnumerationFeature;
|
|
697 |
MV_XML_FEATURE_String stStringFeature;
|
|
698 |
}SpecialFeature;
|
|
699 |
|
|
700 |
}MV_XML_CAMERA_FEATURE;
|
|
701 |
|
|
702 |
|
|
703 |
typedef struct _MVCC_ENUMVALUE_T
|
|
704 |
{
|
|
705 |
unsigned int nCurValue; // 当前值
|
|
706 |
unsigned int nSupportedNum; // 数据的有效数据个数
|
|
707 |
unsigned int nSupportValue[MV_MAX_XML_SYMBOLIC_NUM];
|
|
708 |
|
|
709 |
unsigned int nReserved[4];
|
|
710 |
}MVCC_ENUMVALUE;
|
|
711 |
|
|
712 |
typedef struct _MVCC_INTVALUE_T
|
|
713 |
{
|
|
714 |
unsigned int nCurValue; // 当前值
|
|
715 |
unsigned int nMax;
|
|
716 |
unsigned int nMin;
|
|
717 |
unsigned int nInc;
|
|
718 |
|
|
719 |
unsigned int nReserved[4];
|
|
720 |
}MVCC_INTVALUE;
|
|
721 |
|
|
722 |
typedef struct _MVCC_FLOATVALUE_T
|
|
723 |
{
|
|
724 |
float fCurValue; // 当前值
|
|
725 |
float fMax;
|
|
726 |
float fMin;
|
|
727 |
|
|
728 |
unsigned int nReserved[4];
|
|
729 |
}MVCC_FLOATVALUE;
|
|
730 |
|
|
731 |
typedef struct _MVCC_STRINGVALUE_T
|
|
732 |
{
|
|
733 |
char chCurValue[256]; // 当前值
|
|
734 |
|
|
735 |
unsigned int nReserved[4];
|
|
736 |
}MVCC_STRINGVALUE;
|
|
737 |
|
|
738 |
#endif /* _MV_CAMERA_PARAMS_H_ */
|