QuakeGod
2022-01-16 326d3e312c74726814c39c9d112faab03c4a167c
提交 | 用户 | 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_ */