CameraParams.h 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914
  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. /// \~chinese GigE设备信息 \~english GigE device info
  10. typedef struct _MV_GIGE_DEVICE_INFO_
  11. {
  12. unsigned int nIpCfgOption; ///< [OUT] \~chinese IP配置选项 \~english IP Configuration Options
  13. unsigned int nIpCfgCurrent; ///< [OUT] \~chinese 当前IP配置 \~english IP Configuration
  14. unsigned int nCurrentIp; ///< [OUT] \~chinese 当前IP地址 \~english Current Ip
  15. unsigned int nCurrentSubNetMask; ///< [OUT] \~chinese 当前子网掩码 \~english Curtent Subnet Mask
  16. unsigned int nDefultGateWay; ///< [OUT] \~chinese 当前网关 \~english Current Gateway
  17. unsigned char chManufacturerName[32]; ///< [OUT] \~chinese 制造商名称 \~english Manufacturer Name
  18. unsigned char chModelName[32]; ///< [OUT] \~chinese 型号名称 \~english Model Name
  19. unsigned char chDeviceVersion[32]; ///< [OUT] \~chinese 设备版本 \~english Device Version
  20. unsigned char chManufacturerSpecificInfo[48]; ///< [OUT] \~chinese 制造商的具体信息 \~english Manufacturer Specific Information
  21. unsigned char chSerialNumber[16]; ///< [OUT] \~chinese 序列号 \~english Serial Number
  22. unsigned char chUserDefinedName[16]; ///< [OUT] \~chinese 用户自定义名称 \~english User Defined Name
  23. unsigned int nNetExport; ///< [OUT] \~chinese 网口IP地址 \~english NetWork IP Address
  24. unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
  25. }MV_GIGE_DEVICE_INFO;
  26. ///< \~chinese 最大的数据信息大小 \~english Maximum data information size
  27. #define INFO_MAX_BUFFER_SIZE 64
  28. /// \~chinese USB设备信息 \~english USB device info
  29. typedef struct _MV_USB3_DEVICE_INFO_
  30. {
  31. unsigned char CrtlInEndPoint; ///< [OUT] \~chinese 控制输入端点 \~english Control input endpoint
  32. unsigned char CrtlOutEndPoint; ///< [OUT] \~chinese 控制输出端点 \~english Control output endpoint
  33. unsigned char StreamEndPoint; ///< [OUT] \~chinese 流端点 \~english Flow endpoint
  34. unsigned char EventEndPoint; ///< [OUT] \~chinese 事件端点 \~english Event endpoint
  35. unsigned short idVendor; ///< [OUT] \~chinese 供应商ID号 \~english Vendor ID Number
  36. unsigned short idProduct; ///< [OUT] \~chinese 产品ID号 \~english Device ID Number
  37. unsigned int nDeviceNumber; ///< [OUT] \~chinese 设备索引号 \~english Device Number
  38. unsigned char chDeviceGUID[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备GUID号 \~english Device GUID Number
  39. unsigned char chVendorName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 供应商名字 \~english Vendor Name
  40. unsigned char chModelName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 型号名字 \~english Model Name
  41. unsigned char chFamilyName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 家族名字 \~english Family Name
  42. unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备版本 \~english Device Version
  43. unsigned char chManufacturerName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 制造商名字 \~english Manufacturer Name
  44. unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 序列号 \~english Serial Number
  45. unsigned char chUserDefinedName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 用户自定义名字 \~english User Defined Name
  46. unsigned int nbcdUSB; ///< [OUT] \~chinese 支持的USB协议 \~english Support USB Protocol
  47. unsigned int nDeviceAddress; ///< [OUT] \~chinese 设备地址 \~english Device Address
  48. unsigned int nReserved[2]; ///< \~chinese 预留 \~english Reserved
  49. }MV_USB3_DEVICE_INFO;
  50. /// \~chinese CameraLink设备信息 \~english CameraLink device info
  51. typedef struct _MV_CamL_DEV_INFO_
  52. {
  53. unsigned char chPortID[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 端口号 \~english Port ID
  54. unsigned char chModelName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 型号名字 \~english Model Name
  55. unsigned char chFamilyName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 名称 \~english Family Name
  56. unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备版本 \~english Device Version
  57. unsigned char chManufacturerName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 制造商名字 \~english Manufacturer Name
  58. unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 序列号 \~english Serial Number
  59. unsigned int nReserved[38]; ///< \~chinese 预留 \~english Reserved
  60. }MV_CamL_DEV_INFO;
  61. ///< \~chinese 设备传输层协议类型 \~english Device Transport Layer Protocol Type
  62. #define MV_UNKNOW_DEVICE 0x00000000 ///< \~chinese 未知设备类型,保留意义 \~english Unknown Device Type, Reserved
  63. #define MV_GIGE_DEVICE 0x00000001 ///< \~chinese GigE设备 \~english GigE Device
  64. #define MV_1394_DEVICE 0x00000002 ///< \~chinese 1394-a/b 设备 \~english 1394-a/b Device
  65. #define MV_USB_DEVICE 0x00000004 ///< \~chinese USB 设备 \~english USB Device
  66. #define MV_CAMERALINK_DEVICE 0x00000008 ///< \~chinese CameraLink设备 \~english CameraLink Device
  67. /// \~chinese 设备信息 \~english Device info
  68. typedef struct _MV_CC_DEVICE_INFO_
  69. {
  70. unsigned short nMajorVer; ///< [OUT] \~chinese 主要版本 \~english Major Version
  71. unsigned short nMinorVer; ///< [OUT] \~chinese 次要版本 \~english Minor Version
  72. unsigned int nMacAddrHigh; ///< [OUT] \~chinese 高MAC地址 \~english High MAC Address
  73. unsigned int nMacAddrLow; ///< [OUT] \~chinese 低MAC地址 \~english Low MAC Address
  74. unsigned int nTLayerType; ///< [OUT] \~chinese 设备传输层协议类型 \~english Device Transport Layer Protocol Type
  75. unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
  76. union
  77. {
  78. MV_GIGE_DEVICE_INFO stGigEInfo; ///< [OUT] \~chinese GigE设备信息 \~english GigE Device Info
  79. MV_USB3_DEVICE_INFO stUsb3VInfo; ///< [OUT] \~chinese USB设备信息 \~english USB Device Info
  80. MV_CamL_DEV_INFO stCamLInfo; ///< [OUT] \~chinese CameraLink设备信息 \~english CameraLink Device Info
  81. // more ...
  82. }SpecialInfo;
  83. }MV_CC_DEVICE_INFO;
  84. ///< \~chinese 最多支持的传输层实例个数 \~english The maximum number of supported transport layer instances
  85. #define MV_MAX_TLS_NUM 8
  86. ///< \~chinese 最大支持的设备个数 \~english The maximum number of supported devices
  87. #define MV_MAX_DEVICE_NUM 256
  88. /// \~chinese 设备信息列表 \~english Device Information List
  89. typedef struct _MV_CC_DEVICE_INFO_LIST_
  90. {
  91. unsigned int nDeviceNum; ///< [OUT] \~chinese 在线设备数量 \~english Online Device Number
  92. MV_CC_DEVICE_INFO* pDeviceInfo[MV_MAX_DEVICE_NUM]; ///< [OUT] \~chinese 支持最多256个设备 \~english Support up to 256 devices
  93. }MV_CC_DEVICE_INFO_LIST;
  94. /// \~chinese 通过GenTL枚举到的接口信息 \~english Interface Information with GenTL
  95. typedef struct _MV_GENTL_IF_INFO_
  96. {
  97. unsigned char chInterfaceID[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese GenTL接口ID \~english Interface ID
  98. unsigned char chTLType[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 传输层类型 \~english GenTL Type
  99. unsigned char chDisplayName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese Interface显示名称 \~english Display Name
  100. unsigned int nCtiIndex; ///< [OUT] \~chinese GenTL的cti文件索引 \~english The Index of Cti Files
  101. unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
  102. }MV_GENTL_IF_INFO;
  103. ///< \~chinese 最大支持的GenTL接口数量 \~english The maximum number of GenTL interface supported
  104. #define MV_MAX_GENTL_IF_NUM 256
  105. /// \~chinese 通过GenTL枚举到的接口信息列表 \~english Inferface Information List with GenTL
  106. typedef struct _MV_GENTL_IF_INFO_LIST_
  107. {
  108. unsigned int nInterfaceNum; ///< [OUT] \~chinese 在线接口数量 \~english Online Inferface Number
  109. MV_GENTL_IF_INFO* pIFInfo[MV_MAX_GENTL_IF_NUM]; ///< [OUT] \~chinese 支持最多256个接口 \~english Support up to 256 inferfaces
  110. }MV_GENTL_IF_INFO_LIST;
  111. /// \~chinese 通过GenTL枚举到的设备信息 \~english Device Information with GenTL
  112. typedef struct _MV_GENTL_DEV_INFO_
  113. {
  114. unsigned char chInterfaceID[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese GenTL接口ID \~english Interface ID
  115. unsigned char chDeviceID[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备ID \~english Device ID
  116. unsigned char chVendorName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 供应商名字 \~english Vendor Name
  117. unsigned char chModelName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 型号名字 \~english Model Name
  118. unsigned char chTLType[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 传输层类型 \~english GenTL Type
  119. unsigned char chDisplayName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备显示名称 \~english Display Name
  120. unsigned char chUserDefinedName[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 用户自定义名字 \~english User Defined Name
  121. unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 序列号 \~english Serial Number
  122. unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备版本号 \~english Device Version
  123. unsigned int nCtiIndex; ///< [OUT] \~chinese GenTL的cti文件索引 \~english The Index of Cti Files
  124. unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
  125. }MV_GENTL_DEV_INFO;
  126. ///< \~chinese 最大支持的GenTL设备数量 \~english The maximum number of GenTL devices supported
  127. #define MV_MAX_GENTL_DEV_NUM 256
  128. /// \~chinese 通过GenTL枚举到的设备信息列表 \~english Device Information List with GenTL
  129. typedef struct _MV_GENTL_DEV_INFO_LIST_
  130. {
  131. unsigned int nDeviceNum; ///< [OUT] \~chinese 在线设备数量 \~english Online Device Number
  132. MV_GENTL_DEV_INFO* pDeviceInfo[MV_MAX_GENTL_DEV_NUM]; ///< [OUT] \~chinese 支持最多256个设备 \~english Support up to 256 devices
  133. }MV_GENTL_DEV_INFO_LIST;
  134. /// \~chinese 设备的访问模式 \~english Device Access Mode
  135. #define MV_ACCESS_Exclusive 1 /// \~chinese 独占权限,其他APP只允许读CCP寄存器 \~english Exclusive authority, other APP is only allowed to read the CCP register
  136. #define MV_ACCESS_ExclusiveWithSwitch 2 /// \~chinese 可以从5模式下抢占权限,然后以独占权限打开 \~english You can seize the authority from the 5 mode, and then open with exclusive authority
  137. #define MV_ACCESS_Control 3 /// \~chinese 控制权限,其他APP允许读所有寄存器 \~english Control authority, allows other APP reading all registers
  138. #define MV_ACCESS_ControlWithSwitch 4 /// \~chinese 可以从5的模式下抢占权限,然后以控制权限打开 \~english You can seize the authority from the 5 mode, and then open with control authority
  139. #define MV_ACCESS_ControlSwitchEnable 5 /// \~chinese 以可被抢占的控制权限打开 \~english Open with seized control authority
  140. #define MV_ACCESS_ControlSwitchEnableWithKey 6 /// \~chinese 可以从5的模式下抢占权限,然后以可被抢占的控制权限打开 \~english You can seize the authority from the 5 mode, and then open with seized control authority
  141. #define MV_ACCESS_Monitor 7 /// \~chinese 读模式打开设备,适用于控制权限下 \~english Open with read mode and is available under control authority
  142. /// \~chinese Chunk内容 \~english The content of ChunkData
  143. typedef struct _MV_CHUNK_DATA_CONTENT_
  144. {
  145. unsigned char* pChunkData; ///< [OUT] \~chinese Chunk数据 \~english Chunk Data
  146. unsigned int nChunkID; ///< [OUT] \~chinese Chunk ID \~english Chunk ID
  147. unsigned int nChunkLen; ///< [OUT] \~chinese Chunk的长度 \~english Chunk Length
  148. unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
  149. }MV_CHUNK_DATA_CONTENT;
  150. /// \~chinese 输出帧的信息 \~english Output Frame Information
  151. typedef struct _MV_FRAME_OUT_INFO_EX_
  152. {
  153. unsigned short nWidth; ///< [OUT] \~chinese 图像宽 \~english Image Width
  154. unsigned short nHeight; ///< [OUT] \~chinese 图像高 \~english Image Height
  155. enum MvGvspPixelType enPixelType; ///< [OUT] \~chinese 像素格式 \~english Pixel Type
  156. unsigned int nFrameNum; ///< [OUT] \~chinese 帧号 \~english Frame Number
  157. unsigned int nDevTimeStampHigh; ///< [OUT] \~chinese 时间戳高32位 \~english Timestamp high 32 bits
  158. unsigned int nDevTimeStampLow; ///< [OUT] \~chinese 时间戳低32位 \~english Timestamp low 32 bits
  159. unsigned int nReserved0; ///< [OUT] \~chinese 保留,8字节对齐 \~english Reserved, 8-byte aligned
  160. int64_t nHostTimeStamp; ///< [OUT] \~chinese 主机生成的时间戳 \~english Host-generated timestamp
  161. unsigned int nFrameLen; ///< [OUT] \~chinese 帧的长度 \~english The Length of Frame
  162. /// \~chinese 设备水印时标 \~english Device frame-specific time scale
  163. unsigned int nSecondCount; ///< [OUT] \~chinese 秒数 \~english The Seconds
  164. unsigned int nCycleCount; ///< [OUT] \~chinese 周期数 \~english The Count of Cycle
  165. unsigned int nCycleOffset; ///< [OUT] \~chinese 周期偏移量 \~english The Offset of Cycle
  166. float fGain; ///< [OUT] \~chinese 增益 \~english Gain
  167. float fExposureTime; ///< [OUT] \~chinese 曝光时间 \~english Exposure Time
  168. unsigned int nAverageBrightness; ///< [OUT] \~chinese 平均亮度 \~english Average brightness
  169. /// \~chinese 白平衡相关 \~english White balance
  170. unsigned int nRed; ///< [OUT] \~chinese 红色 \~english Red
  171. unsigned int nGreen; ///< [OUT] \~chinese 绿色 \~english Green
  172. unsigned int nBlue; ///< [OUT] \~chinese 蓝色 \~english Blue
  173. unsigned int nFrameCounter; ///< [OUT] \~chinese 总帧数 \~english Frame Counter
  174. unsigned int nTriggerIndex; ///< [OUT] \~chinese 触发计数 \~english Trigger Counting
  175. unsigned int nInput; ///< [OUT] \~chinese 输入 \~english Input
  176. unsigned int nOutput; ///< [OUT] \~chinese 输出 \~english Output
  177. /// \~chinese ROI区域 \~english ROI Region
  178. unsigned short nOffsetX; ///< [OUT] \~chinese 水平偏移量 \~english OffsetX
  179. unsigned short nOffsetY; ///< [OUT] \~chinese 垂直偏移量 \~english OffsetY
  180. unsigned short nChunkWidth; ///< [OUT] \~chinese Chunk宽 \~english The Width of Chunk
  181. unsigned short nChunkHeight; ///< [OUT] \~chinese Chunk高 \~english The Height of Chunk
  182. unsigned int nLostPacket; ///< [OUT] \~chinese 本帧丢包数 \~english Lost Packet Number In This Frame
  183. unsigned int nUnparsedChunkNum; ///< [OUT] \~chinese 未解析的Chunkdata个数 \~english Unparsed Chunk Number
  184. union
  185. {
  186. MV_CHUNK_DATA_CONTENT* pUnparsedChunkContent; ///< [OUT] \~chinese 未解析的Chunk \~english Unparsed Chunk Content
  187. int64_t nAligning; ///< [OUT] \~chinese 校准 \~english Aligning
  188. }UnparsedChunkList;
  189. unsigned int nReserved[36]; ///< \~chinese 预留 \~english Reserved
  190. }MV_FRAME_OUT_INFO_EX;
  191. /// \~chinese 图像结构体,输出图像地址及图像信息 \~english Image Struct, output the pointer of Image and the information of the specific image
  192. typedef struct _MV_FRAME_OUT_
  193. {
  194. unsigned char* pBufAddr; ///< [OUT] \~chinese 图像指针地址 \~english pointer of image
  195. MV_FRAME_OUT_INFO_EX stFrameInfo; ///< [OUT] \~chinese 图像信息 \~english information of the specific image
  196. unsigned int nRes[16]; ///< \~chinese 预留 \~english Reserved
  197. }MV_FRAME_OUT;
  198. /// \~chinese 取流策略 \~english The strategy of Grabbing
  199. typedef enum _MV_GRAB_STRATEGY_
  200. {
  201. MV_GrabStrategy_OneByOne = 0, ///< \~chinese 从旧到新一帧一帧的获取图像 \~english Grab One By One
  202. MV_GrabStrategy_LatestImagesOnly = 1, ///< \~chinese 获取列表中最新的一帧图像 \~english Grab The Latest Image
  203. MV_GrabStrategy_LatestImages = 2, ///< \~chinese 获取列表中最新的图像 \~english Grab The Latest Images
  204. MV_GrabStrategy_UpcomingImage = 3, ///< \~chinese 等待下一帧图像 \~english Grab The Upcoming Image
  205. }MV_GRAB_STRATEGY;
  206. /// \~chinese 网络传输的相关信息 \~english Network transmission information
  207. typedef struct _MV_NETTRANS_INFO_
  208. {
  209. int64_t nReceiveDataSize; ///< [OUT] \~chinese 已接收数据大小[Start和Stop之间] \~english Received Data Size
  210. int nThrowFrameCount; ///< [OUT] \~chinese 丢帧数量 \~english Throw frame number
  211. unsigned int nNetRecvFrameCount; ///< [OUT] \~chinese 已接收的帧数 \~english Received Frame Count
  212. int64_t nRequestResendPacketCount; ///< [OUT] \~chinese 请求重发包数 \~english Request Resend Packet Count
  213. int64_t nResendPacketCount; ///< [OUT] \~chinese 重发包数 \~english Resend Packet Count
  214. }MV_NETTRANS_INFO;
  215. /// \~chinese 信息类型 \~english Information Type
  216. #define MV_MATCH_TYPE_NET_DETECT 0x00000001 ///< \~chinese 网络流量和丢包信息 \~english Network traffic and packet loss information
  217. #define MV_MATCH_TYPE_USB_DETECT 0x00000002 ///< \~chinese host接收到来自U3V设备的字节总数 \~english The total number of bytes host received from U3V device
  218. /// \~chinese 全匹配的一种信息结构体 \~english A fully matched information structure
  219. typedef struct _MV_ALL_MATCH_INFO_
  220. {
  221. unsigned int nType; ///< [IN] \~chinese 需要输出的信息类型,e.g. MV_MATCH_TYPE_NET_DETECT \~english Information type need to output ,e.g. MV_MATCH_TYPE_NET_DETECT
  222. void* pInfo; ///< [OUT] \~chinese 输出的信息缓存,由调用者分配 \~english Output information cache, which is allocated by the caller
  223. unsigned int nInfoSize; ///< [IN] \~chinese 信息缓存的大小 \~english Information cache size
  224. }MV_ALL_MATCH_INFO;
  225. /// \~chinese 网络流量和丢包信息反馈结构体,对应类型为 MV_MATCH_TYPE_NET_DETECT \~english Network traffic and packet loss feedback structure, the corresponding type is MV_MATCH_TYPE_NET_DETECT
  226. typedef struct _MV_MATCH_INFO_NET_DETECT_
  227. {
  228. int64_t nReceiveDataSize; ///< [OUT] \~chinese 已接收数据大小[Start和Stop之间] \~english Received data size
  229. int64_t nLostPacketCount; ///< [OUT] \~chinese 丢失的包数量 \~english Number of packets lost
  230. unsigned int nLostFrameCount; ///< [OUT] \~chinese 丢帧数量 \~english Number of frames lost
  231. unsigned int nNetRecvFrameCount; ///< [OUT] \~chinese 保留 \~english Received Frame Count
  232. int64_t nRequestResendPacketCount; ///< [OUT] \~chinese 请求重发包数 \~english Request Resend Packet Count
  233. int64_t nResendPacketCount; ///< [OUT] \~chinese 重发包数 \~english Resend Packet Count
  234. }MV_MATCH_INFO_NET_DETECT;
  235. /// \~chinese host收到从u3v设备端的总字节数,对应类型为 MV_MATCH_TYPE_USB_DETECT \~english The total number of bytes host received from the u3v device side, the corresponding type is MV_MATCH_TYPE_USB_DETECT
  236. typedef struct _MV_MATCH_INFO_USB_DETECT_
  237. {
  238. int64_t nReceiveDataSize; ///< [OUT] \~chinese 已接收数据大小 [Open和Close之间] \~english Received data size
  239. unsigned int nReceivedFrameCount; ///< [OUT] \~chinese 已收到的帧数 \~english Number of frames received
  240. unsigned int nErrorFrameCount; ///< [OUT] \~chinese 错误帧数 \~english Number of error frames
  241. unsigned int nReserved[2]; ///< \~chinese 保留 \~english Reserved
  242. }MV_MATCH_INFO_USB_DETECT;
  243. /// \~chinese 显示帧信息 \~english Display frame information
  244. typedef struct _MV_DISPLAY_FRAME_INFO_
  245. {
  246. void* hWnd; ///< [IN] \~chinese 窗口句柄 \~english HWND
  247. unsigned char* pData; ///< [IN] \~chinese 显示的数据 \~english Data Buffer
  248. unsigned int nDataLen; ///< [IN] \~chinese 数据长度 \~english Data Size
  249. unsigned short nWidth; ///< [IN] \~chinese 图像宽 \~english Width
  250. unsigned short nHeight; ///< [IN] \~chinese 图像高 \~english Height
  251. enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format
  252. unsigned int nRes[4]; ///< \~chinese 保留 \~english Reserved
  253. }MV_DISPLAY_FRAME_INFO;
  254. /// \~chinese 保存的3D数据格式 \~english The saved format for 3D data
  255. enum MV_SAVE_POINT_CLOUD_FILE_TYPE
  256. {
  257. MV_PointCloudFile_Undefined = 0, ///< \~chinese 未定义的点云格式 \~english Undefined point cloud format
  258. MV_PointCloudFile_PLY = 1, ///< \~chinese PLY点云格式 \~english The point cloud format named PLY
  259. MV_PointCloudFile_CSV = 2, ///< \~chinese CSV点云格式 \~english The point cloud format named CSV
  260. MV_PointCloudFile_OBJ = 3, ///< \~chinese OBJ点云格式 \~english The point cloud format named OBJ
  261. };
  262. /// \~chinese 保存3D数据到缓存 \~english Save 3D data to buffer
  263. typedef struct _MV_SAVE_POINT_CLOUD_PARAM_
  264. {
  265. unsigned int nLinePntNum; ///< [IN] \~chinese 行点数,即图像宽 \~english The number of points in each row,which is the width of the image
  266. unsigned int nLineNum; ///< [IN] \~chinese 行数,即图像高 \~english The number of rows,which is the height of the image
  267. enum MvGvspPixelType enSrcPixelType; ///< [IN] \~chinese 输入数据的像素格式 \~english The pixel format of the input data
  268. unsigned char* pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
  269. unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
  270. unsigned char* pDstBuf; ///< [OUT] \~chinese 输出像素数据缓存 \~english Output pixel data buffer
  271. unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小(nLinePntNum * nLineNum * (16*3 + 4) + 2048) \~english Output buffer size provided(nLinePntNum * nLineNum * (16*3 + 4) + 2048)
  272. unsigned int nDstBufLen; ///< [OUT] \~chinese 输出像素数据缓存长度 \~english Output pixel data buffer size
  273. MV_SAVE_POINT_CLOUD_FILE_TYPE enPointCloudFileType; ///< [IN] \~chinese 提供输出的点云文件类型 \~english Output point data file type provided
  274. unsigned int nReserved[8]; ///< \~chinese 保留字段 \~english Reserved
  275. }MV_SAVE_POINT_CLOUD_PARAM;
  276. /// \~chinese 保存图片格式 \~english Save image type
  277. enum MV_SAVE_IAMGE_TYPE
  278. {
  279. MV_Image_Undefined = 0, ///< \~chinese 未定义的图像格式 \~english Undefined Image Type
  280. MV_Image_Bmp = 1, ///< \~chinese BMP图像格式 \~english BMP Image Type
  281. MV_Image_Jpeg = 2, ///< \~chinese JPEG图像格式 \~english Jpeg Image Type
  282. MV_Image_Png = 3, ///< \~chinese PNG图像格式 \~english Png Image Type
  283. MV_Image_Tif = 4, ///< \~chinese TIFF图像格式 \~english TIFF Image Type
  284. };
  285. /// \~chinese 图片保存参数 \~english Save Image Parameters
  286. typedef struct _MV_SAVE_IMAGE_PARAM_T_EX_
  287. {
  288. unsigned char* pData; ///< [IN] \~chinese 输入数据缓存 \~english Input Data Buffer
  289. unsigned int nDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input Data length
  290. enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 输入数据的像素格式 \~english Input Data Pixel Format
  291. unsigned short nWidth; ///< [IN] \~chinese 图像宽 \~english Image Width
  292. unsigned short nHeight; ///< [IN] \~chinese 图像高 \~english Image Height
  293. unsigned char* pImageBuffer; ///< [OUT] \~chinese 输出图片缓存 \~english Output Image Buffer
  294. unsigned int nImageLen; ///< [OUT] \~chinese 输出图片长度 \~english Output Image length
  295. unsigned int nBufferSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Output buffer size provided
  296. enum MV_SAVE_IAMGE_TYPE enImageType; ///< [IN] \~chinese 输出图片格式 \~english Output Image Format
  297. unsigned int nJpgQuality; ///< [IN] \~chinese JPG编码质量(50-99],其它格式无效 \~english Encoding quality(50-99],Other formats are invalid
  298. unsigned int iMethodValue; ///< [IN] \~chinese 插值方法 0-快速 1-均衡 2-最优(其它值默认为最优) \~english Bayer interpolation method 0-Fast 1-Equilibrium 2-Optimal
  299. unsigned int nReserved[3]; ///< \~chinese 预留 \~english Reserved
  300. }MV_SAVE_IMAGE_PARAM_EX;
  301. /// \~chinese 图片保存参数 \~english Save Image Parameters
  302. typedef struct _MV_SAVE_IMG_TO_FILE_PARAM_
  303. {
  304. enum MvGvspPixelType enPixelType; ///< [IN] \~chinese输入数据的像素格式 \~english The pixel format of the input data
  305. unsigned char* pData; ///< [IN] \~chinese 输入数据缓存 \~english Input Data Buffer
  306. unsigned int nDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input Data length
  307. unsigned short nWidth; ///< [IN] \~chinese 图像宽 \~english Image Width
  308. unsigned short nHeight; ///< [IN] \~chinese 图像高 \~english Image Height
  309. enum MV_SAVE_IAMGE_TYPE enImageType; ///< [IN] \~chinese 输入图片格式 \~english Input Image Format
  310. unsigned int nQuality; ///< [IN] \~chinese JPG编码质量(50-99],PNG编码质量[0-9],其它格式无效 \~english JPG Encoding quality(50-99],PNG Encoding quality[0-9],Other formats are invalid
  311. char pImagePath[256]; ///< [IN] \~chinese 输入文件路径 \~english Input file path
  312. int iMethodValue; ///< [IN] \~chinese 插值方法 0-快速 1-均衡 2-最优(其它值默认为最优) \~english Bayer interpolation method 0-Fast 1-Equilibrium 2-Optimal
  313. unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
  314. }MV_SAVE_IMG_TO_FILE_PARAM;
  315. /// \~chinese 旋转角度 \~english Rotation angle
  316. typedef enum _MV_IMG_ROTATION_ANGLE_
  317. {
  318. MV_IMAGE_ROTATE_90 = 1,
  319. MV_IMAGE_ROTATE_180 = 2,
  320. MV_IMAGE_ROTATE_270 = 3,
  321. }MV_IMG_ROTATION_ANGLE;
  322. /// \~chinese 图像旋转结构体 \~english Rotate image structure
  323. typedef struct _MV_CC_ROTATE_IMAGE_PARAM_T_
  324. {
  325. enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format
  326. unsigned int nWidth; ///< [IN][OUT] \~chinese 图像宽 \~english Width
  327. unsigned int nHeight; ///< [IN][OUT] \~chinese 图像高 \~english Height
  328. unsigned char* pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
  329. unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
  330. unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
  331. unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length
  332. unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
  333. MV_IMG_ROTATION_ANGLE enRotationAngle; ///< [IN] \~chinese 旋转角度 \~english Rotation angle
  334. unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
  335. }MV_CC_ROTATE_IMAGE_PARAM;
  336. /// \~chinese 翻转类型 \~english Flip type
  337. typedef enum _MV_IMG_FLIP_TYPE_
  338. {
  339. MV_FLIP_VERTICAL = 1,
  340. MV_FLIP_HORIZONTAL = 2,
  341. }MV_IMG_FLIP_TYPE;
  342. /// \~chinese 图像翻转结构体 \~english Flip image structure
  343. typedef struct _MV_CC_FLIP_IMAGE_PARAM_T_
  344. {
  345. enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format
  346. unsigned int nWidth; ///< [IN] \~chinese 图像宽 \~english Width
  347. unsigned int nHeight; ///< [IN] \~chinese 图像高 \~english Height
  348. unsigned char* pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
  349. unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
  350. unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
  351. unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length
  352. unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
  353. MV_IMG_FLIP_TYPE enFlipType; ///< [IN] \~chinese 翻转类型 \~english Flip type
  354. unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
  355. }MV_CC_FLIP_IMAGE_PARAM;
  356. /// \~chinese 像素转换结构体 \~english Pixel convert structure
  357. typedef struct _MV_PIXEL_CONVERT_PARAM_T_
  358. {
  359. unsigned short nWidth; ///< [IN] \~chinese 图像宽 \~english Width
  360. unsigned short nHeight; ///< [IN] \~chinese 图像高 \~english Height
  361. enum MvGvspPixelType enSrcPixelType; ///< [IN] \~chinese 源像素格式 \~english Source pixel format
  362. unsigned char* pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
  363. unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
  364. enum MvGvspPixelType enDstPixelType; ///< [IN] \~chinese 目标像素格式 \~english Destination pixel format
  365. unsigned char* pDstBuffer; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
  366. unsigned int nDstLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length
  367. unsigned int nDstBufferSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
  368. unsigned int nRes[4]; ///< \~chinese 预留 \~english Reserved
  369. }MV_CC_PIXEL_CONVERT_PARAM;
  370. /// \~chinese Gamma类型 \~english Gamma type
  371. typedef enum _MV_CC_GAMMA_TYPE_
  372. {
  373. MV_CC_GAMMA_TYPE_NONE = 0, ///< \~chinese 不启用 \~english Disable
  374. MV_CC_GAMMA_TYPE_VALUE = 1, ///< \~chinese Gamma值 \~english Gamma value
  375. MV_CC_GAMMA_TYPE_USER_CURVE = 2, ///< \~chinese Gamma曲线 \~english Gamma curve
  376. ///< \~chinese 8位,长度:256*sizeof(unsigned char) \~english 8bit,length:256*sizeof(unsigned char)
  377. ///< \~chinese 10位,长度:1024*sizeof(unsigned short) \~english 10bit,length:1024*sizeof(unsigned short)
  378. ///< \~chinese 12位,长度:4096*sizeof(unsigned short) \~english 12bit,length:4096*sizeof(unsigned short)
  379. ///< \~chinese 16位,长度:65536*sizeof(unsigned short) \~english 16bit,length:65536*sizeof(unsigned short)
  380. MV_CC_GAMMA_TYPE_LRGB2SRGB = 3, ///< \~chinese linear RGB to sRGB \~english linear RGB to sRGB
  381. MV_CC_GAMMA_TYPE_SRGB2LRGB = 4, ///< \~chinese sRGB to linear RGB(仅色彩插值时支持,色彩校正时无效) \~english sRGB to linear RGB
  382. }MV_CC_GAMMA_TYPE;
  383. // Gamma信息
  384. /// \~chinese Gamma信息结构体 \~english Gamma info structure
  385. typedef struct _MV_CC_GAMMA_PARAM_T_
  386. {
  387. MV_CC_GAMMA_TYPE enGammaType; ///< [IN] \~chinese Gamma类型 \~english Gamma type
  388. float fGammaValue; ///< [IN] \~chinese Gamma值[0.1,4.0] \~english Gamma value[0.1,4.0]
  389. unsigned char* pGammaCurveBuf; ///< [IN] \~chinese Gamma曲线缓存 \~english Gamma curve buffer
  390. unsigned int nGammaCurveBufLen; ///< [IN] \~chinese Gamma曲线长度 \~english Gamma curve buffer size
  391. unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
  392. }MV_CC_GAMMA_PARAM;
  393. /// \~chinese CCM参数 \~english CCM param
  394. typedef struct _MV_CC_CCM_PARAM_T_
  395. {
  396. bool bCCMEnable; ///< [IN] \~chinese 是否启用CCM \~english CCM enable
  397. int nCCMat[9]; ///< [IN] \~chinese CCM矩阵(-8192~8192) \~english Color correction matrix(-8192~8192)
  398. unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
  399. }MV_CC_CCM_PARAM;
  400. /// \~chinese CCM参数 \~english CCM param
  401. typedef struct _MV_CC_CCM_PARAM_EX_T_
  402. {
  403. bool bCCMEnable; ///< [IN] \~chinese 是否启用CCM \~english CCM enable
  404. int nCCMat[9]; ///< [IN] \~chinese CCM矩阵(-65536~65536) \~english Color correction matrix(-65536~65536)
  405. unsigned int nCCMScale; ///< [IN] \~chinese 量化系数(2的整数幂,最大65536) \~english Quantitative scale(Integer power of 2, <= 65536)
  406. unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
  407. }MV_CC_CCM_PARAM_EX;
  408. /// \~chinese 水印信息 \~english Frame-specific information
  409. typedef struct _MV_CC_FRAME_SPEC_INFO_
  410. {
  411. /// \~chinese 设备水印时标 \~english Device frame-specific time scale
  412. unsigned int nSecondCount; ///< [OUT] \~chinese 秒数 \~english The Seconds
  413. unsigned int nCycleCount; ///< [OUT] \~chinese 周期数 \~english The Count of Cycle
  414. unsigned int nCycleOffset; ///< [OUT] \~chinese 周期偏移量 \~english The Offset of Cycle
  415. float fGain; ///< [OUT] \~chinese 增益 \~english Gain
  416. float fExposureTime; ///< [OUT] \~chinese 曝光时间 \~english Exposure Time
  417. unsigned int nAverageBrightness; ///< [OUT] \~chinese 平均亮度 \~english Average brightness
  418. /// \~chinese 白平衡相关 \~english White balance
  419. unsigned int nRed; ///< [OUT] \~chinese 红色 \~english Red
  420. unsigned int nGreen; ///< [OUT] \~chinese 绿色 \~english Green
  421. unsigned int nBlue; ///< [OUT] \~chinese 蓝色 \~english Blue
  422. unsigned int nFrameCounter; ///< [OUT] \~chinese 总帧数 \~english Frame Counter
  423. unsigned int nTriggerIndex; ///< [OUT] \~chinese 触发计数 \~english Trigger Counting
  424. unsigned int nInput; ///< [OUT] \~chinese 输入 \~english Input
  425. unsigned int nOutput; ///< [OUT] \~chinese 输出 \~english Output
  426. /// \~chinese ROI区域 \~english ROI Region
  427. unsigned short nOffsetX; ///< [OUT] \~chinese 水平偏移量 \~english OffsetX
  428. unsigned short nOffsetY; ///< [OUT] \~chinese 垂直偏移量 \~english OffsetY
  429. unsigned short nFrameWidth; ///< [OUT] \~chinese 水印宽 \~english The Width of Chunk
  430. unsigned short nFrameHeight; ///< [OUT] \~chinese 水印高 \~english The Height of Chunk
  431. unsigned int nReserved[16]; ///< \~chinese 预留 \~english Reserved
  432. }MV_CC_FRAME_SPEC_INFO;
  433. /// \~chinese 无损解码参数 \~english High Bandwidth decode structure
  434. typedef struct _MV_CC_HB_DECODE_PARAM_T_
  435. {
  436. unsigned char* pSrcBuf; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
  437. unsigned int nSrcLen; ///< [IN] \~chinese 输入数据大小 \~english Input data size
  438. unsigned int nWidth; ///< [OUT] \~chinese 图像宽 \~english Width
  439. unsigned int nHeight; ///< [OUT] \~chinese 图像高 \~english Height
  440. unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
  441. unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
  442. unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据大小 \~english Output data size
  443. enum MvGvspPixelType enDstPixelType; ///< [OUT] \~chinese 输出的像素格式 \~english Output pixel format
  444. MV_CC_FRAME_SPEC_INFO stFrameSpecInfo; ///< [OUT] \~chinese 水印信息 \~english Frame Spec Info
  445. unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
  446. }MV_CC_HB_DECODE_PARAM;
  447. /// \~chinese 录像格式定义 \~english Record Format Type
  448. typedef enum _MV_RECORD_FORMAT_TYPE_
  449. {
  450. MV_FormatType_Undefined = 0, ///< \~chinese 未定义的录像格式 \~english Undefined Recode Format Type
  451. MV_FormatType_AVI = 1, ///< \~chinese AVI录像格式 \~english AVI Recode Format Type
  452. }MV_RECORD_FORMAT_TYPE;
  453. /// \~chinese 录像参数 \~english Record Parameters
  454. typedef struct _MV_CC_RECORD_PARAM_T_
  455. {
  456. enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 输入数据的像素格式 \~english Pixel Type
  457. unsigned short nWidth; ///< [IN] \~chinese 图像宽(2的倍数) \~english Width
  458. unsigned short nHeight; ///< [IN] \~chinese 图像高(2的倍数) \~english Height
  459. float fFrameRate; ///< [IN] \~chinese 帧率fps(大于1/16) \~english The Rate of Frame
  460. unsigned int nBitRate; ///< [IN] \~chinese 码率kbps(128-16*1024) \~english The Rate of Bitrate
  461. MV_RECORD_FORMAT_TYPE enRecordFmtType; ///< [IN] \~chinese 录像格式 \~english Recode Format Type
  462. char* strFilePath; ///< [IN] \~chinese 录像文件存放路径(如果路径中存在中文,需转成utf-8) \~english File Path
  463. unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
  464. }MV_CC_RECORD_PARAM;
  465. /// \~chinese 传入的图像数据 \~english Input Data
  466. typedef struct _MV_CC_INPUT_FRAME_INFO_T_
  467. {
  468. unsigned char* pData; ///< [IN] \~chinese 图像数据指针 \~english Record Data
  469. unsigned int nDataLen; ///< [IN] \~chinese 图像大小 \~english The Length of Record Data
  470. unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
  471. }MV_CC_INPUT_FRAME_INFO;
  472. /// \~chinese 采集模式 \~english Acquisition mode
  473. typedef enum _MV_CAM_ACQUISITION_MODE_
  474. {
  475. MV_ACQ_MODE_SINGLE = 0, ///< \~chinese 单帧模式 \~english Single Mode
  476. MV_ACQ_MODE_MUTLI = 1, ///< \~chinese 多帧模式 \~english Multi Mode
  477. MV_ACQ_MODE_CONTINUOUS = 2, ///< \~chinese 持续采集模式 \~english Continuous Mode
  478. }MV_CAM_ACQUISITION_MODE;
  479. /// \~chinese 增益模式 \~english Gain Mode
  480. typedef enum _MV_CAM_GAIN_MODE_
  481. {
  482. MV_GAIN_MODE_OFF = 0, ///< \~chinese 关闭 \~english Single Mode
  483. MV_GAIN_MODE_ONCE = 1, ///< \~chinese 一次 \~english Multi Mode
  484. MV_GAIN_MODE_CONTINUOUS = 2, ///< \~chinese 连续 \~english Continuous Mode
  485. }MV_CAM_GAIN_MODE;
  486. /// \~chinese 曝光模式 \~english Exposure Mode
  487. typedef enum _MV_CAM_EXPOSURE_MODE_
  488. {
  489. MV_EXPOSURE_MODE_TIMED = 0, ///< \~chinese 时间 \~english Timed
  490. MV_EXPOSURE_MODE_TRIGGER_WIDTH = 1, ///< \~chinese 触发脉冲宽度 \~english TriggerWidth
  491. }MV_CAM_EXPOSURE_MODE;
  492. /// \~chinese 自动曝光模式 \~english Auto Exposure Mode
  493. typedef enum _MV_CAM_EXPOSURE_AUTO_MODE_
  494. {
  495. MV_EXPOSURE_AUTO_MODE_OFF = 0, ///< \~chinese 关闭 \~english Off
  496. MV_EXPOSURE_AUTO_MODE_ONCE = 1, ///< \~chinese 一次 \~english Once
  497. MV_EXPOSURE_AUTO_MODE_CONTINUOUS = 2, ///< \~chinese 连续 \~english Continuous
  498. }MV_CAM_EXPOSURE_AUTO_MODE;
  499. /// \~chinese 触发模式 \~english Trigger Mode
  500. typedef enum _MV_CAM_TRIGGER_MODE_
  501. {
  502. MV_TRIGGER_MODE_OFF = 0, ///< \~chinese 关闭 \~english Off
  503. MV_TRIGGER_MODE_ON = 1, ///< \~chinese 打开 \~english ON
  504. }MV_CAM_TRIGGER_MODE;
  505. /// \~chinese Gamma选择器 \~english Gamma Selector
  506. typedef enum _MV_CAM_GAMMA_SELECTOR_
  507. {
  508. MV_GAMMA_SELECTOR_USER = 1, ///< \~chinese 用户 \~english Gamma Selector User
  509. MV_GAMMA_SELECTOR_SRGB = 2, ///< \~chinese sRGB \~english Gamma Selector sRGB
  510. }MV_CAM_GAMMA_SELECTOR;
  511. /// \~chinese 白平衡 \~english White Balance
  512. typedef enum _MV_CAM_BALANCEWHITE_AUTO_
  513. {
  514. MV_BALANCEWHITE_AUTO_OFF = 0, ///< \~chinese 关闭 \~english Off
  515. MV_BALANCEWHITE_AUTO_ONCE = 2, ///< \~chinese 一次 \~english Once
  516. MV_BALANCEWHITE_AUTO_CONTINUOUS = 1, ///< \~chinese 连续 \~english Continuous
  517. }MV_CAM_BALANCEWHITE_AUTO;
  518. /// \~chinese 触发源 \~english Trigger Source
  519. typedef enum _MV_CAM_TRIGGER_SOURCE_
  520. {
  521. MV_TRIGGER_SOURCE_LINE0 = 0, ///< \~chinese Line0 \~english Line0
  522. MV_TRIGGER_SOURCE_LINE1 = 1, ///< \~chinese Line1 \~english Line1
  523. MV_TRIGGER_SOURCE_LINE2 = 2, ///< \~chinese Line2 \~english Line2
  524. MV_TRIGGER_SOURCE_LINE3 = 3, ///< \~chinese Line3 \~english Line3
  525. MV_TRIGGER_SOURCE_COUNTER0 = 4, ///< \~chinese Conuter0 \~english Conuter0
  526. MV_TRIGGER_SOURCE_SOFTWARE = 7, ///< \~chinese 软触发 \~english Software
  527. MV_TRIGGER_SOURCE_FrequencyConverter= 8, ///< \~chinese 变频器 \~english Frequency Converter
  528. }MV_CAM_TRIGGER_SOURCE;
  529. /// \~chinese GigEVision IP配置 \~english GigEVision IP Configuration
  530. #define MV_IP_CFG_STATIC 0x05000000 ///< \~chinese 静态 \~english Static
  531. #define MV_IP_CFG_DHCP 0x06000000 ///< \~chinese DHCP \~english DHCP
  532. #define MV_IP_CFG_LLA 0x04000000 ///< \~chinese LLA \~english LLA
  533. /// \~chinese GigEVision网络传输模式 \~english GigEVision Net Transfer Mode
  534. #define MV_NET_TRANS_DRIVER 0x00000001 ///< \~chinese 驱动 \~english Driver
  535. #define MV_NET_TRANS_SOCKET 0x00000002 ///< \~chinese Socket \~english Socket
  536. /// \~chinese CameraLink波特率 \~english CameraLink Baud Rates (CLUINT32)
  537. #define MV_CAML_BAUDRATE_9600 0x00000001 ///< \~chinese 9600 \~english 9600
  538. #define MV_CAML_BAUDRATE_19200 0x00000002 ///< \~chinese 19200 \~english 19200
  539. #define MV_CAML_BAUDRATE_38400 0x00000004 ///< \~chinese 38400 \~english 38400
  540. #define MV_CAML_BAUDRATE_57600 0x00000008 ///< \~chinese 57600 \~english 57600
  541. #define MV_CAML_BAUDRATE_115200 0x00000010 ///< \~chinese 115200 \~english 115200
  542. #define MV_CAML_BAUDRATE_230400 0x00000020 ///< \~chinese 230400 \~english 230400
  543. #define MV_CAML_BAUDRATE_460800 0x00000040 ///< \~chinese 460800 \~english 460800
  544. #define MV_CAML_BAUDRATE_921600 0x00000080 ///< \~chinese 921600 \~english 921600
  545. #define MV_CAML_BAUDRATE_AUTOMAX 0x40000000 ///< \~chinese 最大值 \~english Auto Max
  546. /// \~chinese 异常消息类型 \~english Exception message type
  547. #define MV_EXCEPTION_DEV_DISCONNECT 0x00008001 ///< \~chinese 设备断开连接 \~english The device is disconnected
  548. #define MV_EXCEPTION_VERSION_CHECK 0x00008002 ///< \~chinese SDK与驱动版本不匹配 \~english SDK does not match the driver version
  549. ///< \~chinese 设备Event事件名称最大长度 \~english Max length of event name
  550. #define MAX_EVENT_NAME_SIZE 128
  551. /// \~chinese Event事件回调信息\ \~english Event callback infomation
  552. typedef struct _MV_EVENT_OUT_INFO_
  553. {
  554. char EventName[MAX_EVENT_NAME_SIZE]; ///< [OUT] \~chinese Event名称 \~english Event name
  555. unsigned short nEventID; ///< [OUT] \~chinese Event号 \~english Event ID
  556. unsigned short nStreamChannel; ///< [OUT] \~chinese 流通道序号 \~english Circulation number
  557. unsigned int nBlockIdHigh; ///< [OUT] \~chinese 帧号高位 \~english BlockId high
  558. unsigned int nBlockIdLow; ///< [OUT] \~chinese 帧号低位 \~english BlockId low
  559. unsigned int nTimestampHigh; ///< [OUT] \~chinese 时间戳高位 \~english Timestramp high
  560. unsigned int nTimestampLow; ///< [OUT] \~chinese 时间戳低位 \~english Timestramp low
  561. void* pEventData; ///< [OUT] \~chinese Event数据 \~english Event data
  562. unsigned int nEventDataSize; ///< [OUT] \~chinese Event数据长度 \~english Event data len
  563. unsigned int nReserved[16]; ///< \~chinese 预留 \~english Reserved
  564. }MV_EVENT_OUT_INFO;
  565. /// \~chinese 文件存取 \~english File Access
  566. typedef struct _MV_CC_FILE_ACCESS_T
  567. {
  568. const char* pUserFileName; ///< [IN] \~chinese 用户文件名 \~english User file name
  569. const char* pDevFileName; ///< [IN] \~chinese 设备文件名 \~english Device file name
  570. unsigned int nReserved[32]; ///< \~chinese 预留 \~english Reserved
  571. }MV_CC_FILE_ACCESS;
  572. /// \~chinese 文件存取进度 \~english File Access Progress
  573. typedef struct _MV_CC_FILE_ACCESS_PROGRESS_T
  574. {
  575. int64_t nCompleted; ///< [OUT] \~chinese 已完成的长度 \~english Completed Length
  576. int64_t nTotal; ///< [OUT] \~chinese 总长度 \~english Total Length
  577. unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
  578. }MV_CC_FILE_ACCESS_PROGRESS;
  579. /// \~chinese Gige的传输类型 \~english The transmission type of Gige
  580. typedef enum _MV_GIGE_TRANSMISSION_TYPE_
  581. {
  582. MV_GIGE_TRANSTYPE_UNICAST = 0x0, ///< \~chinese 表示单播(默认) \~english Unicast mode
  583. MV_GIGE_TRANSTYPE_MULTICAST = 0x1, ///< \~chinese 表示组播 \~english Multicast mode
  584. MV_GIGE_TRANSTYPE_LIMITEDBROADCAST = 0x2, ///< \~chinese 表示局域网内广播,暂不支持 \~english Limited broadcast mode,not support
  585. MV_GIGE_TRANSTYPE_SUBNETBROADCAST = 0x3, ///< \~chinese 表示子网内广播,暂不支持 \~english Subnet broadcast mode,not support
  586. MV_GIGE_TRANSTYPE_CAMERADEFINED = 0x4, ///< \~chinese 表示从设备获取,暂不支持 \~english Transtype from camera,not support
  587. MV_GIGE_TRANSTYPE_UNICAST_DEFINED_PORT = 0x5, ///< \~chinese 表示用户自定义应用端接收图像数据Port号 \~english User Defined Receive Data Port
  588. MV_GIGE_TRANSTYPE_UNICAST_WITHOUT_RECV = 0x00010000, ///< \~chinese 表示设置了单播,但本实例不接收图像数据 \~english Unicast without receive data
  589. MV_GIGE_TRANSTYPE_MULTICAST_WITHOUT_RECV= 0x00010001, ///< \~chinese 表示组播模式,但本实例不接收图像数据 \~english Multicast without receive data
  590. }MV_GIGE_TRANSMISSION_TYPE;
  591. /// \~chinese 网络传输模式 \~english Transmission type
  592. typedef struct _MV_TRANSMISSION_TYPE_T
  593. {
  594. MV_GIGE_TRANSMISSION_TYPE enTransmissionType; ///< [IN] \~chinese 传输模式 \~english Transmission type
  595. unsigned int nDestIp; ///< [IN] \~chinese 目标IP,组播模式下有意义 \~english Destination IP
  596. unsigned short nDestPort; ///< [IN] \~chinese 目标Port,组播模式下有意义 \~english Destination port
  597. unsigned int nReserved[32]; ///< \~chinese 预留 \~english Reserved
  598. }MV_TRANSMISSION_TYPE;
  599. /// \~chinese 动作命令信息 \~english Action Command
  600. typedef struct _MV_ACTION_CMD_INFO_T
  601. {
  602. unsigned int nDeviceKey; ///< [IN] \~chinese 设备密钥 \~english Device Key;
  603. unsigned int nGroupKey; ///< [IN] \~chinese 组键 \~english Group Key
  604. unsigned int nGroupMask; ///< [IN] \~chinese 组掩码 \~english Group Mask
  605. unsigned int bActionTimeEnable; ///< [IN] \~chinese 只有设置成1时Action Time才有效,非1时无效 \~english Action Time Enable
  606. int64_t nActionTime; ///< [IN] \~chinese 预定的时间,和主频有关 \~english Action Time
  607. const char* pBroadcastAddress; ///< [IN] \~chinese 广播包地址 \~english Broadcast Address
  608. unsigned int nTimeOut; ///< [IN] \~chinese 等待ACK的超时时间,如果为0表示不需要ACK \~english TimeOut
  609. unsigned int bSpecialNetEnable; ///< [IN] \~chinese 只有设置成1时指定的网卡IP才有效,非1时无效 \~english Special IP Enable
  610. unsigned int nSpecialNetIP; ///< [IN] \~chinese 指定的网卡IP \~english Special Net IP address
  611. unsigned int nReserved[14]; ///< \~chinese 预留 \~english Reserved
  612. }MV_ACTION_CMD_INFO;
  613. /// \~chinese 动作命令返回信息 \~english Action Command Result
  614. typedef struct _MV_ACTION_CMD_RESULT_T
  615. {
  616. unsigned char strDeviceAddress[12 + 3 + 1]; ///< [OUT] \~chinese 设备IP \~english IP address of the device
  617. int nStatus; ///< [OUT] \~chinese 状态码 \~english status code returned by the device
  618. //1.0x0000:success.
  619. //2.0x8001:Command is not supported by the device.
  620. //3.0x8013:The device is not synchronized to a master clock to be used as time reference.
  621. //4.0x8015:A device queue or packet data has overflowed.
  622. //5.0x8016:The requested scheduled action command was requested at a time that is already past.
  623. unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
  624. }MV_ACTION_CMD_RESULT;
  625. /// \~chinese 动作命令返回信息列表 \~english Action Command Result List
  626. typedef struct _MV_ACTION_CMD_RESULT_LIST_T
  627. {
  628. unsigned int nNumResults; ///< [OUT] \~chinese 返回值个数 \~english Number of returned values
  629. MV_ACTION_CMD_RESULT* pResults; ///< [OUT] \~chinese 动作命令结果 \~english Reslut of action command
  630. }MV_ACTION_CMD_RESULT_LIST;
  631. /// \~chinese 每个节点对应的接口类型 \~english Interface type corresponds to each node
  632. enum MV_XML_InterfaceType
  633. {
  634. IFT_IValue, ///< \~chinese Value \~english IValue interface
  635. IFT_IBase, ///< \~chinese Base \~english IBase interface
  636. IFT_IInteger, ///< \~chinese Integer \~english IInteger interface
  637. IFT_IBoolean, ///< \~chinese Boolean \~english IBoolean interface
  638. IFT_ICommand, ///< \~chinese Command \~english ICommand interface
  639. IFT_IFloat, ///< \~chinese Float \~english IFloat interface
  640. IFT_IString, ///< \~chinese String \~english IString interface
  641. IFT_IRegister, ///< \~chinese Register \~english IRegister interface
  642. IFT_ICategory, ///< \~chinese Category \~english ICategory interface
  643. IFT_IEnumeration, ///< \~chinese Enumeration \~english IEnumeration interface
  644. IFT_IEnumEntry, ///< \~chinese EnumEntry \~english IEnumEntry interface
  645. IFT_IPort, ///< \~chinese Port \~english IPort interface
  646. };
  647. /// \~chinese 节点的访问模式 \~english Node Access Mode
  648. enum MV_XML_AccessMode
  649. {
  650. AM_NI, ///< \~chinese 不可实现 \~english Not implemented
  651. AM_NA, ///< \~chinese 不可用 \~english Not available
  652. AM_WO, ///< \~chinese 只写 \~english Write Only
  653. AM_RO, ///< \~chinese 只读 \~english Read Only
  654. AM_RW, ///< \~chinese 读写 \~english Read and Write
  655. AM_Undefined, ///< \~chinese 未定义 \~english Object is not yet initialized
  656. AM_CycleDetect, ///< \~chinese 内部用于AccessMode循环检测 \~english used internally for AccessMode cycle detection
  657. };
  658. /// \~chinese 最大XML符号数 \~english Max XML Symbolic Number
  659. #define MV_MAX_XML_SYMBOLIC_NUM 64
  660. /// \~chinese 枚举类型值 \~english Enumeration Value
  661. typedef struct _MVCC_ENUMVALUE_T
  662. {
  663. unsigned int nCurValue; ///< [OUT] \~chinese 当前值 \~english Current Value
  664. unsigned int nSupportedNum; ///< [OUT] \~chinese 数据的有效数据个数 \~english Number of valid data
  665. unsigned int nSupportValue[MV_MAX_XML_SYMBOLIC_NUM]; ///< [OUT] \~chinese 支持的枚举值 \~english Support Value
  666. unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
  667. }MVCC_ENUMVALUE;
  668. /// \~chinese Int类型值 \~english Int Value
  669. typedef struct _MVCC_INTVALUE_T
  670. {
  671. unsigned int nCurValue; ///< [OUT] \~chinese 当前值 \~english Current Value
  672. unsigned int nMax; ///< [OUT] \~chinese 最大值 \~english Max
  673. unsigned int nMin; ///< [OUT] \~chinese 最小值 \~english Min
  674. unsigned int nInc; ///< [OUT] \~chinese \~english Inc
  675. unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
  676. }MVCC_INTVALUE;
  677. /// \~chinese Int类型值Ex \~english Int Value Ex
  678. typedef struct _MVCC_INTVALUE_EX_T
  679. {
  680. int64_t nCurValue; ///< [OUT] \~chinese 当前值 \~english Current Value
  681. int64_t nMax; ///< [OUT] \~chinese 最大值 \~english Max
  682. int64_t nMin; ///< [OUT] \~chinese 最小值 \~english Min
  683. int64_t nInc; ///< [OUT] \~chinese Inc \~english Inc
  684. unsigned int nReserved[16]; ///< \~chinese 预留 \~english Reserved
  685. }MVCC_INTVALUE_EX;
  686. /// \~chinese Float类型值 \~english Float Value
  687. typedef struct _MVCC_FLOATVALUE_T
  688. {
  689. float fCurValue; ///< [OUT] \~chinese 当前值 \~english Current Value
  690. float fMax; ///< [OUT] \~chinese 最大值 \~english Max
  691. float fMin; ///< [OUT] \~chinese 最小值 \~english Min
  692. unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
  693. }MVCC_FLOATVALUE;
  694. /// \~chinese String类型值 \~english String Value
  695. typedef struct _MVCC_STRINGVALUE_T
  696. {
  697. char chCurValue[256]; ///< [OUT] \~chinese 当前值 \~english Current Value
  698. int64_t nMaxLength; ///< [OUT] \~chinese 最大长度 \~english MaxLength
  699. unsigned int nReserved[2]; ///< \~chinese 预留 \~english Reserved
  700. }MVCC_STRINGVALUE;
  701. #endif /* _MV_CAMERA_PARAMS_H_ */