CameraParams.h 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918
  1. #ifndef _MV_CAMERA_PARAMS_H_
  2. #define _MV_CAMERA_PARAMS_H_
  3. #include "PixelType.h"
  4. #ifndef __cplusplus
  5. typedef char bool;
  6. #define true 1
  7. #define false 0
  8. #endif
  9. // ch:设备类型定义 | en:Device Type Definition
  10. #define MV_UNKNOW_DEVICE 0x00000000 // ch:未知设备类型,保留意义 | en:Unknown Device Type, Reserved
  11. #define MV_GIGE_DEVICE 0x00000001 // ch:GigE设备 | en:GigE Device
  12. #define MV_1394_DEVICE 0x00000002 // ch:1394-a/b 设备 | en:1394-a/b Device
  13. #define MV_USB_DEVICE 0x00000004 // ch:USB3.0 设备 | en:USB3.0 Device
  14. #define MV_CAMERALINK_DEVICE 0x00000008 // ch:CameraLink设备 | en:CameraLink Device
  15. typedef struct _MV_GIGE_DEVICE_INFO_
  16. {
  17. unsigned int nIpCfgOption;
  18. unsigned int nIpCfgCurrent; //IP configuration:bit31-static bit30-dhcp bit29-lla
  19. unsigned int nCurrentIp; //curtent | en:
  20. unsigned int nCurrentSubNetMask; //curtent subnet mask
  21. unsigned int nDefultGateWay; //current gateway | en
  22. unsigned char chManufacturerName[32];
  23. unsigned char chModelName[32];
  24. unsigned char chDeviceVersion[32];
  25. unsigned char chManufacturerSpecificInfo[48];
  26. unsigned char chSerialNumber[16];
  27. unsigned char chUserDefinedName[16];
  28. unsigned int nNetExport; // ch:网口IP地址 | en:GIGE IP Address
  29. unsigned int nReserved[4];
  30. }MV_GIGE_DEVICE_INFO;
  31. #define INFO_MAX_BUFFER_SIZE 64 //新定义256
  32. typedef struct _MV_USB3_DEVICE_INFO_
  33. {
  34. unsigned char CrtlInEndPoint; // ch:控制输入端点 | en:Control input endpoint
  35. unsigned char CrtlOutEndPoint; // ch:控制输出端点 | en:Control output endpoint
  36. unsigned char StreamEndPoint; // ch:流端点 | en:Flow endpoint
  37. unsigned char EventEndPoint; // ch:事件端点 | en:Event endpoint
  38. unsigned short idVendor; // ch:供应商ID号 | en:Vendor ID Number
  39. unsigned short idProduct; // ch:产品ID号 | en:Device ID Number
  40. unsigned int nDeviceNumber; // ch:设备序列号 | en:Device Serial Number
  41. unsigned char chDeviceGUID[INFO_MAX_BUFFER_SIZE]; // ch:设备GUID号 | en:Device GUID Number
  42. unsigned char chVendorName[INFO_MAX_BUFFER_SIZE]; // ch:供应商名字 | en:Vendor Name
  43. unsigned char chModelName[INFO_MAX_BUFFER_SIZE]; // ch:型号名字 | en:Model Name
  44. unsigned char chFamilyName[INFO_MAX_BUFFER_SIZE]; // ch:家族名字 | en:Family Name
  45. unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE]; // ch:设备版本号 | en:Device Version
  46. unsigned char chManufacturerName[INFO_MAX_BUFFER_SIZE]; // ch:制造商名字 | en:Manufacturer Name
  47. unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE]; // ch:序列号 | en:Serial Number
  48. unsigned char chUserDefinedName[INFO_MAX_BUFFER_SIZE]; // ch:用户自定义名字 | en:User Defined Name
  49. unsigned int nbcdUSB; // ch:支持的USB协议 | en:Support USB Protocol
  50. unsigned int nReserved[3]; // ch:保留字节 | en:Reserved bytes
  51. }MV_USB3_DEVICE_INFO;
  52. typedef struct _MV_CamL_DEV_INFO_
  53. {
  54. unsigned char chPortID[INFO_MAX_BUFFER_SIZE];
  55. unsigned char chModelName[INFO_MAX_BUFFER_SIZE];
  56. unsigned char chFamilyName[INFO_MAX_BUFFER_SIZE];
  57. unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE];
  58. unsigned char chManufacturerName[INFO_MAX_BUFFER_SIZE];
  59. unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE];
  60. unsigned int nReserved[38];
  61. }MV_CamL_DEV_INFO;
  62. // ch:设备信息 | en:Device Infomation
  63. typedef struct _MV_CC_DEVICE_INFO_
  64. {
  65. // ch:common info | en:common info
  66. unsigned short nMajorVer;
  67. unsigned short nMinorVer;
  68. unsigned int nMacAddrHigh; // ch:MAC 地址 | en:MAC Address
  69. unsigned int nMacAddrLow;
  70. unsigned int nTLayerType; // ch:设备传输层协议类型,e.g. MV_GIGE_DEVICE | en:Device Transport Layer Protocol Type, e.g. MV_GIGE_DEVICE
  71. unsigned int nReserved[4];
  72. union
  73. {
  74. MV_GIGE_DEVICE_INFO stGigEInfo;
  75. MV_USB3_DEVICE_INFO stUsb3VInfo;
  76. MV_CamL_DEV_INFO stCamLInfo;
  77. // more ...
  78. }SpecialInfo;
  79. }MV_CC_DEVICE_INFO;
  80. // ch:网络传输的相关信息 | en:Network transmission information
  81. typedef struct _MV_NETTRANS_INFO_
  82. {
  83. int64_t nReviceDataSize; // ch:已接收数据大小 [统计StartGrabbing和StopGrabbing之间的数据量] | en:Received Data Size [Calculate the Data Size between StartGrabbing and StopGrabbing]
  84. int nThrowFrameCount; // ch:丢帧数量 | en:Throw frame number
  85. unsigned int nNetRecvFrameCount;
  86. __int64 nRequestResendPacketCount; // 请求重发包数
  87. __int64 nResendPacketCount; // 重发包数
  88. }MV_NETTRANS_INFO;
  89. // ch:最多支持的传输层实例个数 | en:The maximum number of supported transport layer instances
  90. #define MV_MAX_TLS_NUM 8
  91. // ch:最大支持的设备个数 | en:The maximum number of supported devices
  92. #define MV_MAX_DEVICE_NUM 256
  93. // ch:设备信息列表 | en:Device Information List
  94. typedef struct _MV_CC_DEVICE_INFO_LIST_
  95. {
  96. unsigned int nDeviceNum; // ch:在线设备数量 | en:Online Device Number
  97. MV_CC_DEVICE_INFO* pDeviceInfo[MV_MAX_DEVICE_NUM]; // ch:支持最多256个设备 | en:Support up to 256 devices
  98. }MV_CC_DEVICE_INFO_LIST;
  99. // ch:输出帧的信息 | en:Output Frame Information
  100. typedef struct _MV_FRAME_OUT_INFO_
  101. {
  102. unsigned short nWidth; // ch:图像宽 | en:Image Width
  103. unsigned short nHeight; // ch:图像高 | en:Image Height
  104. enum MvGvspPixelType enPixelType; // ch:像素格式 | en:Pixel Type
  105. unsigned int nFrameNum; // ch:帧号 | en:Frame Number
  106. unsigned int nDevTimeStampHigh; // ch:时间戳高32位 | en:Timestamp high 32 bits
  107. unsigned int nDevTimeStampLow; // ch:时间戳低32位 | en:Timestamp low 32 bits
  108. unsigned int nReserved0; // ch:保留,8字节对齐 | en:Reserved, 8-byte aligned
  109. int64_t nHostTimeStamp; // ch:主机生成的时间戳 | en:Host-generated timestamp
  110. unsigned int nFrameLen;
  111. unsigned int nLostPacket; // 本帧丢包数
  112. unsigned int nReserved[2];
  113. }MV_FRAME_OUT_INFO;
  114. // ch:输出帧的信息 | en:Output Frame Information
  115. typedef struct _MV_FRAME_OUT_INFO_EX_
  116. {
  117. unsigned short nWidth; // ch:图像宽 | en:Image Width
  118. unsigned short nHeight; // ch:图像高 | en:Image Height
  119. enum MvGvspPixelType enPixelType; // ch:像素格式 | en:Pixel Type
  120. unsigned int nFrameNum; // ch:帧号 | en:Frame Number
  121. unsigned int nDevTimeStampHigh; // ch:时间戳高32位 | en:Timestamp high 32 bits
  122. unsigned int nDevTimeStampLow; // ch:时间戳低32位 | en:Timestamp low 32 bits
  123. unsigned int nReserved0; // ch:保留,8字节对齐 | en:Reserved, 8-byte aligned
  124. int64_t nHostTimeStamp; // ch:主机生成的时间戳 | en:Host-generated timestamp
  125. unsigned int nFrameLen;
  126. // ch:以下为chunk新增水印信息 | en:The followings are chunk add frame-specific information
  127. // ch:设备水印时标 | en:Device frame-specific time scale
  128. unsigned int nSecondCount;
  129. unsigned int nCycleCount;
  130. unsigned int nCycleOffset;
  131. float fGain;
  132. float fExposureTime;
  133. unsigned int nAverageBrightness; // ch:平均亮度 | en:Average brightness
  134. // ch:白平衡相关 | en:White balance
  135. unsigned int nRed;
  136. unsigned int nGreen;
  137. unsigned int nBlue;
  138. unsigned int nFrameCounter;
  139. unsigned int nTriggerIndex; // ch:触发计数 | en:Trigger Counting
  140. // ch:Line 输入/输出 | en:Line Input/Output
  141. unsigned int nInput; // ch:输入 | en:Input
  142. unsigned int nOutput; // ch:输出 | en:Output
  143. // ch:ROI区域 | en:ROI Region
  144. unsigned short nOffsetX;
  145. unsigned short nOffsetY;
  146. unsigned short nChunkWidth;
  147. unsigned short nChunkHeight;
  148. unsigned int nLostPacket; // ch:本帧丢包数 | en:Lost Pacekt Number In This Frame
  149. unsigned int nReserved[39]; // 保留
  150. }MV_FRAME_OUT_INFO_EX;
  151. // ch:图像结构体,输出图像指针地址及图像信息 | en:Image Struct, output the pointer of Image and the information of the specific image
  152. typedef struct _MV_FRAME_OUT_
  153. {
  154. unsigned char* pBufAddr; // ch:图像指针地址 | en: pointer of image
  155. MV_FRAME_OUT_INFO_EX stFrameInfo; // ch:图像信息 | en:information of the specific image
  156. unsigned int nRes[16]; // ch:保留 | en:reserved
  157. }MV_FRAME_OUT;
  158. typedef struct _MV_DISPLAY_FRAME_INFO_
  159. {
  160. void* hWnd; // ch:窗口句柄 | en:HWND
  161. unsigned char* pData; // ch:显示的数据 | en:Data Buffer
  162. unsigned int nDataLen; // ch:数据长度 | en:Data Size
  163. unsigned short nWidth; // ch:图像宽 | en:Width
  164. unsigned short nHeight; // ch:图像高 | en:Height
  165. enum MvGvspPixelType enPixelType; // ch:像素格式 | en:Pixel format
  166. unsigned int nRes[4];
  167. }MV_DISPLAY_FRAME_INFO;
  168. // ch:保存图片格式 | en:Save image type
  169. enum MV_SAVE_IAMGE_TYPE
  170. {
  171. MV_Image_Undefined = 0,
  172. MV_Image_Bmp = 1,
  173. MV_Image_Jpeg = 2,
  174. MV_Image_Png = 3, // ch:不支持 | en:Not support
  175. MV_Image_Tif = 4, // ch:不支持 | en:Not support
  176. };
  177. // ch:保存图片参数 | en:Save image type
  178. typedef struct _MV_SAVE_IMAGE_PARAM_T_
  179. {
  180. unsigned char* pData; // [IN] ch:输入数据缓存 | en:Input Data Buffer
  181. unsigned int nDataLen; // [IN] ch:输入数据大小 | en:Input Data Size
  182. enum MvGvspPixelType enPixelType; // [IN] ch:输入数据的像素格式 | en:Input Data Pixel Format
  183. unsigned short nWidth; // [IN] ch:图像宽 | en:Image Width
  184. unsigned short nHeight; // [IN] ch:图像高 | en:Image Height
  185. unsigned char* pImageBuffer; // [OUT] ch:输出图片缓存 | en:Output Image Buffer
  186. unsigned int nImageLen; // [OUT] ch:输出图片大小 | en:Output Image Size
  187. unsigned int nBufferSize; // [IN] ch:提供的输出缓冲区大小 | en:Output buffer size provided
  188. enum MV_SAVE_IAMGE_TYPE enImageType; // [IN] ch:输出图片格式 | en:Output Image Format
  189. }MV_SAVE_IMAGE_PARAM;
  190. // ch:图片保存参数 | en:Save Image Parameters
  191. typedef struct _MV_SAVE_IMAGE_PARAM_T_EX_
  192. {
  193. unsigned char* pData; // [IN] ch:输入数据缓存 | en:Input Data Buffer
  194. unsigned int nDataLen; // [IN] ch:输入数据大小 | en:Input Data Size
  195. enum MvGvspPixelType enPixelType; // [IN] ch:输入数据的像素格式 | en:Input Data Pixel Format
  196. unsigned short nWidth; // [IN] ch:图像宽 | en:Image Width
  197. unsigned short nHeight; // [IN] ch:图像高 | en:Image Height
  198. unsigned char* pImageBuffer; // [OUT] ch:输出图片缓存 | en:Output Image Buffer
  199. unsigned int nImageLen; // [OUT] ch:输出图片大小 | en:Output Image Size
  200. unsigned int nBufferSize; // [IN] ch:提供的输出缓冲区大小 | en:Output buffer size provided
  201. enum MV_SAVE_IAMGE_TYPE enImageType; // [IN] ch:输出图片格式 | en:Output Image Format
  202. unsigned int nJpgQuality; // [IN] ch:编码质量, (50-99] | en:Encoding quality, (50-99]
  203. // [IN] ch:Bayer格式转为RGB24的插值方法 0-最近邻 1-双线性 2-Hamilton (如果传入其它值则默认为最近邻)
  204. // [IN] en:Interpolation method of convert Bayer to RGB24 0-nearest neighbour 1-bilinearity 2-Hamilton
  205. unsigned int iMethodValue;
  206. unsigned int nReserved[3];
  207. }MV_SAVE_IMAGE_PARAM_EX;
  208. // ch:图像转换结构体 | en:Pixel convert structure
  209. typedef struct _MV_PIXEL_CONVERT_PARAM_T_
  210. {
  211. unsigned short nWidth; // [IN] ch:图像宽 | en:Width
  212. unsigned short nHeight; // [IN] ch:图像高 | en:Height
  213. enum MvGvspPixelType enSrcPixelType; // [IN] ch:源像素格式 | en:Source pixel format
  214. unsigned char* pSrcData; // [IN] ch:输入数据缓存 | en:Input data buffer
  215. unsigned int nSrcDataLen; // [IN] ch:输入数据大小 | en:Input data size
  216. enum MvGvspPixelType enDstPixelType; // [IN] ch:目标像素格式 | en:Destination pixel format
  217. unsigned char* pDstBuffer; // [OUT] ch:输出数据缓存 | en:Output data buffer
  218. unsigned int nDstLen; // [OUT] ch:输出数据大小 | en:Output data size
  219. unsigned int nDstBufferSize; // [IN] ch:提供的输出缓冲区大小 | en:Provided outbut buffer size
  220. unsigned int nRes[4];
  221. }MV_CC_PIXEL_CONVERT_PARAM;
  222. // ch:录像格式定义 | en:Record Format Type
  223. typedef enum _MV_RECORD_FORMAT_TYPE_
  224. {
  225. MV_FormatType_Undefined = 0,
  226. MV_FormatType_AVI = 1,
  227. }MV_RECORD_FORMAT_TYPE;
  228. // ch:录像参数 | en:Record Parameters
  229. typedef struct _MV_CC_RECORD_PARAM_T_
  230. {
  231. enum MvGvspPixelType enPixelType; // [IN] 输入数据的像素格式
  232. unsigned short nWidth; // [IN] 图像宽(指定目标参数时需为2的倍数)
  233. unsigned short nHeight; // [IN] 图像高(指定目标参数时需为2的倍数)
  234. float fFrameRate; // [IN] 帧率fps(1/16-120)
  235. unsigned int nBitRate; // [IN] 码率kbps(128kbps-16Mbps)
  236. MV_RECORD_FORMAT_TYPE enRecordFmtType; // [IN] 录像格式
  237. char* strFilePath; // [IN] 录像文件存放路径(如果路径中存在中文,需转成utf-8)
  238. unsigned int nRes[8];
  239. }MV_CC_RECORD_PARAM;
  240. // ch:录像数据 | en:Record Data
  241. typedef struct _MV_CC_INPUT_FRAME_INFO_T_
  242. {
  243. unsigned char* pData; // [IN] 图像数据指针
  244. unsigned int nDataLen; // [IN] 图像大小
  245. unsigned int nRes[8];
  246. }MV_CC_INPUT_FRAME_INFO;
  247. // ch:采集模式 | en:Acquisition mode
  248. typedef enum _MV_CAM_ACQUISITION_MODE_
  249. {
  250. MV_ACQ_MODE_SINGLE = 0, // ch:单帧模式 | en:Single Mode
  251. MV_ACQ_MODE_MUTLI = 1, // ch:多帧模式 | en:Multi Mode
  252. MV_ACQ_MODE_CONTINUOUS = 2, // ch:持续采集模式 | en:Continuous Mode
  253. }MV_CAM_ACQUISITION_MODE;
  254. // ch:增益模式 | en:Gain Mode
  255. typedef enum _MV_CAM_GAIN_MODE_
  256. {
  257. MV_GAIN_MODE_OFF = 0, // ch:关闭 | en:Single Mode
  258. MV_GAIN_MODE_ONCE = 1, // ch:一次 | en:Multi Mode
  259. MV_GAIN_MODE_CONTINUOUS = 2, // ch:连续 | en:Continuous Mode
  260. }MV_CAM_GAIN_MODE;
  261. // ch:曝光模式 | en:Exposure Mode
  262. typedef enum _MV_CAM_EXPOSURE_MODE_
  263. {
  264. MV_EXPOSURE_MODE_TIMED = 0, // Timed
  265. MV_EXPOSURE_MODE_TRIGGER_WIDTH = 1, // TriggerWidth
  266. }MV_CAM_EXPOSURE_MODE;
  267. // ch:自动曝光模式 | en:Auto Exposure Mode
  268. typedef enum _MV_CAM_EXPOSURE_AUTO_MODE_
  269. {
  270. MV_EXPOSURE_AUTO_MODE_OFF = 0, // ch:关闭 | en:Off
  271. MV_EXPOSURE_AUTO_MODE_ONCE = 1, // ch:一次 | en:Once
  272. MV_EXPOSURE_AUTO_MODE_CONTINUOUS = 2, // ch:连续 | en:Continuous
  273. }MV_CAM_EXPOSURE_AUTO_MODE;
  274. typedef enum _MV_CAM_TRIGGER_MODE_
  275. {
  276. MV_TRIGGER_MODE_OFF = 0, // ch:关闭 | en:Off
  277. MV_TRIGGER_MODE_ON = 1, // ch:打开 | en:ON
  278. }MV_CAM_TRIGGER_MODE;
  279. typedef enum _MV_CAM_GAMMA_SELECTOR_
  280. {
  281. MV_GAMMA_SELECTOR_USER = 1,
  282. MV_GAMMA_SELECTOR_SRGB = 2,
  283. }MV_CAM_GAMMA_SELECTOR;
  284. typedef enum _MV_CAM_BALANCEWHITE_AUTO_
  285. {
  286. MV_BALANCEWHITE_AUTO_OFF = 0,
  287. MV_BALANCEWHITE_AUTO_ONCE = 2,
  288. MV_BALANCEWHITE_AUTO_CONTINUOUS = 1, // ch:连续 | en:Continuous
  289. }MV_CAM_BALANCEWHITE_AUTO;
  290. typedef enum _MV_CAM_TRIGGER_SOURCE_
  291. {
  292. MV_TRIGGER_SOURCE_LINE0 = 0,
  293. MV_TRIGGER_SOURCE_LINE1 = 1,
  294. MV_TRIGGER_SOURCE_LINE2 = 2,
  295. MV_TRIGGER_SOURCE_LINE3 = 3,
  296. MV_TRIGGER_SOURCE_COUNTER0 = 4,
  297. MV_TRIGGER_SOURCE_SOFTWARE = 7,
  298. MV_TRIGGER_SOURCE_FrequencyConverter= 8,
  299. }MV_CAM_TRIGGER_SOURCE;
  300. typedef enum _MV_GIGE_TRANSMISSION_TYPE_
  301. {
  302. MV_GIGE_TRANSTYPE_UNICAST = 0x0, // ch:表示单播(默认) | en:Unicast mode
  303. MV_GIGE_TRANSTYPE_MULTICAST = 0x1, // ch:表示组播 | en:Multicast mode
  304. MV_GIGE_TRANSTYPE_LIMITEDBROADCAST = 0x2, // ch:表示局域网内广播,暂不支持 | en:Limited broadcast mode,not support
  305. MV_GIGE_TRANSTYPE_SUBNETBROADCAST = 0x3, // ch:表示子网内广播,暂不支持 | en:Subnet broadcast mode,not support
  306. MV_GIGE_TRANSTYPE_CAMERADEFINED = 0x4, // ch:表示从相机获取,暂不支持 | en:Transtype from camera,not support
  307. MV_GIGE_TRANSTYPE_UNICAST_DEFINED_PORT = 0x5, // ch:表示用户自定义应用端接收图像数据Port号 | en:User Defined Receive Data Port
  308. MV_GIGE_TRANSTYPE_UNICAST_WITHOUT_RECV = 0x00010000, // ch:表示设置了单播,但本实例不接收图像数据 | en:Unicast without receive data
  309. MV_GIGE_TRANSTYPE_MULTICAST_WITHOUT_RECV = 0x00010001, // ch:表示组播模式,但本实例不接收图像数据 | en:Multicast without receive data
  310. }MV_GIGE_TRANSMISSION_TYPE;
  311. // GigEVision IP Configuration
  312. #define MV_IP_CFG_STATIC 0x05000000
  313. #define MV_IP_CFG_DHCP 0x06000000
  314. #define MV_IP_CFG_LLA 0x04000000
  315. // GigEVision Net Transfer Mode
  316. #define MV_NET_TRANS_DRIVER 0x00000001
  317. #define MV_NET_TRANS_SOCKET 0x00000002
  318. // CameraLink Baud Rates (CLUINT32)
  319. #define MV_CAML_BAUDRATE_9600 0x00000001
  320. #define MV_CAML_BAUDRATE_19200 0x00000002
  321. #define MV_CAML_BAUDRATE_38400 0x00000004
  322. #define MV_CAML_BAUDRATE_57600 0x00000008
  323. #define MV_CAML_BAUDRATE_115200 0x00000010
  324. #define MV_CAML_BAUDRATE_230400 0x00000020
  325. #define MV_CAML_BAUDRATE_460800 0x00000040
  326. #define MV_CAML_BAUDRATE_921600 0x00000080
  327. #define MV_CAML_BAUDRATE_AUTOMAX 0x40000000
  328. // ch:信息类型 | en:Information Type
  329. #define MV_MATCH_TYPE_NET_DETECT 0x00000001 // ch:网络流量和丢包信息 | en:Network traffic and packet loss information
  330. #define MV_MATCH_TYPE_USB_DETECT 0x00000002 // ch:host接收到来自U3V设备的字节总数 | en:The total number of bytes host received from U3V device
  331. // ch:某个节点对应的子节点个数最大值 | en:The maximum number of child nodes corresponding to a node
  332. #define MV_MAX_XML_NODE_NUM_C 128
  333. // ch:节点名称字符串最大长度 | en:The maximum length of node name string
  334. #define MV_MAX_XML_NODE_STRLEN_C 64
  335. // ch:节点String值最大长度 | en:The maximum length of Node String
  336. #define MV_MAX_XML_STRVALUE_STRLEN_C 64
  337. // ch:节点描述字段最大长度 | en:The maximum length of the node description field
  338. #define MV_MAX_XML_DISC_STRLEN_C 512
  339. // ch:最多的单元数 | en:The maximum number of units
  340. #define MV_MAX_XML_ENTRY_NUM 10
  341. // ch:父节点个数上限 | en:The maximum number of parent nodes
  342. #define MV_MAX_XML_PARENTS_NUM 8
  343. // ch:每个已经实现单元的名称长度 | en:The length of the name of each unit that has been implemented
  344. #define MV_MAX_XML_SYMBOLIC_STRLEN_C 64
  345. #define MV_MAX_XML_SYMBOLIC_NUM 64
  346. // ch:重发包默认最大包数量 | en:The default maximum number of retransmission packets
  347. // ch:全匹配的一种信息结构体 | en:A fully matched information structure
  348. typedef struct _MV_ALL_MATCH_INFO_
  349. {
  350. unsigned int nType; // ch:需要输出的信息类型,e.g. MV_MATCH_TYPE_NET_DETECT | en:Information type need to output ,e.g. MV_MATCH_TYPE_NET_DETECT
  351. void* pInfo; // ch:输出的信息缓存,由调用者分配 | en:Output information cache, which is allocated by the caller
  352. unsigned int nInfoSize; // ch:信息缓存的大小 | en:Information cache size
  353. }MV_ALL_MATCH_INFO;
  354. // ch:网络流量和丢包信息反馈结构体,对应类型为 MV_MATCH_TYPE_NET_DETECT
  355. // en:Network traffic and packet loss feedback structure, the corresponding type is MV_MATCH_TYPE_NET_DETECT
  356. typedef struct _MV_MATCH_INFO_NET_DETECT_
  357. {
  358. int64_t nReviceDataSize; // ch:已接收数据大小 [统计StartGrabbing和StopGrabbing之间的数据量] | en:Received data size
  359. int64_t nLostPacketCount; // ch:丢失的包数量 | en:Number of packets lost
  360. unsigned int nLostFrameCount; // ch:丢帧数量 | en:Number of frames lost
  361. unsigned int nNetRecvFrameCount; // ch:保留 | en:Reserved
  362. __int64 nRequestResendPacketCount; // 请求重发包数
  363. __int64 nResendPacketCount; // 重发包数
  364. }MV_MATCH_INFO_NET_DETECT;
  365. // ch:host收到从u3v设备端的总字节数,对应类型为 MV_MATCH_TYPE_USB_DETECT | en:The total number of bytes host received from the u3v device side, the corresponding type is MV_MATCH_TYPE_USB_DETECT
  366. typedef struct _MV_MATCH_INFO_USB_DETECT_
  367. {
  368. int64_t nReviceDataSize; // ch:已接收数据大小 [统计OpenDevicce和CloseDevice之间的数据量] | en:Received data size
  369. unsigned int nRevicedFrameCount; // ch:已收到的帧数 | en:Number of frames received
  370. unsigned int nErrorFrameCount; // ch:错误帧数 | en:Number of error frames
  371. unsigned int nReserved[2]; // ch:保留 | en:Reserved
  372. }MV_MATCH_INFO_USB_DETECT;
  373. typedef struct _MV_IMAGE_BASIC_INFO_
  374. {
  375. // width
  376. unsigned short nWidthValue;
  377. unsigned short nWidthMin;
  378. unsigned int nWidthMax;
  379. unsigned int nWidthInc;
  380. // height
  381. unsigned int nHeightValue;
  382. unsigned int nHeightMin;
  383. unsigned int nHeightMax;
  384. unsigned int nHeightInc;
  385. // framerate
  386. float fFrameRateValue;
  387. float fFrameRateMin;
  388. float fFrameRateMax;
  389. // ch:像素格式 | en:pixel format
  390. unsigned int enPixelType; // ch:当前的像素格式 | en:Current pixel format
  391. unsigned int nSupportedPixelFmtNum; // ch:支持的像素格式种类 | en:Support pixel format
  392. unsigned int enPixelList[MV_MAX_XML_SYMBOLIC_NUM];
  393. unsigned int nReserved[8];
  394. }MV_IMAGE_BASIC_INFO;
  395. // ch: 异常消息类型 | en:Exception message type
  396. #define MV_EXCEPTION_DEV_DISCONNECT 0x00008001 // ch:设备断开连接 | en:The device is disconnected
  397. #define MV_EXCEPTION_VERSION_CHECK 0x00008002 // ch:SDK与驱动版本不匹配 | en:SDK does not match the driver version
  398. // ch:设备的访问模式 | en:Device Access Mode
  399. // ch:独占权限,其他APP只允许读CCP寄存器 | en:Exclusive authority, other APP is only allowed to read the CCP register
  400. #define MV_ACCESS_Exclusive 1
  401. // ch:可以从5模式下抢占权限,然后以独占权限打开 | en:You can seize the authority from the 5 mode, and then open with exclusive authority
  402. #define MV_ACCESS_ExclusiveWithSwitch 2
  403. // ch:控制权限,其他APP允许读所有寄存器 | en:Control authority, allows other APP reading all registers
  404. #define MV_ACCESS_Control 3
  405. // ch:可以从5的模式下抢占权限,然后以控制权限打开 | en:You can seize the authority from the 5 mode, and then open with control authority
  406. #define MV_ACCESS_ControlWithSwitch 4
  407. // ch:以可被抢占的控制权限打开 | en:Open with seized control authority
  408. #define MV_ACCESS_ControlSwitchEnable 5
  409. // ch:可以从5的模式下抢占权限,然后以可被抢占的控制权限打开 | en:You can seize the authority from the 5 mode, and then open with seized control authority
  410. #define MV_ACCESS_ControlSwitchEnableWithKey 6
  411. // ch:读模式打开设备,适用于控制权限下 | en:Open with read mode and is available under control authority
  412. #define MV_ACCESS_Monitor 7
  413. /************************************************************************/
  414. /* 封装了GenICam的C接口相关参数定义 */
  415. /* Package of GenICam C interface-related parameters definition */
  416. /************************************************************************/
  417. // ch:每个节点对应的接口类型 | en:Interface type corresponds to each node
  418. enum MV_XML_InterfaceType
  419. {
  420. IFT_IValue, //!> IValue interface
  421. IFT_IBase, //!> IBase interface
  422. IFT_IInteger, //!> IInteger interface
  423. IFT_IBoolean, //!> IBoolean interface
  424. IFT_ICommand, //!> ICommand interface
  425. IFT_IFloat, //!> IFloat interface
  426. IFT_IString, //!> IString interface
  427. IFT_IRegister, //!> IRegister interface
  428. IFT_ICategory, //!> ICategory interface
  429. IFT_IEnumeration, //!> IEnumeration interface
  430. IFT_IEnumEntry, //!> IEnumEntry interface
  431. IFT_IPort, //!> IPort interface
  432. };
  433. // ch:节点的访问模式 | en:Node Access Mode
  434. enum MV_XML_AccessMode
  435. {
  436. AM_NI, //!< Not implemented
  437. AM_NA, //!< Not available
  438. AM_WO, //!< Write Only
  439. AM_RO, //!< Read Only
  440. AM_RW, //!< Read and Write
  441. AM_Undefined, //!< Object is not yet initialized
  442. AM_CycleDetect, //!< used internally for AccessMode cycle detection
  443. };
  444. enum MV_XML_Visibility
  445. {
  446. V_Beginner = 0, //!< Always visible
  447. V_Expert = 1, //!< Visible for experts or Gurus
  448. V_Guru = 2, //!< Visible for Gurus
  449. V_Invisible = 3, //!< Not Visible
  450. V_Undefined = 99 //!< Object is not yet initialized
  451. };
  452. //Event事件回调信息 | en:Event callback infomation
  453. #define MAX_EVENT_NAME_SIZE 128//相机Event事件名称最大长度 | en:Max length of event name
  454. typedef struct _MV_EVENT_OUT_INFO_
  455. {
  456. char EventName[MAX_EVENT_NAME_SIZE]; //Event名称 | en:Event name
  457. unsigned short nEventID; //Event号 | en:Event ID
  458. unsigned short nStreamChannel; //流通道序号 | en:Circulation number
  459. unsigned int nBlockIdHigh; //帧号高位 | en:BlockId high
  460. unsigned int nBlockIdLow; //帧号低位 | en:BlockId low
  461. unsigned int nTimestampHigh; //时间戳高位 | en:Timestramp high
  462. unsigned int nTimestampLow; //时间戳低位 | en:Timestramp low
  463. void * pEventData; //Event数据 | en:Event data
  464. unsigned int nEventDataSize; //Event数据长度 | en:Event data len
  465. unsigned int nReserved[16]; //预留 | en:Reserved
  466. }MV_EVENT_OUT_INFO;
  467. // ch:文件存取 | en:File Access
  468. typedef struct _MV_CC_FILE_ACCESS_T
  469. {
  470. const char * pUserFileName; //用户文件名 | en:User file name
  471. const char * pDevFileName; //设备文件名 | en:Device file name
  472. unsigned int nReserved[32]; //预留 | en:Reserved
  473. }MV_CC_FILE_ACCESS;
  474. // ch:文件存取进度 | en:File Access Progress
  475. typedef struct _MV_CC_FILE_ACCESS_PROGRESS_T
  476. {
  477. int64_t nCompleted; //已完成的长度 | en:Completed Length
  478. int64_t nTotal; //总长度 | en:Total Length
  479. unsigned int nReserved[8]; //预留 | en:Reserved
  480. }MV_CC_FILE_ACCESS_PROGRESS;
  481. // ch:传输模式,可以为单播模式、组播模式等 | en:Transmission type
  482. typedef struct _MV_TRANSMISSION_TYPE_T
  483. {
  484. MV_GIGE_TRANSMISSION_TYPE enTransmissionType; //传输模式 | en:Transmission type
  485. unsigned int nDestIp; //目标IP,组播模式下有意义 | en:Destination IP
  486. unsigned short nDestPort; //目标Port,组播模式下有意义 | en:Destination port
  487. unsigned int nReserved[32]; //预留 | en:Reserved
  488. }MV_TRANSMISSION_TYPE;
  489. // ch:动作命令信息 | en:Action Command
  490. typedef struct _MV_ACTION_CMD_INFO_T
  491. {
  492. unsigned int nDeviceKey; //设备密钥
  493. unsigned int nGroupKey; //组键
  494. unsigned int nGroupMask; //组掩码
  495. unsigned int bActionTimeEnable; //只有设置成1时Action Time才有效,非1时无效
  496. int64_t nActionTime; //预定的时间,和主频有关
  497. const char* pBroadcastAddress; //广播包地址
  498. unsigned int nTimeOut; //等待ACK的超时时间,如果为0表示不需要ACK
  499. unsigned int nReserved[16]; //预留 | en:Reserved
  500. }MV_ACTION_CMD_INFO;
  501. // ch:动作命令返回信息 | en:Action Command Result
  502. typedef struct _MV_ACTION_CMD_RESULT_T
  503. {
  504. unsigned char strDeviceAddress[12 + 3 + 1]; //IP address of the device
  505. //status code returned by the device
  506. int nStatus;//1.0x0000:success.
  507. //2.0x8001:Command is not supported by the device.
  508. //3.0x8013:The device is not synchronized to a master clock to be used as time reference.
  509. //4.0x8015:A device queue or packet data has overflowed.
  510. //5.0x8016:The requested scheduled action command was requested at a time that is already past.
  511. unsigned int nReserved[4]; //预留 | en:Reserved
  512. }MV_ACTION_CMD_RESULT;
  513. // ch:动作命令返回信息列表 | en:Action Command Result List
  514. typedef struct _MV_ACTION_CMD_RESULT_LIST_T
  515. {
  516. unsigned int nNumResults; //返回值个数
  517. MV_ACTION_CMD_RESULT* pResults;
  518. }MV_ACTION_CMD_RESULT_LIST;
  519. // ch:单个节点基本属性 | en:Single Node Basic Attributes
  520. typedef struct _MV_XML_NODE_FEATURE_
  521. {
  522. enum MV_XML_InterfaceType enType; // ch:节点类型 | en:Node Type
  523. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Is visibility
  524. char strDescription[MV_MAX_XML_DISC_STRLEN_C];// ch:节点描述 目前暂不支持 | en:Node Description, NOT SUPPORT NOW
  525. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];// ch:显示名称 | en:Display Name
  526. char strName[MV_MAX_XML_NODE_STRLEN_C]; // ch:节点名 | en:Node Name
  527. char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; // ch:提示 | en:Notice
  528. unsigned int nReserved[4];
  529. }MV_XML_NODE_FEATURE;
  530. // ch:节点列表 | en:Node List
  531. typedef struct _MV_XML_NODES_LIST_
  532. {
  533. unsigned int nNodeNum; // ch:节点个数 | en:Node Number
  534. MV_XML_NODE_FEATURE stNodes[MV_MAX_XML_NODE_NUM_C];
  535. }MV_XML_NODES_LIST;
  536. typedef struct _MV_XML_FEATURE_Value_
  537. {
  538. enum MV_XML_InterfaceType enType; // ch:节点类型 | en:Node Type
  539. char strDescription[MV_MAX_XML_DISC_STRLEN_C];// ch:节点描述 目前暂不支持 | en:Node Description, NOT SUPPORT NOW
  540. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];// ch:显示名称 | en:Display Name
  541. char strName[MV_MAX_XML_NODE_STRLEN_C]; // ch:节点名 | en:Node Name
  542. char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; // ch:提示 | en:Notice
  543. unsigned int nReserved[4];
  544. }MV_XML_FEATURE_Value;
  545. typedef struct _MV_XML_FEATURE_Base_
  546. {
  547. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  548. }MV_XML_FEATURE_Base;
  549. typedef struct _MV_XML_FEATURE_Integer_
  550. {
  551. char strName[MV_MAX_XML_NODE_STRLEN_C];
  552. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
  553. char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // ch:目前暂不支持 | en:NOT SUPPORT NOW
  554. char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
  555. enum MV_XML_Visibility enVisivility; //是否可见 | en:Visible
  556. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  557. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  558. int64_t nValue; // ch:当前值 | en:Current Value
  559. int64_t nMinValue; // ch:最小值 | en:Min Value
  560. int64_t nMaxValue; // ch:最大值 | en:Max Value
  561. int64_t nIncrement; // ch:增量 | en:Increment
  562. unsigned int nReserved[4];
  563. }MV_XML_FEATURE_Integer;
  564. typedef struct _MV_XML_FEATURE_Boolean_
  565. {
  566. char strName[MV_MAX_XML_NODE_STRLEN_C];
  567. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
  568. char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // ch:目前暂不支持 | en:NOT SUPPORT NOW
  569. char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
  570. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Visible
  571. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  572. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  573. bool bValue; // ch:当前值 | en:Current Value
  574. unsigned int nReserved[4];
  575. }MV_XML_FEATURE_Boolean;
  576. typedef struct _MV_XML_FEATURE_Command_
  577. {
  578. char strName[MV_MAX_XML_NODE_STRLEN_C];
  579. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
  580. char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // ch:目前暂不支持 | en:NOT SUPPORT NOW
  581. char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
  582. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Visible
  583. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  584. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  585. unsigned int nReserved[4];
  586. }MV_XML_FEATURE_Command;
  587. typedef struct _MV_XML_FEATURE_Float_
  588. {
  589. char strName[MV_MAX_XML_NODE_STRLEN_C];
  590. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
  591. char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // ch:目前暂不支持 | en:NOT SUPPORT NOW
  592. char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
  593. enum MV_XML_Visibility enVisivility; //是否可见 | en:Visible
  594. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  595. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  596. double dfValue; // ch:当前值 | en:Current Value
  597. double dfMinValue; // ch:最小值 | en:Min Value
  598. double dfMaxValue; // ch:最大值 | en:Max Value
  599. double dfIncrement; // ch:增量 | en:Increment
  600. unsigned int nReserved[4];
  601. }MV_XML_FEATURE_Float;
  602. typedef struct _MV_XML_FEATURE_String_
  603. {
  604. char strName[MV_MAX_XML_NODE_STRLEN_C];
  605. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
  606. char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // ch:目前暂不支持 | en:NOT SUPPORT NOW
  607. char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
  608. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Visible
  609. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  610. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  611. char strValue[MV_MAX_XML_STRVALUE_STRLEN_C];// ch:当前值 | en:Current Value
  612. unsigned int nReserved[4];
  613. }MV_XML_FEATURE_String;
  614. typedef struct _MV_XML_FEATURE_Register_
  615. {
  616. char strName[MV_MAX_XML_NODE_STRLEN_C];
  617. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];
  618. char strDescription[MV_MAX_XML_DISC_STRLEN_C]; // ch:目前暂不支持 | en:NOT SUPPORT NOW
  619. char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
  620. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Visible
  621. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  622. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  623. int64_t nAddrValue; // ch:当前值 | en:Current Value
  624. unsigned int nReserved[4];
  625. }MV_XML_FEATURE_Register;
  626. typedef struct _MV_XML_FEATURE_Category_
  627. {
  628. char strDescription[MV_MAX_XML_DISC_STRLEN_C];// ch:节点描述 目前暂不支持 | en:Node Description, NOT SUPPORT NOW
  629. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];// ch:显示名称 | en:Display Name
  630. char strName[MV_MAX_XML_NODE_STRLEN_C]; // ch:节点名 | en:Node Name
  631. char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; // ch:提示 | en:Notice
  632. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Visible
  633. unsigned int nReserved[4];
  634. }MV_XML_FEATURE_Category;
  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]; // ch:目前暂不支持 | en:NOT SUPPORT NOW
  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. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Visible
  645. int64_t nValue; // ch:当前值 | en:Current Value
  646. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  647. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  648. int nReserved[8];
  649. }MV_XML_FEATURE_EnumEntry;
  650. typedef struct _MV_XML_FEATURE_Enumeration_
  651. {
  652. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Visible
  653. char strDescription[MV_MAX_XML_DISC_STRLEN_C];// ch:节点描述 目前暂不支持 | en:Node Description, NOT SUPPORT NOW
  654. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];// ch:显示名称 | en:Display Name
  655. char strName[MV_MAX_XML_NODE_STRLEN_C]; // ch:节点名 | en:Node Name
  656. char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; // ch:提示 | en:Notice
  657. int nSymbolicNum; // ch:Symbolic数 | en:Symbolic Number
  658. char strCurrentSymbolic[MV_MAX_XML_SYMBOLIC_STRLEN_C]; // ch:当前Symbolic索引 | en:Current Symbolic Index
  659. char strSymbolic[MV_MAX_XML_SYMBOLIC_NUM][MV_MAX_XML_SYMBOLIC_STRLEN_C];
  660. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  661. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  662. int64_t nValue; // ch:当前值 | en:Current Value
  663. unsigned int nReserved[4];
  664. }MV_XML_FEATURE_Enumeration;
  665. typedef struct _MV_XML_FEATURE_Port_
  666. {
  667. enum MV_XML_Visibility enVisivility; // ch:是否可见 | en:Visible
  668. char strDescription[MV_MAX_XML_DISC_STRLEN_C];// ch:节点描述 目前暂不支持 | en:Node Description, NOT SUPPORT NOW
  669. char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];// ch:显示名称 | en:Display Name
  670. char strName[MV_MAX_XML_NODE_STRLEN_C]; // ch:节点名 | en:Node Name
  671. char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; // ch:提示 | en:Notice
  672. enum MV_XML_AccessMode enAccessMode; // ch:访问模式 | en:Access Mode
  673. int bIsLocked; // ch:是否锁定。0-否;1-是 目前暂不支持 | en:Locked. 0-NO; 1-YES, NOT SUPPORT NOW
  674. unsigned int nReserved[4];
  675. }MV_XML_FEATURE_Port;
  676. typedef struct _MV_XML_CAMERA_FEATURE_
  677. {
  678. enum MV_XML_InterfaceType enType;
  679. union
  680. {
  681. MV_XML_FEATURE_Integer stIntegerFeature;
  682. MV_XML_FEATURE_Float stFloatFeature;
  683. MV_XML_FEATURE_Enumeration stEnumerationFeature;
  684. MV_XML_FEATURE_String stStringFeature;
  685. }SpecialFeature;
  686. }MV_XML_CAMERA_FEATURE;
  687. typedef struct _MVCC_ENUMVALUE_T
  688. {
  689. unsigned int nCurValue; // ch:当前值 | en:Current Value
  690. unsigned int nSupportedNum; // ch:数据的有效数据个数 | en:Number of valid data
  691. unsigned int nSupportValue[MV_MAX_XML_SYMBOLIC_NUM];
  692. unsigned int nReserved[4];
  693. }MVCC_ENUMVALUE;
  694. typedef struct _MVCC_INTVALUE_T
  695. {
  696. unsigned int nCurValue; // ch:当前值 | en:Current Value
  697. unsigned int nMax;
  698. unsigned int nMin;
  699. unsigned int nInc;
  700. unsigned int nReserved[4];
  701. }MVCC_INTVALUE;
  702. typedef struct _MVCC_INTVALUE_EX_T
  703. {
  704. int64_t nCurValue; // ch:当前值 | en:Current Value
  705. int64_t nMax;
  706. int64_t nMin;
  707. int64_t nInc;
  708. unsigned int nReserved[16];
  709. }MVCC_INTVALUE_EX;
  710. typedef struct _MVCC_FLOATVALUE_T
  711. {
  712. float fCurValue; // ch:当前值 | en:Current Value
  713. float fMax;
  714. float fMin;
  715. unsigned int nReserved[4];
  716. }MVCC_FLOATVALUE;
  717. typedef struct _MVCC_STRINGVALUE_T
  718. {
  719. char chCurValue[256]; // ch:当前值 | en:Current Value
  720. int64_t nMaxLength;
  721. unsigned int nReserved[2];
  722. }MVCC_STRINGVALUE;
  723. #endif /* _MV_CAMERA_PARAMS_H_ */