#ifndef __MV_GIGE_DEVICE_H__ #define __MV_GIGE_DEVICE_H__ #include "MvDeviceBase.h" namespace MvCamCtrl { class CMvGigEDevice : public IMvDevice { public: // ´ò¿ªÉ豸 virtual int Open(unsigned int nAccessMode = MV_ACCESS_Exclusive, unsigned short nSwitchoverKey = 0); // ¹Ø±ÕÉ豸 virtual int Close(); // ÅжÏÉ豸µÄ״̬£¬½öµ±·µ»Øfalseʱ£¬¿É´ò¿ªÉ豸 virtual bool IsOpen(); // ¿ªÆôץͼ virtual int StartGrabbing(); // ֹͣץͼ virtual int StopGrabbing(); // »ñÈ¡É豸ÐÅÏ¢ virtual int GetDeviceInfo(MV_CC_DEVICE_INFO&); /** @fn GetGenICamXML(unsigned char* pData, unsigned int nDataSize, unsigned int* pnDataLen) * @brief »ñÈ¡É豸µÄXMLÎļþ * @param pData [IN][OUT] - ´ý¿½ÈëµÄ»º´æµØÖ· nDataSize [IN] - »º´æ´óС pnDataLen [OUT] - xml ÎļþÊý¾Ý³¤¶È * * @return ³É¹¦£¬·µ»ØMV_OK£»Ê§°Ü£¬·µ»Ø´íÎóÂë * @note µ±pDataΪNULL»ònDataSize±Èʵ¼ÊµÄxmlÎļþСʱ£¬²»¿½±´Êý¾Ý£¬ÓÉpnDataLen·µ»ØxmlÎļþ´óС£» * µ±pDataΪÓÐЧ»º´æµØÖ·£¬ÇÒ»º´æ×ã¹»´óʱ£¬¿½±´ÍêÕûÊý¾Ý£¬²¢ÓÉpnDataLen·µ»ØxmlÎļþ´óС¡£ */ virtual int GetGenICamXML(unsigned char* pData, unsigned int nDataSize, unsigned int* pnDataLen); /** @fn GetOneFrame(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO* pFrameInfo) * @brief »ñȡһ֡ͼÏñÊý¾Ý * @param pData [IN][OUT] - Êý¾ÝÖ¸Õë nDataLen [IN] - Êý¾Ý³¤¶È pFrameInfo [OUT] - Êä³öµÄÖ¡ÐÅÏ¢ * * @return ³É¹¦£¬·µ»ØMV_OK£»Ê§°Ü£¬·µ»Ø´íÎóÂë */ virtual int GetOneFrame(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO* pFrameInfo); // »ñÈ¡GenICamʹÓõĴ«Êä²ã´úÀíÀà virtual TlProxy GetTlProxy(); virtual ~CMvGigEDevice( void ); CMvGigEDevice( const MV_CC_DEVICE_INFO* pInfo ); // »ñÈ¡ÍøÂçÐÅÏ¢ virtual int GetNetTransInfo(MV_NETTRANS_INFO* pstInfo); // Ç¿ÖÆIP virtual int ForceIp(unsigned int nIP); // ÅäÖÃIP·½Ê½ virtual int SetIpConfig(unsigned int nType); // »ñÈ¡¸÷ÖÖÀàÐ͵ÄÐÅÏ¢ virtual int GetAllMatchInfo(MV_ALL_MATCH_INFO* pstInfo); // add new interface here... // ×¢²áÏûÏ¢Òì³£»Øµ÷ virtual int RegisterExceptionCallBack(void(__stdcall* cbException)(unsigned int nMsgType, void* pUser), void* pUser); virtual int SetSingleShot(void(__stdcall* cbSingleShot)(unsigned char* pData , unsigned int nDataLen, MV_FRAME_OUT_INFO* pFrameInfo, void* pUser), void* pUser); // ÉèÖÃÉ豸²É¼¯Ä£Ê½ virtual int SetAcquisitionMode(MV_CAM_ACQUISITION_MODE enMode); // É豸±¾µØÉý¼¶ virtual int LocalUpgrade(const void *pFilePathName); // »ñÈ¡µ±Ç°Éý¼¶½ø¶È virtual int GetUpgradeProcess(unsigned int* pnProcess); virtual int GetOptimalPacketSize(); // ÏÔʾһ֡ͼÏñ virtual int Display(void* hWnd); virtual int SetNetTransMode(unsigned int nType); virtual int ReadMemory(void *pBuffer, int64_t nAddress, int64_t nLength); virtual int WriteMemory(const void *pBuffer, int64_t nAddress, int64_t nLength); // ·µ»ØÖµ 0Çý¶¯²»Õý³££¬1Çý¶¯Õý³£¹¤×÷ virtual int IsDriverWorking(); // 0£º²»¶ªÆú£»1£º¶ªÆú virtual int SetThrowAbnormalImage(int bThrow); // ÉèÖÃSDKÄÚ²¿Í¼Ïñ»º´æ½Úµã¸öÊý£¬·¶Î§[1, 30]£¬ÔÚץͼǰµ÷Óà virtual int SetImageNodeNum(unsigned int nNum); // ÉèÖÃgvcp³¬Ê±Ê±¼ä virtual int SetGvcpTimeout(unsigned int nTimeout); // ×¢²áͼÏñÊý¾Ý»Øµ÷ virtual int RegisterImageCallBack(void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO* pFrameInfo, void* pUser), void* pUser); // ×¢²áEVENTÏûÏ¢»Øµ÷ virtual int RegisterEventCallBack(void(__stdcall* cbEvent)(unsigned int nUserDefinedId, void* pUser), void* pUser); // ×¢²áͼÏñÊý¾Ý»Øµ÷,chunk virtual int RegisterImageCallBackEx(void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),void* pUser); virtual int RegisterImageCallBackForRGB(void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),void* pUser); virtual int RegisterImageCallBackForBGR(void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),void* pUser); virtual int GetOneFrameEx(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO_EX* pFrameInfo); virtual int GetImageForRGB(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO_EX* pFrameInfo, int nMsec); virtual int GetImageForBGR(unsigned char * pData , unsigned int nDataSize, MV_FRAME_OUT_INFO_EX* pFrameInfo, int nMsec); virtual int GetOneFrameTimeout(unsigned char * pData , IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX* pFrameInfo, int nMsec); private: CDevRefs* m_pRefs; }; } #endif /* __MV_GIGE_DEVICE_H__ */