#ifndef MVGENICAM_TYPES_H #define MVGENICAM_TYPES_H #if ! defined(_MSC_VER) #include // #define interface struct #else // if defined(_MSC_VER) #ifndef _STDINT //! \addtogroup Base_PublicUtilities //! \{ //! makes int 8 portable across different platforms typedef signed char int8_t; //! makes char 8 portable across different platforms typedef char char8_t; //! makes unsigned char portable across different platforms typedef unsigned char uint8_t; //! makes char 8 portable across different platforms typedef unsigned char uchar8_t; //! makes short portable across different platforms typedef short int16_t; //! makes unsigned short portable across different platforms typedef unsigned short uint16_t; //! makes __int32 portable across different platforms typedef __int32 int32_t; //! makes unsigned int32 portable across different platforms typedef unsigned __int32 uint32_t; //! makes int64 portable across different platforms typedef __int64 int64_t; //! makes unsigned int64 portable across different platforms typedef unsigned __int64 uint64_t; //! use a universal platform dependend int typedef __int64 int_t; //! use a universal platform dependend unsigned int typedef unsigned __int64 uint_t; #ifndef _SIZE_T_DEFINED #ifdef _WIN64 //! use a universal platform dependend unsigned int typedef unsigned __int64 size_t; #else //! use a universal platform dependend unsigned int typedef unsigned int size_t; #endif #define _SIZE_T_DEFINED #endif #ifndef _INTPTR_T_DEFINED #ifdef _WIN64 //! use a universal platform dependend int typedef __int64 intptr_t; #else //! use a universal platform dependend int typedef int intptr_t; #endif #define _INTPTR_T_DEFINED #endif #endif #endif //#define INT64_MAX 0x7fffffffffffffffLL /*maximum signed __int64 value */ //#define INT64_MIN 0x8000000000000000LL /*minimum signed __int64 value */ //#define UINT64_MAX 0xffffffffffffffffULL /*maximum unsigned __int64 value */ //#define INT32_MAX 0x000000007fffffffLL /*maximum signed __int32 value */ //#define INT32_MIN 0xffffffff80000000LL /*minimum signed __int32 value */ //#define UINT32_MAX 0x00000000ffffffffULL /*maximum unsigned __int32 value */ //#define INT8_MAX 0x000000000000007fLL /*maximum signed __int8 value */ //#define INT8_MIN 0xffffffffffffff80LL /*minimum signed __int8 value */ //#define UINT8_MAX 0x00000000000000ffULL /*maximum unsigned __int8 value */ //! \} /* * \brief »Øµ÷º¯ÊýµÃµ½µÄÊý¾ÝµÄ½á¹¹ */ typedef struct _IMAGE_INFO { uint64_t nTimeStamp; ///< ʱ¼ä´Á£¬²É¼¯µ½Í¼ÏñµÄʱ¿Ì£¬¾«¶ÈΪ0.01us USHORT nBlockId; ///< Ö¡ºÅ£¬´Ó¿ªÊ¼²É¼¯¿ªÊ¼¼ÆÊý UCHAR *pImageBuffer; ///< ͼÏñÖ¸Õ룬¼´Ö¸Ïò(0,0)ÏñËØËùÔÚÄÚ´æλÖõÄÖ¸Õ룬ͨ¹ý¸ÃÖ¸Õë¿ÉÒÔ·ÃÎÊÕû¸öͼÏñ ULONG nImageSizeAcq; ///< ²É¼¯µ½µÄͼÏñ´óС[×Ö½Ú] UCHAR nMissingPackets;///< ´«Êä¹ý³ÌÖжªµôµÄ°üÊýÁ¿ uint64_t nPixelType; ///< ͼÏñ¸ñʽ uint32_t nSizeX; ///< ͼÏñ¿í¶È uint32_t nSizeY; ///< ͼÏñ¸ß¶È uint32_t nOffsetX; ///< 0 uint32_t nOffsetY; ///< 0 } MV_IMAGE_INFO, * pMV_IMAGE_INFO ; /* * \brief BayerÑÕɫģʽ */ typedef enum { BayerRG, //< ÑÕɫģʽRGGB BayerBG, //< ÑÕɫģʽBGGR BayerGR, //< ÑÕɫģʽGRBG BayerGB, //< ÑÕɫģʽGBRG BayerGRW, //< ÑÕɫģʽGRW BayerInvalid } MV_BAYER_MODE; /* * \brief ͼÏñÏñËظñʽ */ typedef enum { PixelFormat_Mono8, //!<8Bit»Ò¶È PixelFormat_BayerBG8, //!<8Bit Bayerͼ,ÑÕɫģʽΪBGGR PixelFormat_BayerRG8, //!<8Bit Bayerͼ,ÑÕɫģʽΪRGGB PixelFormat_BayerGB8, //!<8Bit Bayerͼ,ÑÕɫģʽΪGBRG PixelFormat_BayerGR8, //!<8Bit Bayerͼ,ÑÕɫģʽΪGRBG PixelFormat_BayerGRW8 } MV_PixelFormatEnums; /* * \brief ´íÎó·µ»ØÖµÀàÐÍ */ typedef enum { MVST_SUCCESS = 0, ///< ûÓдíÎó MVST_ERROR = -1001, ///< Ò»°ã´íÎó MVST_ERR_NOT_INITIALIZED = -1002, //!< ûÓгõʼ»¯ MVST_ERR_NOT_IMPLEMENTED = -1003, //!< ûÓÐʵÏÖ MVST_ERR_RESOURCE_IN_USE = -1004, //!< ×ÊÔ´±»Õ¼Óà MVST_ACCESS_DENIED = -1005, ///< ÎÞ·¨·ÃÎÊ MVST_INVALID_HANDLE = -1006, ///< ´íÎó¾ä±ú MVST_INVALID_ID = -1007, ///< ´íÎóID MVST_NO_DATA = -1008, ///< ûÓÐÊý¾Ý MVST_INVALID_PARAMETER = -1009, ///< ´íÎó²ÎÊý MVST_FILE_IO = -1010, ///< IO´íÎó MVST_TIMEOUT = -1011, ///< ³¬Ê± MVST_ERR_ABORT = -1012, ///< Í˳ö MVST_INVALID_BUFFER_SIZE = -1013, ///< »º³åÇø³ß´ç´íÎó MVST_ERR_NOT_AVAILABLE = -1014, ///< ÎÞ·¨·ÃÎÊ MVST_INVALID_ADDRESS = -1015, ///< µØÖ·´íÎó }MVSTATUS_CODES; typedef struct { unsigned char mIpAddr[4]; //!<Ïà»úµÄIPµØÖ· unsigned char mEthernetAddr[6]; //!<Ïà»úµÄMACµØÖ· char mMfgName[32]; //!<Ïà»ú³§ÉÌÃû³Æ char mModelName[32]; //!<Ïà»úÐͺŠchar mSerialNumber[16]; //!<Ïà»úÐòÁкŠchar mUserDefinedName[16]; //!<Óû§ÉèÖõÄÏà»úÃû³Æ unsigned char m_IfIp[4]; //!<¼ÆËã»úºÍÏà»úÁ¬½ÓµÄÍø¿¨IPµØÖ· unsigned char m_IfMAC[6]; //!<¼ÆËã»úºÍÏà»úÁ¬½ÓµÄÍø¿¨MACµØÖ· }MVCamInfo; enum TriggerSourceEnums { TriggerSource_Software=0,//!<´¥·¢Ä£Ê½Ï£¬ÓÉÈí´¥·¢(Èí¼þÖ¸Áî)À´´¥·¢²É¼¯ TriggerSource_Line1=2 //!<´¥·¢Ä£Ê½Ï£¬ÓÐÍâ´¥·¢ÐźÅÀ´´¥·¢²É¼¯ }; enum TriggerModeEnums { TriggerMode_Off, //!<´¥·¢Ä£Ê½¹Ø£¬¼´FreeRunģʽ£¬Ïà»úÁ¬Ðø²É¼¯ TriggerMode_On //!<´¥·¢Ä£Ê½¿ª£¬Ïà»úµÈ´ýÈí´¥·¢»òÍâ´¥·¢ÐźÅÔٲɼ¯Í¼Ïñ }; enum TriggerActivationEnums { TriggerActivation_RisingEdge,//!<ÉÏÉýÑØ´¥·¢ TriggerActivation_FallingEdge//!<ϽµÑØ´¥·¢ }; enum LineSourceEnums { LineSource_Off=0, //!<¹Ø±Õ LineSource_ExposureActive=5, //!<ºÍÆعâͬʱ LineSource_Timer1Active=6, //!<Óɶ¨Ê±Æ÷¿ØÖÆ LineSource_UserOutput0=12 //!<Ö±½ÓÓÉÈí¼þ¿ØÖÆ }; typedef struct { unsigned long m_nTotalBuf; //!<´Ó¿ªÊ¼²É¼¯£¬×ܼƳɹ¦ÊÕµ½µÄÍêÕûͼÏñÖ¡Êý unsigned long m_nFailedBuf; //!<´Ó¿ªÊ¼²É¼¯£¬×ܼÆÊÕµ½µÄ²»ÍêÕûͼÏñÖ¡Êý unsigned long m_nTotalPacket; //!<´Ó¿ªÊ¼²É¼¯£¬×ܼÆÊÕµ½µÄͼÏñÊý¾Ý°üÊý unsigned long m_nFailedPacket; //!<´Ó¿ªÊ¼²É¼¯£¬×ܼƶªÊ§µÄͼÏñÊý¾Ý°üÊý unsigned long m_nResendPacketReq;//!<´Ó¿ªÊ¼²É¼¯£¬×ܼÆÖØ·¢ÇëÇóµÄͼÏñÊý¾Ý°üÊý unsigned long m_nResendPacket;//!<´Ó¿ªÊ¼²É¼¯£¬×ܼÆÖØ·¢³É¹¦µÄͼÏñÊý¾Ý°üÊý }MVStreamStatistic; enum UserSetSelectorEnums { UserSetSelector_Default, //!<³ö³§ÉèÖà UserSetSelector_UserSet1, //!<Óû§ÉèÖÃ1 UserSetSelector_UserSet2 //!<Óû§ÉèÖÃ2 }; enum SensorTapsEnums { SensorTaps_One, //!<µ¥Í¨µÀ SensorTaps_Two, //!<˫ͨµÀ SensorTaps_Three, //!<ÈýͨµÀ SensorTaps_Four, //!<ËÄͨµÀ }; enum AutoFunctionProfileEnums { AutoFunctionProfile_GainMinimum, //!