#pragma once #include "sense_camera_global.h" #include "sense_camera_adapter.h" #include class SENSE_EXPORT CtrlFrameGrabber { public: enum E_CameraType { TYPE_HK = 0, TYPE_DAHENG = 1, TYPE_BASLER, TYPE_SIMULATE }; enum { CAM_MAXNUM = 9, }; //单例函数指针获取 static CtrlFrameGrabber* getInstance(); static void releaseInstance(); static long enumDevicesSN(std::vector& vecCamSn, CtrlFrameGrabber::E_CameraType type); long connectCam(long index, std::string& sn, long type); long reConnectCam(long index); long disconnectCam(long index); long disconnectALL(); long getType(long index); #ifdef USE_OPENCV long getOneImage(long index, cv::Mat& img); long takeSingleImage(long index, cv::Mat& img); #endif #ifdef USE_HALCON long getOneImage(long index, HalconCpp::HObject& img); long takeSingleImage(long index, HalconCpp::HObject& img);//软触发并取一次图 #endif // USE_HALCON void clearCameraBuf(long index); long startGrabbing(long index); long stopGrabbing(long index); long softTriggerOnce(long index); void setTriggerMode(long index,CameraAdapter::E_TRIGGER_MODE mode); //设置设备曝光时间 void setTriggerSource(long index, CameraAdapter::E_TRIGGER_SOURCE source); private: explicit CtrlFrameGrabber(); ~CtrlFrameGrabber(); private: static CtrlFrameGrabber* m_handle; CameraAdapter* m_pCamAr[CtrlFrameGrabber::CAM_MAXNUM];//ProSYS::CAM_MAXNUM long m_pTypeAr[CtrlFrameGrabber::CAM_MAXNUM];//ProSYS::CAM_MAXNUM };