RM_Vison/ros2_hik_camera/hikSDK/include/CameraParams.h

1082 lines
59 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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_ */