#ifndef _MV_CAMERA_PARAMS_H_ #define _MV_CAMERA_PARAMS_H_ #include "PixelType.h" #ifndef __cplusplus typedef char bool; #define true 1 #define false 0 #endif /// \~chinese /// 设备类型定义 /// \~english /// Device Type Definition #define MV_UNKNOW_DEVICE 0x00000000 ///< \~chinese 未知设备类型,保留意义 \~english Unknown Device Type, Reserved #define MV_GIGE_DEVICE 0x00000001 ///< \~chinese GigE设备 \~english GigE Device #define MV_1394_DEVICE 0x00000002 ///< \~chinese 1394-a/b 设备 \~english 1394-a/b Device #define MV_USB_DEVICE 0x00000004 ///< \~chinese USB 设备 \~english USB Device #define MV_CAMERALINK_DEVICE 0x00000008 ///< \~chinese CamLink设备 \~english CamLink Device /// \~chinese GigE设备信息 \~english GigE device info typedef struct _MV_GIGE_DEVICE_INFO_ { unsigned int nIpCfgOption; unsigned int nIpCfgCurrent; ///< \~chinese \~english IP configuration:bit31-static bit30-dhcp bit29-lla unsigned int nCurrentIp; unsigned int nCurrentSubNetMask; ///< \~chinese \~english curtent subnet mask unsigned int nDefultGateWay; ///< \~chinese \~english current gateway unsigned char chManufacturerName[32]; unsigned char chModelName[32]; unsigned char chDeviceVersion[32]; unsigned char chManufacturerSpecificInfo[48]; unsigned char chSerialNumber[16]; unsigned char chUserDefinedName[16]; unsigned int nNetExport; ///< \~chinese 网口IP地址 \~english NetWork IP Address unsigned int nReserved[4]; }MV_GIGE_DEVICE_INFO; #define INFO_MAX_BUFFER_SIZE 64 /// \~chinese USB设备信息 \~english USB device info typedef struct _MV_USB3_DEVICE_INFO_ { unsigned char CrtlInEndPoint; ///< \~chinese 控制输入端点 \~english Control input endpoint unsigned char CrtlOutEndPoint; ///< \~chinese 控制输出端点 \~english Control output endpoint unsigned char StreamEndPoint; ///< \~chinese 流端点 \~english Flow endpoint unsigned char EventEndPoint; ///< \~chinese 事件端点 \~english Event endpoint unsigned short idVendor; ///< \~chinese 供应商ID号 \~english Vendor ID Number unsigned short idProduct; ///< \~chinese 产品ID号 \~english Device ID Number unsigned int nDeviceNumber; ///< \~chinese 设备序列号 \~english Device Serial Number unsigned char chDeviceGUID[INFO_MAX_BUFFER_SIZE]; ///< \~chinese 设备GUID号 \~english Device GUID Number unsigned char chVendorName[INFO_MAX_BUFFER_SIZE]; ///< \~chinese 供应商名字 \~english Vendor Name unsigned char chModelName[INFO_MAX_BUFFER_SIZE]; ///< \~chinese 型号名字 \~english Model Name unsigned char chFamilyName[INFO_MAX_BUFFER_SIZE]; ///< \~chinese 家族名字 \~english Family Name unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE]; ///< \~chinese 设备版本号 \~english Device Version unsigned char chManufacturerName[INFO_MAX_BUFFER_SIZE]; ///< \~chinese 制造商名字 \~english Manufacturer Name unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE]; ///< \~chinese 序列号 \~english Serial Number unsigned char chUserDefinedName[INFO_MAX_BUFFER_SIZE]; ///< \~chinese 用户自定义名字 \~english User Defined Name unsigned int nbcdUSB; ///< \~chinese 支持的USB协议 \~english Support USB Protocol unsigned int nReserved[3]; ///< \~chinese 保留字节 \~english Reserved bytes }MV_USB3_DEVICE_INFO; /// \~chinese /// \brief CamLink设备信息 /// \~english /// \brief CamLink device info typedef struct _MV_CamL_DEV_INFO_ { unsigned char chPortID[INFO_MAX_BUFFER_SIZE]; unsigned char chModelName[INFO_MAX_BUFFER_SIZE]; unsigned char chFamilyName[INFO_MAX_BUFFER_SIZE]; unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE]; unsigned char chManufacturerName[INFO_MAX_BUFFER_SIZE]; unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE]; unsigned int nReserved[38]; }MV_CamL_DEV_INFO; /// \~chinese /// \brief 设备信息 /// \~english /// \brief Device info typedef struct _MV_CC_DEVICE_INFO_ { unsigned short nMajorVer; unsigned short nMinorVer; unsigned int nMacAddrHigh; ///< \~chinese MAC 地址\~english MAC Address unsigned int nMacAddrLow; unsigned int nTLayerType; ///< \~chinese 设备传输层协议类型,e.g. MV_GIGE_DEVICE\~english Device Transport Layer Protocol Type, e.g. MV_GIGE_DEVICE unsigned int nReserved[4]; union { MV_GIGE_DEVICE_INFO stGigEInfo; MV_USB3_DEVICE_INFO stUsb3VInfo; MV_CamL_DEV_INFO stCamLInfo; // more ... }SpecialInfo; }MV_CC_DEVICE_INFO; /// \~chinese 网络传输的相关信息\~english Network transmission information typedef struct _MV_NETTRANS_INFO_ { int64_t nReviceDataSize; ///< \~chinese 已接收数据大小 [统计StartGrabbing和StopGrabbing之间的数据量]\~english Received Data Size [Calculate the Data Size between StartGrabbing and StopGrabbing] int nThrowFrameCount; ///< \~chinese 丢帧数量\~english Throw frame number unsigned int nNetRecvFrameCount; int64_t nRequestResendPacketCount; ///< \~chinese 请求重发包数 int64_t nResendPacketCount; ///< \~chinese 重发包数 }MV_NETTRANS_INFO; #define MV_MAX_TLS_NUM 8 ///< \~chinese 最多支持的传输层实例个数\~english The maximum number of supported transport layer instances #define MV_MAX_DEVICE_NUM 256 ///< \~chinese 最大支持的设备个数\~english The maximum number of supported devices /// \~chinese /// \brief 设备信息列表 /// \~english /// \brief Device Information List typedef struct _MV_CC_DEVICE_INFO_LIST_ { unsigned int nDeviceNum; ///< \~chinese 在线设备数量\~english Online Device Number MV_CC_DEVICE_INFO* pDeviceInfo[MV_MAX_DEVICE_NUM]; ///< \~chinese 支持最多256个设备\~english Support up to 256 devices }MV_CC_DEVICE_INFO_LIST; /// \~chinese Chunk内容 \~english The content of ChunkData typedef struct _MV_CHUNK_DATA_CONTENT_ { unsigned char* pChunkData; unsigned int nChunkID; unsigned int nChunkLen; unsigned int nReserved[8]; // 保留 }MV_CHUNK_DATA_CONTENT; /// \~chinese 输出帧的信息\~english Output Frame Information typedef struct _MV_FRAME_OUT_INFO_ { unsigned short nWidth; ///< \~chinese 图像宽 \~english Image Width unsigned short nHeight; ///< \~chinese 图像高 \~english Image Height enum MvGvspPixelType enPixelType; ///< \~chinese 像素格式 \~english Pixel Type unsigned int nFrameNum; ///< \~chinese 帧号 \~english Frame Number unsigned int nDevTimeStampHigh; ///< \~chinese 时间戳高32位\~english Timestamp high 32 bits unsigned int nDevTimeStampLow; ///< \~chinese 时间戳低32位\~english Timestamp low 32 bits unsigned int nReserved0; ///< \~chinese 保留,8字节对齐\~english Reserved, 8-byte aligned int64_t nHostTimeStamp; ///< \~chinese 主机生成的时间戳\~english Host-generated timestamp unsigned int nFrameLen; unsigned int nLostPacket; ///< \~chinese 本帧丢包数\~english Lost Pacekt Number In This Frame unsigned int nReserved[2]; }MV_FRAME_OUT_INFO; /// \~chinese 输出帧的信息\~english Output Frame Information typedef struct _MV_FRAME_OUT_INFO_EX_ { unsigned short nWidth; ///< \~chinese 图像宽 \~english Image Width unsigned short nHeight; ///< \~chinese 图像高 \~english Image Height enum MvGvspPixelType enPixelType; ///< \~chinese 像素格式 \~english Pixel Type unsigned int nFrameNum; ///< \~chinese 帧号 \~english Frame Number unsigned int nDevTimeStampHigh; ///< \~chinese 时间戳高32位\~english Timestamp high 32 bits unsigned int nDevTimeStampLow; ///< \~chinese 时间戳低32位\~english Timestamp low 32 bits unsigned int nReserved0; ///< \~chinese 保留,8字节对齐\~english Reserved, 8-byte aligned int64_t nHostTimeStamp; ///< \~chinese 主机生成的时间戳\~english Host-generated timestamp unsigned int nFrameLen; /// \~chinese 设备水印时标\~english Device frame-specific time scale unsigned int nSecondCount; unsigned int nCycleCount; unsigned int nCycleOffset; float fGain; float fExposureTime; unsigned int nAverageBrightness; ///< \~chinese 平均亮度\~english Average brightness /// \~chinese 白平衡相关\~english White balance unsigned int nRed; unsigned int nGreen; unsigned int nBlue; unsigned int nFrameCounter; unsigned int nTriggerIndex; ///< \~chinese 触发计数\~english Trigger Counting unsigned int nInput; ///< \~chinese 输入\~english Input unsigned int nOutput; ///< \~chinese 输出\~english Output /// \~chinese ROI区域\~english ROI Region unsigned short nOffsetX; unsigned short nOffsetY; unsigned short nChunkWidth; unsigned short nChunkHeight; unsigned int nLostPacket; ///< \~chinese 本帧丢包数\~english Lost Pacekt Number In This Frame unsigned int nUnparsedChunkNum;///< \~chinese 未解析的Chunkdata个数 union { MV_CHUNK_DATA_CONTENT* pUnparsedChunkContent; int64_t nAligning; }UnparsedChunkList; unsigned int nReserved[36]; // 保留 }MV_FRAME_OUT_INFO_EX; /// \~chinese 图像结构体,输出图像指针地址及图像信息\~english Image Struct, output the pointer of Image and the information of the specific image typedef struct _MV_FRAME_OUT_ { unsigned char* pBufAddr; ///< \~chinese 图像指针地址\~english pointer of image MV_FRAME_OUT_INFO_EX stFrameInfo; ///< \~chinese 图像信息\~english information of the specific image unsigned int nRes[16]; ///< \~chinese 保留\~english reserved }MV_FRAME_OUT; typedef struct _MV_DISPLAY_FRAME_INFO_ { void* hWnd; ///< \~chinese 窗口句柄\~english HWND unsigned char* pData; ///< \~chinese 显示的数据\~english Data Buffer unsigned int nDataLen; ///< \~chinese 数据长度\~english Data Size unsigned short nWidth; ///< \~chinese 图像宽\~english Width unsigned short nHeight; ///< \~chinese 图像高\~english Height enum MvGvspPixelType enPixelType; ///< \~chinese 像素格式\~english Pixel format unsigned int nRes[4]; }MV_DISPLAY_FRAME_INFO; /// \~chinese 保存图片格式\~english Save image type enum MV_SAVE_IAMGE_TYPE { MV_Image_Undefined = 0, MV_Image_Bmp = 1, MV_Image_Jpeg = 2, MV_Image_Png = 3, MV_Image_Tif = 4, }; /// \~chinese 图片保存参数\~english Save Image Parameters typedef struct _MV_SAVE_IMAGE_PARAM_T_ { unsigned char* pData; ///< [IN] \~chinese 输入数据缓存\~english Input Data Buffer unsigned int nDataLen; ///< [IN] \~chinese 输入数据大小\~english Input Data Size enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 输入数据的像素格式\~english Input Data Pixel Format unsigned short nWidth; ///< [IN] \~chinese 图像宽\~english Image Width unsigned short nHeight; ///< [IN] \~chinese 图像高\~english Image Height unsigned char* pImageBuffer; ///< [OUT] \~chinese 输出图片缓存\~english Output Image Buffer unsigned int nImageLen; ///< [OUT] \~chinese 输出图片大小\~english Output Image Size unsigned int nBufferSize; ///< [IN] \~chinese 提供的输出缓冲区大小\~english Output buffer size provided enum MV_SAVE_IAMGE_TYPE enImageType; ///< [IN] \~chinese 输出图片格式\~english Output Image Format }MV_SAVE_IMAGE_PARAM; /// \~chinese 图片保存参数\~english Save Image Parameters typedef struct _MV_SAVE_IMAGE_PARAM_T_EX_ { unsigned char* pData; ///< [IN] \~chinese 输入数据缓存\~english Input Data Buffer unsigned int nDataLen; ///< [IN] \~chinese 输入数据大小\~english Input Data Size enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 输入数据的像素格式\~english Input Data Pixel Format unsigned short nWidth; ///< [IN] \~chinese 图像宽\~english Image Width unsigned short nHeight; ///< [IN] \~chinese 图像高\~english Image Height unsigned char* pImageBuffer; ///< [OUT] \~chinese 输出图片缓存\~english Output Image Buffer unsigned int nImageLen; ///< [OUT] \~chinese 输出图片大小\~english Output Image Size unsigned int nBufferSize; ///< [IN] \~chinese 提供的输出缓冲区大小\~english Output buffer size provided enum MV_SAVE_IAMGE_TYPE enImageType; ///< [IN] \~chinese 输出图片格式\~english Output Image Format unsigned int nJpgQuality; ///< [IN] \~chinese JPG编码质量(50-99],其它格式无效\~english Encoding quality(50-99],Other formats are invalid ///< [IN] \~chinese Bayer格式转为RGB24的插值方法 0-最近邻 1-双线性 2-Hamilton (如果传入其它值则默认为最近邻) ///< [IN] \~english Interpolation method of convert Bayer to RGB24 0-nearest neighbour 1-bilinearity 2-Hamilton unsigned int iMethodValue; unsigned int nReserved[3]; }MV_SAVE_IMAGE_PARAM_EX; /// \~chinese 旋转角度 \~english Rotation angle typedef enum _MV_IMG_ROTATION_ANGLE_ { MV_IMAGE_ROTATE_90 = 1, MV_IMAGE_ROTATE_180 = 2, MV_IMAGE_ROTATE_270 = 3, }MV_IMG_ROTATION_ANGLE; /// \~chinese 图像旋转结构体 \~english Rotate image structure typedef struct _MV_CC_ROTATE_IMAGE_PARAM_T_ { enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format unsigned int nWidth; ///< [IN][OUT] \~chinese 图像宽 \~english Width unsigned int nHeight; ///< [IN][OUT] \~chinese 图像高 \~english Height unsigned char* pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size MV_IMG_ROTATION_ANGLE enRotationAngle; ///< [IN] \~chinese 旋转角度 \~english Rotation angle unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved }MV_CC_ROTATE_IMAGE_PARAM; /// \~chinese 翻转类型 \~english Flip type typedef enum _MV_IMG_FLIP_TYPE_ { MV_FLIP_VERTICAL = 1, MV_FLIP_HORIZONTAL = 2, }MV_IMG_FLIP_TYPE; /// \~chinese 图像翻转结构体 \~english Flip image structure typedef struct _MV_CC_FLIP_IMAGE_PARAM_T_ { enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format unsigned int nWidth; ///< [IN] \~chinese 图像宽 \~english Width unsigned int nHeight; ///< [IN] \~chinese 图像高 \~english Height unsigned char* pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size MV_IMG_FLIP_TYPE enFlipType; ///< [IN] \~chinese 翻转类型 \~english Flip type unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved }MV_CC_FLIP_IMAGE_PARAM; /// \~chinese 图像转换结构体 \~english Pixel convert structure typedef struct _MV_PIXEL_CONVERT_PARAM_T_ { unsigned short nWidth; ///< [IN] \~chinese 图像宽 \~english Width unsigned short nHeight; ///< [IN] \~chinese 图像高\~english Height enum MvGvspPixelType enSrcPixelType; ///< [IN] \~chinese 源像素格式\~english Source pixel format unsigned char* pSrcData; ///< [IN] \~chinese 输入数据缓存\~english Input data buffer unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据大小\~english Input data size enum MvGvspPixelType enDstPixelType; ///< [IN] \~chinese 目标像素格式\~english Destination pixel format unsigned char* pDstBuffer; ///< [OUT] \~chinese 输出数据缓存\~english Output data buffer unsigned int nDstLen; ///< [OUT] \~chinese 输出数据大小\~english Output data size unsigned int nDstBufferSize; ///< [IN] \~chinese 提供的输出缓冲区大小\~english Provided outbut buffer size unsigned int nRes[4]; }MV_CC_PIXEL_CONVERT_PARAM; /// \~chinese Gamma类型 \~english Gamma type typedef enum _MV_CC_GAMMA_TYPE_ { MV_CC_GAMMA_TYPE_NONE = 0, ///< \~chinese 不启用 \~english Disable MV_CC_GAMMA_TYPE_VALUE = 1, ///< \~chinese Gamma值 \~english Gamma value MV_CC_GAMMA_TYPE_USER_CURVE = 2, ///< \~chinese Gamma曲线 \~english Gamma curve ///< \~chinese 长度:256*sizeof(unsigned char) \~english 8bit,length:256*sizeof(unsigned char) MV_CC_GAMMA_TYPE_LRGB2SRGB = 3, ///< \~chinese linear RGB to sRGB \~english linear RGB to sRGB MV_CC_GAMMA_TYPE_SRGB2LRGB = 4, ///< \~chinese sRGB to linear RGB(仅色彩插值时支持,色彩校正时无效) \~english sRGB to linear RGB }MV_CC_GAMMA_TYPE; // Gamma信息 /// \~chinese Gamma信息结构体 \~english Gamma info structure typedef struct _MV_CC_GAMMA_PARAM_T_ { MV_CC_GAMMA_TYPE enGammaType; ///< [IN] \~chinese Gamma类型 \~english Gamma type float fGammaValue; ///< [IN] \~chinese Gamma值[0.1,4.0] \~english Gamma value[0.1,4.0] unsigned char* pGammaCurveBuf; ///< [IN] \~chinese Gamma曲线缓存 \~english Gamma curve buffer unsigned int nGammaCurveBufLen; ///< [IN] \~chinese Gamma曲线长度 \~english Gamma curve buffer size unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved }MV_CC_GAMMA_PARAM; /// \~chinese 水印信息 \~english Frame-specific information typedef struct _MV_CC_FRAME_SPEC_INFO_ { /// \~chinese 设备水印时标 \~english Device frame-specific time scale unsigned int nSecondCount; ///< [OUT] \~chinese 秒数 \~english The Seconds unsigned int nCycleCount; ///< [OUT] \~chinese 周期数 \~english The Count of Cycle unsigned int nCycleOffset; ///< [OUT] \~chinese 周期偏移量 \~english The Offset of Cycle float fGain; ///< [OUT] \~chinese 增益 \~english Gain float fExposureTime; ///< [OUT] \~chinese 曝光时间 \~english Exposure Time unsigned int nAverageBrightness; ///< [OUT] \~chinese 平均亮度 \~english Average brightness /// \~chinese 白平衡相关 \~english White balance unsigned int nRed; ///< [OUT] \~chinese 红色 \~english Red unsigned int nGreen; ///< [OUT] \~chinese 绿色 \~english Green unsigned int nBlue; ///< [OUT] \~chinese 蓝色 \~english Blue unsigned int nFrameCounter; ///< [OUT] \~chinese 总帧数 \~english Frame Counter unsigned int nTriggerIndex; ///< [OUT] \~chinese 触发计数 \~english Trigger Counting unsigned int nInput; ///< [OUT] \~chinese 输入 \~english Input unsigned int nOutput; ///< [OUT] \~chinese 输出 \~english Output /// \~chinese ROI区域 \~english ROI Region unsigned short nOffsetX; ///< [OUT] \~chinese 水平偏移量 \~english OffsetX unsigned short nOffsetY; ///< [OUT] \~chinese 垂直偏移量 \~english OffsetY unsigned short nFrameWidth; ///< [OUT] \~chinese 水印宽 \~english The Width of Chunk unsigned short nFrameHeight; ///< [OUT] \~chinese 水印高 \~english The Height of Chunk unsigned int nReserved[16]; ///< \~chinese 预留 \~english Reserved }MV_CC_FRAME_SPEC_INFO; /// \~chinese 无损解码参数 \~english High Bandwidth decode structure typedef struct _MV_CC_HB_DECODE_PARAM_T_ { unsigned char* pSrcBuf; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer unsigned int nSrcLen; ///< [IN] \~chinese 输入数据大小 \~english Input data size unsigned int nWidth; ///< [OUT] \~chinese 图像宽 \~english Width unsigned int nHeight; ///< [OUT] \~chinese 图像高 \~english Height unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据大小 \~english Output data size enum MvGvspPixelType enDstPixelType; ///< [OUT] \~chinese 输出的像素格式 \~english Output pixel format MV_CC_FRAME_SPEC_INFO stFrameSpecInfo; ///< [OUT] \~chinese 水印信息 \~english Frame Spec Info unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved }MV_CC_HB_DECODE_PARAM; /// \~chinese 录像格式定义\~english Record Format Type typedef enum _MV_RECORD_FORMAT_TYPE_ { MV_FormatType_Undefined = 0, MV_FormatType_AVI = 1, }MV_RECORD_FORMAT_TYPE; /// \~chinese 录像参数\~english Record Parameters typedef struct _MV_CC_RECORD_PARAM_T_ { enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 输入数据的像素格式 unsigned short nWidth; ///< [IN] \~chinese 图像宽(指定目标参数时需为2的倍数) unsigned short nHeight; ///< [IN] \~chinese 图像高(指定目标参数时需为2的倍数) float fFrameRate; ///< [IN] \~chinese 帧率fps(1/16-120) unsigned int nBitRate; ///< [IN] \~chinese 码率kbps(128kbps-16Mbps) MV_RECORD_FORMAT_TYPE enRecordFmtType; ///< [IN] \~chinese 录像格式 char* strFilePath; ///< [IN] \~chinese 录像文件存放路径(如果路径中存在中文,需转成utf-8) unsigned int nRes[8]; }MV_CC_RECORD_PARAM; /// \~chinese 录像数据\~english Record Data typedef struct _MV_CC_INPUT_FRAME_INFO_T_ { unsigned char* pData; ///< [IN] \~chinese 图像数据指针 unsigned int nDataLen; ///< [IN] \~chinese 图像大小 unsigned int nRes[8]; }MV_CC_INPUT_FRAME_INFO; /// \~chinese 采集模式\~english Acquisition mode typedef enum _MV_CAM_ACQUISITION_MODE_ { MV_ACQ_MODE_SINGLE = 0, ///< \~chinese 单帧模式\~english Single Mode MV_ACQ_MODE_MUTLI = 1, ///< \~chinese 多帧模式\~english Multi Mode MV_ACQ_MODE_CONTINUOUS = 2, ///< \~chinese 持续采集模式\~english Continuous Mode }MV_CAM_ACQUISITION_MODE; /// \~chinese 增益模式\~english Gain Mode typedef enum _MV_CAM_GAIN_MODE_ { MV_GAIN_MODE_OFF = 0, ///< \~chinese 关闭\~english Single Mode MV_GAIN_MODE_ONCE = 1, ///< \~chinese 一次\~english Multi Mode MV_GAIN_MODE_CONTINUOUS = 2, ///< \~chinese 连续\~english Continuous Mode }MV_CAM_GAIN_MODE; /// \~chinese 曝光模式\~english Exposure Mode typedef enum _MV_CAM_EXPOSURE_MODE_ { MV_EXPOSURE_MODE_TIMED = 0, ///< Timed MV_EXPOSURE_MODE_TRIGGER_WIDTH = 1, ///< TriggerWidth }MV_CAM_EXPOSURE_MODE; /// \~chinese 自动曝光模式 \~english Auto Exposure Mode typedef enum _MV_CAM_EXPOSURE_AUTO_MODE_ { MV_EXPOSURE_AUTO_MODE_OFF = 0, ///< \~chinese 关闭\~english Off MV_EXPOSURE_AUTO_MODE_ONCE = 1, ///< \~chinese 一次\~english Once MV_EXPOSURE_AUTO_MODE_CONTINUOUS = 2, ///< \~chinese 连续\~english Continuous }MV_CAM_EXPOSURE_AUTO_MODE; /// \~chinese 触发模式 \~english Trigger Mode typedef enum _MV_CAM_TRIGGER_MODE_ { MV_TRIGGER_MODE_OFF = 0, ///< \~chinese 关闭\~english Off MV_TRIGGER_MODE_ON = 1, ///< \~chinese 打开\~english ON }MV_CAM_TRIGGER_MODE; typedef enum _MV_CAM_GAMMA_SELECTOR_ { MV_GAMMA_SELECTOR_USER = 1, MV_GAMMA_SELECTOR_SRGB = 2, }MV_CAM_GAMMA_SELECTOR; typedef enum _MV_CAM_BALANCEWHITE_AUTO_ { MV_BALANCEWHITE_AUTO_OFF = 0, MV_BALANCEWHITE_AUTO_ONCE = 2, MV_BALANCEWHITE_AUTO_CONTINUOUS = 1, ///< \~chinese 连续\~english Continuous }MV_CAM_BALANCEWHITE_AUTO; typedef enum _MV_CAM_TRIGGER_SOURCE_ { MV_TRIGGER_SOURCE_LINE0 = 0, MV_TRIGGER_SOURCE_LINE1 = 1, MV_TRIGGER_SOURCE_LINE2 = 2, MV_TRIGGER_SOURCE_LINE3 = 3, MV_TRIGGER_SOURCE_COUNTER0 = 4, MV_TRIGGER_SOURCE_SOFTWARE = 7, MV_TRIGGER_SOURCE_FrequencyConverter= 8, }MV_CAM_TRIGGER_SOURCE; typedef enum _MV_GIGE_TRANSMISSION_TYPE_ { MV_GIGE_TRANSTYPE_UNICAST = 0x0, ///< \~chinese 表示单播(默认)\~english Unicast mode MV_GIGE_TRANSTYPE_MULTICAST = 0x1, ///< \~chinese 表示组播\~english Multicast mode MV_GIGE_TRANSTYPE_LIMITEDBROADCAST = 0x2, ///< \~chinese 表示局域网内广播,暂不支持\~english Limited broadcast mode,not support MV_GIGE_TRANSTYPE_SUBNETBROADCAST = 0x3, ///< \~chinese 表示子网内广播,暂不支持\~english Subnet broadcast mode,not support MV_GIGE_TRANSTYPE_CAMERADEFINED = 0x4, ///< \~chinese 表示从相机获取,暂不支持\~english Transtype from camera,not support MV_GIGE_TRANSTYPE_UNICAST_DEFINED_PORT = 0x5, ///< \~chinese 表示用户自定义应用端接收图像数据Port号\~english User Defined Receive Data Port MV_GIGE_TRANSTYPE_UNICAST_WITHOUT_RECV = 0x00010000, ///< \~chinese 表示设置了单播,但本实例不接收图像数据\~english Unicast without receive data MV_GIGE_TRANSTYPE_MULTICAST_WITHOUT_RECV = 0x00010001, ///< \~chinese 表示组播模式,但本实例不接收图像数据\~english Multicast without receive data }MV_GIGE_TRANSMISSION_TYPE; // GigEVision IP Configuration #define MV_IP_CFG_STATIC 0x05000000 #define MV_IP_CFG_DHCP 0x06000000 #define MV_IP_CFG_LLA 0x04000000 // GigEVision Net Transfer Mode #define MV_NET_TRANS_DRIVER 0x00000001 #define MV_NET_TRANS_SOCKET 0x00000002 // CameraLink Baud Rates (CLUINT32) #define MV_CAML_BAUDRATE_9600 0x00000001 #define MV_CAML_BAUDRATE_19200 0x00000002 #define MV_CAML_BAUDRATE_38400 0x00000004 #define MV_CAML_BAUDRATE_57600 0x00000008 #define MV_CAML_BAUDRATE_115200 0x00000010 #define MV_CAML_BAUDRATE_230400 0x00000020 #define MV_CAML_BAUDRATE_460800 0x00000040 #define MV_CAML_BAUDRATE_921600 0x00000080 #define MV_CAML_BAUDRATE_AUTOMAX 0x40000000 /// \~chinese 信息类型\~english Information Type #define MV_MATCH_TYPE_NET_DETECT 0x00000001 ///< \~chinese 网络流量和丢包信息\~english Network traffic and packet loss information #define MV_MATCH_TYPE_USB_DETECT 0x00000002 ///< \~chinese host接收到来自U3V设备的字节总数\~english The total number of bytes host received from U3V device /// \~chinese 某个节点对应的子节点个数最大值\~english The maximum number of child nodes corresponding to a node #define MV_MAX_XML_NODE_NUM_C 128 /// \~chinese 节点名称字符串最大长度\~english The maximum length of node name string #define MV_MAX_XML_NODE_STRLEN_C 64 /// \~chinese 节点String值最大长度\~english The maximum length of Node String #define MV_MAX_XML_STRVALUE_STRLEN_C 64 /// \~chinese 节点描述字段最大长度\~english The maximum length of the node description field #define MV_MAX_XML_DISC_STRLEN_C 512 /// \~chinese 最多的单元数\~englishThe maximum number of units #define MV_MAX_XML_ENTRY_NUM 10 /// \~chinese 父节点个数上限\~english The maximum number of parent nodes #define MV_MAX_XML_PARENTS_NUM 8 /// \~chinese 每个已经实现单元的名称长度\~english The length of the name of each unit that has been implemented #define MV_MAX_XML_SYMBOLIC_STRLEN_C 64 #define MV_MAX_XML_SYMBOLIC_NUM 64 /// \~chinese 全匹配的一种信息结构体\~english A fully matched information structure typedef struct _MV_ALL_MATCH_INFO_ { unsigned int nType; ///< \~chinese 需要输出的信息类型,e.g. MV_MATCH_TYPE_NET_DETECT\~english Information type need to output ,e.g. MV_MATCH_TYPE_NET_DETECT void* pInfo; ///< \~chinese 输出的信息缓存,由调用者分配\~english Output information cache, which is allocated by the caller unsigned int nInfoSize; ///< \~chinese 信息缓存的大小\~english Information cache size }MV_ALL_MATCH_INFO; /// \~chinese 网络流量和丢包信息反馈结构体,对应类型为 MV_MATCH_TYPE_NET_DETECT /// \~en:Network traffic and packet loss feedback structure, the corresponding type is MV_MATCH_TYPE_NET_DETECT typedef struct _MV_MATCH_INFO_NET_DETECT_ { int64_t nReviceDataSize; ///< \~chinese 已接收数据大小 [统计StartGrabbing和StopGrabbing之间的数据量]\~english Received data size int64_t nLostPacketCount; ///< \~chinese 丢失的包数量\~english Number of packets lost unsigned int nLostFrameCount; ///< \~chinese 丢帧数量\~english Number of frames lost unsigned int nNetRecvFrameCount; ///< \~chinese 保留\~english Reserved int64_t nRequestResendPacketCount; ///< \~chinese 请求重发包数 int64_t nResendPacketCount; ///< \~chinese 重发包数 }MV_MATCH_INFO_NET_DETECT; /// \~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 typedef struct _MV_MATCH_INFO_USB_DETECT_ { int64_t nReviceDataSize; ///< \~chinese 已接收数据大小 [统计OpenDevicce和CloseDevice之间的数据量]\~english Received data size unsigned int nRevicedFrameCount; ///< \~chinese 已收到的帧数\~english Number of frames received unsigned int nErrorFrameCount; ///< \~chinese 错误帧数\~english Number of error frames unsigned int nReserved[2]; ///< \~chinese 保留\~english Reserved }MV_MATCH_INFO_USB_DETECT; typedef struct _MV_IMAGE_BASIC_INFO_ { // width unsigned short nWidthValue; unsigned short nWidthMin; unsigned int nWidthMax; unsigned int nWidthInc; // height unsigned int nHeightValue; unsigned int nHeightMin; unsigned int nHeightMax; unsigned int nHeightInc; // framerate float fFrameRateValue; float fFrameRateMin; float fFrameRateMax; /// \~chinese 像素格式\~english pixel format unsigned int enPixelType; ///< \~chinese 当前的像素格式\~english Current pixel format unsigned int nSupportedPixelFmtNum; ///< \~chinese 支持的像素格式种类\~english Support pixel format unsigned int enPixelList[MV_MAX_XML_SYMBOLIC_NUM]; unsigned int nReserved[8]; }MV_IMAGE_BASIC_INFO; /// \~chinese 异常消息类型\~english Exception message type #define MV_EXCEPTION_DEV_DISCONNECT 0x00008001 ///< \~chinese 设备断开连接\~english The device is disconnected #define MV_EXCEPTION_VERSION_CHECK 0x00008002 ///< \~chinese SDK与驱动版本不匹配\~english SDK does not match the driver version /// \~chinese 设备的访问模式\~english Device Access Mode /// \~chinese 独占权限,其他APP只允许读CCP寄存器\~english Exclusive authority, other APP is only allowed to read the CCP register #define MV_ACCESS_Exclusive 1 /// \~chinese 可以从5模式下抢占权限,然后以独占权限打开\~english You can seize the authority from the 5 mode, and then open with exclusive authority #define MV_ACCESS_ExclusiveWithSwitch 2 /// \~chinese 控制权限,其他APP允许读所有寄存器\~english Control authority, allows other APP reading all registers #define MV_ACCESS_Control 3 /// \~chinese 可以从5的模式下抢占权限,然后以控制权限打开\~english You can seize the authority from the 5 mode, and then open with control authority #define MV_ACCESS_ControlWithSwitch 4 /// \~chinese 以可被抢占的控制权限打开\~english Open with seized control authority #define MV_ACCESS_ControlSwitchEnable 5 /// \~chinese 可以从5的模式下抢占权限,然后以可被抢占的控制权限打开\~english You can seize the authority from the 5 mode, and then open with seized control authority #define MV_ACCESS_ControlSwitchEnableWithKey 6 /// \~chinese 读模式打开设备,适用于控制权限下\~english Open with read mode and is available under control authority #define MV_ACCESS_Monitor 7 /************************************************************************/ /* 封装了GenICam的C接口相关参数定义 */ /* Package of GenICam C interface-related parameters definition */ /************************************************************************/ /// \~chinese 每个节点对应的接口类型\~english Interface type corresponds to each node enum MV_XML_InterfaceType { IFT_IValue, //!> IValue interface IFT_IBase, //!> IBase interface IFT_IInteger, //!> IInteger interface IFT_IBoolean, //!> IBoolean interface IFT_ICommand, //!> ICommand interface IFT_IFloat, //!> IFloat interface IFT_IString, //!> IString interface IFT_IRegister, //!> IRegister interface IFT_ICategory, //!> ICategory interface IFT_IEnumeration, //!> IEnumeration interface IFT_IEnumEntry, //!> IEnumEntry interface IFT_IPort, //!> IPort interface }; /// \~chinese 节点的访问模式\~english Node Access Mode enum MV_XML_AccessMode { AM_NI, //!< Not implemented AM_NA, //!< Not available AM_WO, //!< Write Only AM_RO, //!< Read Only AM_RW, //!< Read and Write AM_Undefined, //!< Object is not yet initialized AM_CycleDetect, //!< used internally for AccessMode cycle detection }; /// \~chinese 节点的可见性权限\~english Node Visible Permission enum MV_XML_Visibility { V_Beginner = 0, //!< Always visible V_Expert = 1, //!< Visible for experts or Gurus V_Guru = 2, //!< Visible for Gurus V_Invisible = 3, //!< Not Visible V_Undefined = 99 //!< Object is not yet initialized }; /// \~chinese Event事件回调信息\~english Event callback infomation #define MAX_EVENT_NAME_SIZE 128 // 相机Event事件名称最大长度\~english Max length of event name typedef struct _MV_EVENT_OUT_INFO_ { char EventName[MAX_EVENT_NAME_SIZE]; ///< \~chinese Event名称\~english Event name unsigned short nEventID; ///< \~chinese Event号\~english Event ID unsigned short nStreamChannel; ///< \~chinese 流通道序号\~english Circulation number unsigned int nBlockIdHigh; ///< \~chinese 帧号高位\~english BlockId high unsigned int nBlockIdLow; ///< \~chinese 帧号低位\~english BlockId low unsigned int nTimestampHigh; ///< \~chinese 时间戳高位\~english Timestramp high unsigned int nTimestampLow; ///< \~chinese 时间戳低位\~english Timestramp low void* pEventData; ///< \~chinese Event数据\~english Event data unsigned int nEventDataSize; ///< \~chinese Event数据长度\~english Event data len unsigned int nReserved[16]; ///< \~chinese 预留\~english Reserved }MV_EVENT_OUT_INFO; /// \~chinese 文件存取\~english File Access typedef struct _MV_CC_FILE_ACCESS_T { const char* pUserFileName; ///< \~chinese 用户文件名\~english User file name const char* pDevFileName; ///< \~chinese 设备文件名\~english Device file name unsigned int nReserved[32]; ///< \~chinese 预留\~english Reserved }MV_CC_FILE_ACCESS; /// \~chinese 文件存取进度\~english File Access Progress typedef struct _MV_CC_FILE_ACCESS_PROGRESS_T { int64_t nCompleted; ///< \~chinese 已完成的长度\~english Completed Length int64_t nTotal; ///< \~chinese 总长度\~english Total Length unsigned int nReserved[8]; ///< \~chinese 预留\~english Reserved }MV_CC_FILE_ACCESS_PROGRESS; /// \~chinese 传输模式,可以为单播模式、组播模式等\~english Transmission type typedef struct _MV_TRANSMISSION_TYPE_T { MV_GIGE_TRANSMISSION_TYPE enTransmissionType; ///< \~chinese 传输模式\~english Transmission type unsigned int nDestIp; ///< \~chinese 目标IP,组播模式下有意义\~english Destination IP unsigned short nDestPort; ///< \~chinese 目标Port,组播模式下有意义\~english Destination port unsigned int nReserved[32]; ///< \~chinese 预留\~english Reserved }MV_TRANSMISSION_TYPE; /// \~chinese 动作命令信息\~english Action Command typedef struct _MV_ACTION_CMD_INFO_T { unsigned int nDeviceKey; ///< \~chinese 设备密钥 unsigned int nGroupKey; ///< \~chinese 组键 unsigned int nGroupMask; ///< \~chinese 组掩码 unsigned int bActionTimeEnable; ///< \~chinese 只有设置成1时Action Time才有效,非1时无效 int64_t nActionTime; ///< \~chinese 预定的时间,和主频有关 const char* pBroadcastAddress; ///< \~chinese 广播包地址 unsigned int nTimeOut; ///< \~chinese 等待ACK的超时时间,如果为0表示不需要ACK unsigned int bSpecialNetEnable; ///< [IN] \~chinese 只有设置成1时指定的网卡IP才有效,非1时无效 \~english Special IP Enable unsigned int nSpecialNetIP; ///< [IN] \~chinese 指定的网卡IP \~english Special Net IP address unsigned int nReserved[14]; ///< \~chinese 预留\~english Reserved }MV_ACTION_CMD_INFO; /// \~chinese 动作命令返回信息\~english Action Command Result typedef struct _MV_ACTION_CMD_RESULT_T { unsigned char strDeviceAddress[12 + 3 + 1]; ///< IP address of the device //status code returned by the device int nStatus;//1.0x0000:success. //2.0x8001:Command is not supported by the device. //3.0x8013:The device is not synchronized to a master clock to be used as time reference. //4.0x8015:A device queue or packet data has overflowed. //5.0x8016:The requested scheduled action command was requested at a time that is already past. unsigned int nReserved[4]; ///< \~chinese 预留\~english Reserved }MV_ACTION_CMD_RESULT; /// \~chinese 动作命令返回信息列表\~english Action Command Result List typedef struct _MV_ACTION_CMD_RESULT_LIST_T { unsigned int nNumResults; ///< \~chinese 返回值个数 MV_ACTION_CMD_RESULT* pResults; }MV_ACTION_CMD_RESULT_LIST; // ch:单个节点基本属性 | en:Single Node Basic Attributes typedef struct _MV_XML_NODE_FEATURE_ { enum MV_XML_InterfaceType enType; ///< \~chinese 节点类型\~english Node Type enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Is visibility char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 节点描述,目前暂不支持\~english Node Description, NOT SUPPORT NOW char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 显示名称\~english Display Name char strName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 节点名\~english Node Name char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 提示\~english Notice unsigned int nReserved[4]; }MV_XML_NODE_FEATURE; /// \~chinese 节点列表\~english Node List typedef struct _MV_XML_NODES_LIST_ { unsigned int nNodeNum; ///< \~chinese 节点个数\~english Node Number MV_XML_NODE_FEATURE stNodes[MV_MAX_XML_NODE_NUM_C]; }MV_XML_NODES_LIST; typedef struct _MV_XML_FEATURE_Value_ { enum MV_XML_InterfaceType enType; ///< \~chinese节点类型\~english Node Type char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese节点描述 目前暂不支持\~english Node Description, NOT SUPPORT NOW char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 显示名称\~english Display Name char strName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 节点名\~english Node Name char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 提示\~english Notice unsigned int nReserved[4]; }MV_XML_FEATURE_Value; typedef struct _MV_XML_FEATURE_Base_ { enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode }MV_XML_FEATURE_Base; typedef struct _MV_XML_FEATURE_Integer_ { char strName[MV_MAX_XML_NODE_STRLEN_C]; char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 目前暂不支持\~english NOT SUPPORT NOW char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; enum MV_XML_Visibility enVisivility; ///< \~chinese是否可见\~english Visible enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW int64_t nValue; ///< \~chinese 当前值\~english Current Value int64_t nMinValue; ///< \~chinese 最小值\~english Min Value int64_t nMaxValue; ///< \~chinese 最大值\~english Max Value int64_t nIncrement; ///< \~chinese 增量\~english Increment unsigned int nReserved[4]; }MV_XML_FEATURE_Integer; typedef struct _MV_XML_FEATURE_Boolean_ { char strName[MV_MAX_XML_NODE_STRLEN_C]; char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 目前暂不支持\~english NOT SUPPORT NOW char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW bool bValue; ///< \~chinese 当前值\~english Current Value unsigned int nReserved[4]; }MV_XML_FEATURE_Boolean; typedef struct _MV_XML_FEATURE_Command_ { char strName[MV_MAX_XML_NODE_STRLEN_C]; char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 目前暂不支持\~english NOT SUPPORT NOW char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW unsigned int nReserved[4]; }MV_XML_FEATURE_Command; typedef struct _MV_XML_FEATURE_Float_ { char strName[MV_MAX_XML_NODE_STRLEN_C]; char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 目前暂不支持\~english NOT SUPPORT NOW char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW double dfValue; ///< \~chinese 当前值\~english Current Value double dfMinValue; ///< \~chinese 最小值\~english Min Value double dfMaxValue; ///< \~chinese 最大值\~english Max Value double dfIncrement; ///< \~chinese 增量\~english Increment unsigned int nReserved[4]; }MV_XML_FEATURE_Float; typedef struct _MV_XML_FEATURE_String_ { char strName[MV_MAX_XML_NODE_STRLEN_C]; char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 目前暂不支持\~english NOT SUPPORT NOW char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW char strValue[MV_MAX_XML_STRVALUE_STRLEN_C]; ///< \~chinese 当前值\~english Current Value unsigned int nReserved[4]; }MV_XML_FEATURE_String; typedef struct _MV_XML_FEATURE_Register_ { char strName[MV_MAX_XML_NODE_STRLEN_C]; char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 目前暂不支持\~english NOT SUPPORT NOW char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW int64_t nAddrValue; ///< \~chinese 当前值\~english Current Value unsigned int nReserved[4]; }MV_XML_FEATURE_Register; typedef struct _MV_XML_FEATURE_Category_ { char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 节点描述 目前暂不支持\~english Node Description, NOT SUPPORT NOW char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 显示名称\~english Display Name char strName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 节点名\~english Node Name char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 提示\~english Notice enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible unsigned int nReserved[4]; }MV_XML_FEATURE_Category; typedef struct _MV_XML_FEATURE_EnumEntry_ { char strName[MV_MAX_XML_NODE_STRLEN_C]; char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 目前暂不支持\~english NOT SUPPORT NOW char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; int bIsImplemented; int nParentsNum; MV_XML_NODE_FEATURE stParentsList[MV_MAX_XML_PARENTS_NUM]; enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible int64_t nValue; ///< \~chinese 当前值\~english Current Value enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW int nReserved[8]; }MV_XML_FEATURE_EnumEntry; typedef struct _MV_XML_FEATURE_Enumeration_ { enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 节点描述 目前暂不支持\~english Node Description, NOT SUPPORT NOW char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 显示名称\~english Display Name char strName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 节点名\~english Node Name char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 提示\~english Notice int nSymbolicNum; ///< \~chinese Symbolic数\~english Symbolic Number char strCurrentSymbolic[MV_MAX_XML_SYMBOLIC_STRLEN_C]; ///< \~chinese 当前Symbolic索引\~english Current Symbolic Index char strSymbolic[MV_MAX_XML_SYMBOLIC_NUM][MV_MAX_XML_SYMBOLIC_STRLEN_C]; enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW int64_t nValue; ///< \~chinese 当前值\~english Current Value unsigned int nReserved[4]; }MV_XML_FEATURE_Enumeration; typedef struct _MV_XML_FEATURE_Port_ { enum MV_XML_Visibility enVisivility; ///< \~chinese 是否可见\~english Visible char strDescription[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 节点描述 目前暂不支持\~english Node Description, NOT SUPPORT NOW char strDisplayName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 显示名称\~english Display Name char strName[MV_MAX_XML_NODE_STRLEN_C]; ///< \~chinese 节点名\~english Node Name char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; ///< \~chinese 提示\~english Notice enum MV_XML_AccessMode enAccessMode; ///< \~chinese 访问模式\~english Access Mode int bIsLocked; ///< \~chinese 是否锁定。0-否;1-是 目前暂不支持\~english Locked. 0-NO; 1-YES, NOT SUPPORT NOW unsigned int nReserved[4]; }MV_XML_FEATURE_Port; typedef struct _MV_XML_CAMERA_FEATURE_ { enum MV_XML_InterfaceType enType; union { MV_XML_FEATURE_Integer stIntegerFeature; MV_XML_FEATURE_Float stFloatFeature; MV_XML_FEATURE_Enumeration stEnumerationFeature; MV_XML_FEATURE_String stStringFeature; }SpecialFeature; }MV_XML_CAMERA_FEATURE; typedef struct _MVCC_ENUMVALUE_T { unsigned int nCurValue; ///< \~chinese 当前值\~english Current Value unsigned int nSupportedNum; ///< \~chinese 数据的有效数据个数\~english Number of valid data unsigned int nSupportValue[MV_MAX_XML_SYMBOLIC_NUM]; unsigned int nReserved[4]; }MVCC_ENUMVALUE; typedef struct _MVCC_INTVALUE_T { unsigned int nCurValue; ///< \~chinese 当前值\~english Current Value unsigned int nMax; unsigned int nMin; unsigned int nInc; unsigned int nReserved[4]; }MVCC_INTVALUE; typedef struct _MVCC_INTVALUE_EX_T { int64_t nCurValue; ///< \~chinese 当前值\~english Current Value int64_t nMax; int64_t nMin; int64_t nInc; unsigned int nReserved[16]; }MVCC_INTVALUE_EX; typedef struct _MVCC_FLOATVALUE_T { float fCurValue; ///< \~chinese 当前值\~english Current Value float fMax; float fMin; unsigned int nReserved[4]; }MVCC_FLOATVALUE; typedef struct _MVCC_STRINGVALUE_T { char chCurValue[256]; ///< \~chinese 当前值\~english Current Value int64_t nMaxLength; unsigned int nReserved[2]; }MVCC_STRINGVALUE; #endif /* _MV_CAMERA_PARAMS_H_ */