sense_ctrl_frame_grabber.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #include "sense_camera_global.h"
  3. #include "sense_camera_adapter.h"
  4. #include <memory>
  5. class SENSE_EXPORT CtrlFrameGrabber
  6. {
  7. public:
  8. enum E_CameraType
  9. {
  10. TYPE_HK = 0,
  11. TYPE_DAHENG = 1,
  12. TYPE_BASLER,
  13. TYPE_SIMULATE
  14. };
  15. enum
  16. {
  17. CAM_MAXNUM = 9,
  18. };
  19. //单例函数指针获取
  20. static CtrlFrameGrabber* getInstance();
  21. static void releaseInstance();
  22. static long enumDevicesSN(std::vector<std::string>& vecCamSn, CtrlFrameGrabber::E_CameraType type);
  23. long connectCam(long index, std::string& sn, long type);
  24. long reConnectCam(long index);
  25. long disconnectCam(long index);
  26. long disconnectALL();
  27. long getType(long index);
  28. #ifdef USE_OPENCV
  29. long getOneImage(long index, cv::Mat& img);
  30. long takeSingleImage(long index, cv::Mat& img);
  31. #endif
  32. #ifdef USE_HALCON
  33. long getOneImage(long index, HalconCpp::HObject& img);
  34. long takeSingleImage(long index, HalconCpp::HObject& img);//软触发并取一次图
  35. #endif // USE_HALCON
  36. void clearCameraBuf(long index);
  37. long startGrabbing(long index);
  38. long stopGrabbing(long index);
  39. long softTriggerOnce(long index);
  40. void setTriggerMode(long index,CameraAdapter::E_TRIGGER_MODE mode); //设置设备曝光时间
  41. void setTriggerSource(long index, CameraAdapter::E_TRIGGER_SOURCE source);
  42. private:
  43. explicit CtrlFrameGrabber();
  44. ~CtrlFrameGrabber();
  45. private:
  46. static CtrlFrameGrabber* m_handle;
  47. CameraAdapter* m_pCamAr[CtrlFrameGrabber::CAM_MAXNUM];//ProSYS::CAM_MAXNUM
  48. long m_pTypeAr[CtrlFrameGrabber::CAM_MAXNUM];//ProSYS::CAM_MAXNUM
  49. };