#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 nLostPacket; // ±¾Ö¡¶ª°üÊý unsigned int nReserved[2]; }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 short nChunkWidth; unsigned short nChunkHeight; unsigned int nLostPacket; // ±¾Ö¡¶ª°üÊý unsigned int nReserved[39]; // ±£Áô }MV_FRAME_OUT_INFO_EX; typedef struct _MV_DISPLAY_FRAME_INFO_ { void* hWnd; unsigned char* pData; unsigned int nDataLen; unsigned short nWidth; // ͼÏñ¿í unsigned short nHeight; // ͼÏñ¸ß enum MvGvspPixelType enPixelType; // ÏñËظñʽ unsigned int nRes[4]; }MV_DISPLAY_FRAME_INFO; // ±£´æͼƬ¸ñʽ 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] // [IN] Bayer¸ñʽתΪRGB24µÄ²åÖµ·½·¨ 0-×î½üÁÚ 1-Ë«ÏßÐÔ 2-Hamilton unsigned int iMethodValue; unsigned int nReserved[3]; }MV_SAVE_IMAGE_PARAM_EX; // ͼÏñת»»½á¹¹Ìå typedef struct _MV_PIXEL_CONVERT_PARAM_T_ { unsigned short nWidth; // [IN] ͼÏñ¿í unsigned short nHeight; // [IN] ͼÏñ¸ß enum MvGvspPixelType enSrcPixelType; // [IN] Ô´ÏñËظñʽ unsigned char* pSrcData; // [IN] ÊäÈëÊý¾Ý»º´æ unsigned int nSrcDataLen; // [IN] ÊäÈëÊý¾Ý´óС enum MvGvspPixelType enDstPixelType; // [IN] Ä¿±êÏñËظñʽ unsigned char* pDstBuffer; // [OUT] Êä³öÊý¾Ý»º´æ unsigned int nDstLen; // [OUT] Êä³öÊý¾Ý´óС unsigned int nDstBufferSize; // [IN] ÌṩµÄÊä³ö»º³åÇø´óС unsigned int nRes[4]; }MV_CC_PIXEL_CONVERT_PARAM; // ²É¼¯Ä£Ê½ 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É豸µÄ×Ö½Ú×ÜÊý // ij¸ö½Úµã¶ÔÓ¦µÄ×Ó½Úµã¸öÊý×î´óÖµ #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_ */