You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

702 lines
25 KiB
C

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef _MV_CAMERA_PARAMS_H_
#define _MV_CAMERA_PARAMS_H_
#include "PixelType.h"
// 设备类型定义
#define MV_UNKNOW_DEVICE 0x00000000 // 未知设备类型,保留意义
#define MV_GIGE_DEVICE 0x00000001 // GigE设备
#define MV_1394_DEVICE 0x00000002 // 1394-a/b 设备
#define MV_USB_DEVICE 0x00000004 // USB3.0 设备
#define MV_CAMERALINK_DEVICE 0x00000008 // CameraLink设备
typedef struct _MV_GIGE_DEVICE_INFO_
{
unsigned int nIpCfgOption;
unsigned int nIpCfgCurrent; //IP configuration:bit31-static bit30-dhcp bit29-lla
unsigned int nCurrentIp; //curtent ip
unsigned int nCurrentSubNetMask; //curtent subnet mask
unsigned int nDefultGateWay; //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; // 网口IP地址
unsigned int nReserved[4];
}MV_GIGE_DEVICE_INFO;
#define INFO_MAX_BUFFER_SIZE 64
typedef struct _MV_USB3_DEVICE_INFO_
{
unsigned char CrtlInEndPoint; //控制输入端点
unsigned char CrtlOutEndPoint; //控制输出端点
unsigned char StreamEndPoint; //流端点
unsigned char EventEndPoint; //事件端点
unsigned short idVendor; //供应商ID号
unsigned short idProduct; //产品ID号
unsigned int nDeviceNumber; //设备序列号
unsigned char chDeviceGUID[INFO_MAX_BUFFER_SIZE]; //设备GUID号
unsigned char chVendorName[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 char chUserDefinedName[INFO_MAX_BUFFER_SIZE]; //用户自定义名字
unsigned int nbcdUSB; //支持的USB协议
unsigned int nReserved[3]; //保留字节
}MV_USB3_DEVICE_INFO;
// 设备信息
typedef struct _MV_CC_DEVICE_INFO_
{
// common info
unsigned short nMajorVer;
unsigned short nMinorVer;
unsigned int nMacAddrHigh; // MAC 地址
unsigned int nMacAddrLow;
unsigned int nTLayerType; // 设备传输层协议类型e.g. MV_GIGE_DEVICE
unsigned int nReserved[4];
union
{
MV_GIGE_DEVICE_INFO stGigEInfo;
MV_USB3_DEVICE_INFO stUsb3VInfo;
// more ...
}SpecialInfo;
}MV_CC_DEVICE_INFO;
// 网络传输的相关信息
typedef struct _MV_NETTRANS_INFO_
{
int64_t nReviceDataSize; // 已接收数据大小 [统计StartGrabbing和StopGrabbing之间的数据量]
int nThrowFrameCount; // 丢帧数量
unsigned int nReserved[5];
}MV_NETTRANS_INFO;
// 最多支持的传输层实例个数
#define MV_MAX_TLS_NUM 8
// 最大支持的设备个数
#define MV_MAX_DEVICE_NUM 256
// 设备信息列表
typedef struct _MV_CC_DEVICE_INFO_LIST_
{
unsigned int nDeviceNum; // 在线设备数量
MV_CC_DEVICE_INFO* pDeviceInfo[MV_MAX_DEVICE_NUM]; // 支持最多256个设备
}MV_CC_DEVICE_INFO_LIST;
// 输出帧的信息
typedef struct _MV_FRAME_OUT_INFO_
{
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
enum MvGvspPixelType enPixelType; // 像素格式
/*以下字段暂不支持*/
unsigned int nFrameNum; // 帧号
unsigned int nDevTimeStampHigh; // 时间戳高32位
unsigned int nDevTimeStampLow; // 时间戳低32位
unsigned int nReserved0; // 保留8字节对齐
int64_t nHostTimeStamp; // 主机生成的时间戳
unsigned int nFrameLen;
unsigned int nReserved[3]; // 保留
}MV_FRAME_OUT_INFO;
// 输出帧的信息
typedef struct _MV_FRAME_OUT_INFO_EX_
{
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
enum MvGvspPixelType enPixelType; // 像素格式
/*以下字段暂不支持*/
unsigned int nFrameNum; // 帧号
unsigned int nDevTimeStampHigh; // 时间戳高32位
unsigned int nDevTimeStampLow; // 时间戳低32位
unsigned int nReserved0; // 保留8字节对齐
int64_t nHostTimeStamp; // 主机生成的时间戳
unsigned int nFrameLen;
// 以下为chunk新增水印信息
// 设备水印时标
unsigned int nSecondCount;
unsigned int nCycleCount;
unsigned int nCycleOffset;
float fGain;
float fExposureTime;
unsigned int nAverageBrightness; //平均亮度
// 白平衡相关
unsigned int nRed;
unsigned int nGreen;
unsigned int nBlue;
unsigned int nFrameCounter;
unsigned int nTriggerIndex; //触发计数
//Line 输入/输出
unsigned int nInput; //输入
unsigned int nOutput; //输出
// ROI区域
unsigned short nOffsetX;
unsigned short nOffsetY;
unsigned int nReserved[41]; // 保留
}MV_FRAME_OUT_INFO_EX;
// 保存图片格式
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, //不支持
};
// 保存图片参数
typedef struct _MV_SAVE_IMAGE_PARAM_T_
{
unsigned char* pData; // [IN] 输入数据缓存
unsigned int nDataLen; // [IN] 输入数据大小
enum MvGvspPixelType enPixelType; // [IN] 输入数据的像素格式
unsigned short nWidth; // [IN] 图像宽
unsigned short nHeight; // [IN] 图像高
unsigned char* pImageBuffer; // [OUT] 输出图片缓存
unsigned int nImageLen; // [OUT] 输出图片大小
unsigned int nBufferSize; // [IN] 提供的输出缓冲区大小
enum MV_SAVE_IAMGE_TYPE enImageType; // [IN] 输出图片格式
}MV_SAVE_IMAGE_PARAM;
// 图片保存参数
typedef struct _MV_SAVE_IMAGE_PARAM_T_EX_
{
unsigned char* pData; // [IN] 输入数据缓存
unsigned int nDataLen; // [IN] 输入数据大小
enum MvGvspPixelType enPixelType; // [IN] 输入数据的像素格式
unsigned short nWidth; // [IN] 图像宽
unsigned short nHeight; // [IN] 图像高
unsigned char* pImageBuffer; // [OUT] 输出图片缓存
unsigned int nImageLen; // [OUT] 输出图片大小
unsigned int nBufferSize; // [IN] 提供的输出缓冲区大小
enum MV_SAVE_IAMGE_TYPE enImageType; // [IN] 输出图片格式
unsigned int nJpgQuality; // [IN] 编码质量, (50-99]
unsigned int nReserved[4];
}MV_SAVE_IMAGE_PARAM_EX;
// 采集模式
typedef enum _MV_CAM_ACQUISITION_MODE_
{
MV_ACQ_MODE_SINGLE = 0, // 单帧模式
MV_ACQ_MODE_MUTLI = 1, // 多帧模式
MV_ACQ_MODE_CONTINUOUS = 2, // 持续采集模式
}MV_CAM_ACQUISITION_MODE;
// 增益模式
typedef enum _MV_CAM_GAIN_MODE_
{
MV_GAIN_MODE_OFF = 0, // 关闭
MV_GAIN_MODE_ONCE = 1, // 一次
MV_GAIN_MODE_CONTINUOUS = 2, // 连续
}MV_CAM_GAIN_MODE;
// 曝光模式
typedef enum _MV_CAM_EXPOSURE_MODE_
{
MV_EXPOSURE_MODE_TIMED = 0, // Timed
MV_EXPOSURE_MODE_TRIGGER_WIDTH = 1, // TriggerWidth
}MV_CAM_EXPOSURE_MODE;
// 自动曝光模式
typedef enum _MV_CAM_EXPOSURE_AUTO_MODE_
{
MV_EXPOSURE_AUTO_MODE_OFF = 0, // 关闭
MV_EXPOSURE_AUTO_MODE_ONCE = 1, // 一次
MV_EXPOSURE_AUTO_MODE_CONTINUOUS = 2, // 连续
}MV_CAM_EXPOSURE_AUTO_MODE;
typedef enum _MV_CAM_TRIGGER_MODE_
{
MV_TRIGGER_MODE_OFF = 0, // 关闭
MV_TRIGGER_MODE_ON = 1, // 打开
}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, // 连续
}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;
// 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
// 信息类型
#define MV_MATCH_TYPE_NET_DETECT 0x00000001 // 网络流量和丢包信息
#define MV_MATCH_TYPE_USB_DETECT 0x00000002 // host接收到来自U3V设备的字节总数
// 某个节点对应的子节点个数最大值
#define MV_MAX_XML_NODE_NUM_C 128
// 节点名称字符串最大长度
#define MV_MAX_XML_NODE_STRLEN_C 64
//节点String值最大长度
#define MV_MAX_XML_STRVALUE_STRLEN_C 64
// 节点描述字段最大长度
#define MV_MAX_XML_DISC_STRLEN_C 512
// 最多的单元数
#define MV_MAX_XML_ENTRY_NUM 10
// 父节点个数上限
#define MV_MAX_XML_PARENTS_NUM 8
//每个已经实现单元的名称长度
#define MV_MAX_XML_SYMBOLIC_STRLEN_C 64
#define MV_MAX_XML_SYMBOLIC_NUM 64
//重发包默认最大包数量
// 全匹配的一种信息结构体
typedef struct _MV_ALL_MATCH_INFO_
{
unsigned int nType; // 需要输出的信息类型e.g. MV_MATCH_TYPE_NET_DETECT
void* pInfo; // 输出的信息缓存,由调用者分配
unsigned int nInfoSize; // 信息缓存的大小
}MV_ALL_MATCH_INFO;
// 网络流量和丢包信息反馈结构体,对应类型为 MV_MATCH_TYPE_NET_DETECT
typedef struct _MV_MATCH_INFO_NET_DETECT_
{
int64_t nReviceDataSize; // 已接收数据大小 [统计StartGrabbing和StopGrabbing之间的数据量]
int64_t nLostPacketCount; // 丢失的包数量
unsigned int nLostFrameCount; // 丢帧数量
unsigned int nReserved[5]; // 保留
}MV_MATCH_INFO_NET_DETECT;
// host收到从u3v设备端的总字节数对应类型为 MV_MATCH_TYPE_USB_DETECT
typedef struct _MV_MATCH_INFO_USB_DETECT_
{
int64_t nReviceDataSize; // 已接收数据大小 [统计OpenDevicce和CloseDevice之间的数据量]
unsigned int nRevicedFrameCount; // 已收到的帧数
unsigned int nErrorFrameCount; // 错误帧数
unsigned int nReserved[2]; // 保留
}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;
// 像素格式
unsigned int enPixelType; // 当前的像素格式
unsigned int nSupportedPixelFmtNum; // 支持的像素格式种类
unsigned int enPixelList[MV_MAX_XML_SYMBOLIC_NUM];
unsigned int nReserved[8];
}MV_IMAGE_BASIC_INFO;
// 异常消息类型
#define MV_EXCEPTION_DEV_DISCONNECT 0x00008001 // 设备断开连接
#define MV_EXCEPTION_VERSION_CHECK 0x00008002 // SDK与驱动版本不匹配
// 设备的访问模式
// 独占权限其他APP只允许读CCP寄存器
#define MV_ACCESS_Exclusive 1
// 可以从5模式下抢占权限然后以独占权限打开
#define MV_ACCESS_ExclusiveWithSwitch 2
// 控制权限其他APP允许读所有寄存器
#define MV_ACCESS_Control 3
// 可以从5的模式下抢占权限然后以控制权限打开
#define MV_ACCESS_ControlWithSwitch 4
// 以可被抢占的控制权限打开
#define MV_ACCESS_ControlSwitchEnable 5
// 可以从5的模式下抢占权限然后以可被抢占的控制权限打开
#define MV_ACCESS_ControlSwitchEnableWithKey 6
// 读模式打开设备,适用于控制权限下
#define MV_ACCESS_Monitor 7
/************************************************************************/
/* 封装了GenICam的C接口相关参数定义 */
/************************************************************************/
// 每个节点对应的接口类型
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
};
// 节点的访问模式
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
};
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
};
typedef enum _MV_GIGE_EVENT_
{
MV_EVENT_ExposureEnd = 1, // 每帧的曝光结束
MV_EVENT_FrameStartOvertrigger = 2, // 帧开始触发
MV_EVENT_AcquisitionStartOvertrigger = 3, // 取流开始过触发
MV_EVENT_FrameStart = 4, // 每帧的开始
MV_EVENT_AcquisitionStart = 5, // 开始取流(连续或单帧模式)
MV_EVENT_EventOverrun = 6 // 事件过触发
}MV_GIGE_EVENT;
//
// 单个节点基本属性
typedef struct _MV_XML_NODE_FEATURE_
{
enum MV_XML_InterfaceType enType; // 节点类型
enum MV_XML_Visibility enVisivility; //是否可见
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
unsigned int nReserved[4];
}MV_XML_NODE_FEATURE;
// 节点列表
typedef struct _MV_XML_NODES_LIST_
{
unsigned int nNodeNum; // 节点个数
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; // 节点类型
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
unsigned int nReserved[4];
}MV_XML_FEATURE_Value;
typedef struct _MV_XML_FEATURE_Base_
{
enum MV_XML_AccessMode enAccessMode; // 访问模式
}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]; // 目前暂不支持
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
enum MV_XML_Visibility enVisivility; //是否可见
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
int64_t nValue; // 当前值
int64_t nMinValue; // 最小值
int64_t nMaxValue; // 最大值
int64_t nIncrement; // 增量
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]; // 目前暂不支持
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
enum MV_XML_Visibility enVisivility; //是否可见
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
bool bValue; // 当前值
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]; // 目前暂不支持
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
enum MV_XML_Visibility enVisivility; //是否可见
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
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]; // 目前暂不支持
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
enum MV_XML_Visibility enVisivility; //是否可见
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
double dfValue; // 当前值
double dfMinValue; // 最小值
double dfMaxValue; // 最大值
double dfIncrement; // 增量
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]; // 目前暂不支持
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
enum MV_XML_Visibility enVisivility; //是否可见
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
char strValue[MV_MAX_XML_STRVALUE_STRLEN_C];// 当前值
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]; // 目前暂不支持
char strToolTip[MV_MAX_XML_DISC_STRLEN_C];
enum MV_XML_Visibility enVisivility; //是否可见
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
int64_t nAddrValue; // 当前值
unsigned int nReserved[4];
}MV_XML_FEATURE_Register;
typedef struct _MV_XML_FEATURE_Category_
{
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
enum MV_XML_Visibility enVisivility; //是否可见
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]; // 目前暂不支持
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; //是否可见
int64_t nValue; // 当前值
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
int nReserved[8];
}MV_XML_FEATURE_EnumEntry;
typedef struct _MV_XML_FEATURE_Enumeration_
{
enum MV_XML_Visibility enVisivility; //是否可见
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
int nSymbolicNum; // Symbolic数
char strCurrentSymbolic[MV_MAX_XML_SYMBOLIC_STRLEN_C]; // 当前Symbolic索引
char strSymbolic[MV_MAX_XML_SYMBOLIC_NUM][MV_MAX_XML_SYMBOLIC_STRLEN_C];
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
int64_t nValue; // 当前值
unsigned int nReserved[4];
}MV_XML_FEATURE_Enumeration;
typedef struct _MV_XML_FEATURE_Port_
{
enum MV_XML_Visibility enVisivility; //是否可见
char strDescription[MV_MAX_XML_DISC_STRLEN_C];//节点描述 目前暂不支持
char strDisplayName[MV_MAX_XML_NODE_STRLEN_C];//显示名称
char strName[MV_MAX_XML_NODE_STRLEN_C]; // 节点名
char strToolTip[MV_MAX_XML_DISC_STRLEN_C]; //提示
enum MV_XML_AccessMode enAccessMode; // 访问模式
int bIsLocked; // 是否锁定。0-否1-是 目前暂不支持
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; // 当前值
unsigned int nSupportedNum; // 数据的有效数据个数
unsigned int nSupportValue[MV_MAX_XML_SYMBOLIC_NUM];
unsigned int nReserved[4];
}MVCC_ENUMVALUE;
typedef struct _MVCC_INTVALUE_T
{
unsigned int nCurValue; // 当前值
unsigned int nMax;
unsigned int nMin;
unsigned int nInc;
unsigned int nReserved[4];
}MVCC_INTVALUE;
typedef struct _MVCC_FLOATVALUE_T
{
float fCurValue; // 当前值
float fMax;
float fMin;
unsigned int nReserved[4];
}MVCC_FLOATVALUE;
typedef struct _MVCC_STRINGVALUE_T
{
char chCurValue[256]; // 当前值
unsigned int nReserved[4];
}MVCC_STRINGVALUE;
#endif /* _MV_CAMERA_PARAMS_H_ */