sense_gx_camera_imp.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include "sense_camera_adapter.h"
  3. #include "GalaxyIncludes.h"
  4. #include <atomic>
  5. //大恒相机
  6. class CameraDahengImp : public CameraAdapter
  7. {
  8. public:
  9. CameraDahengImp();
  10. ~CameraDahengImp();
  11. int64_t enumDevicesSN(std::vector<std::string>& sn);
  12. virtual int64_t setInitParameters();
  13. virtual int64_t openCamera(const char* strDeviceSN);
  14. #ifdef USE_OPENCV
  15. virtual int64_t getOneImage(cv::Mat& img);
  16. virtual int64_t takeSingleImage(cv::Mat& img);
  17. #endif // USE_OPENCV
  18. #ifdef USE_HALCON
  19. virtual int64_t getOneImage(HalconCpp::HObject& img);
  20. virtual int64_t takeSingleImage(HalconCpp::HObject& img);//软触发并取一次图
  21. #endif // USE_HALCON
  22. virtual int64_t softTriggerOnce(); //软触发一次
  23. virtual int64_t closeCamera();
  24. virtual int64_t reConnectCamera();
  25. virtual void clearCameraBuf();
  26. virtual int64_t startGrabbing();
  27. virtual int64_t stopGrabbing();
  28. virtual double getExposureTime();
  29. virtual void setTriggerMode(E_TRIGGER_MODE mode);
  30. virtual void setTriggerSource(E_TRIGGER_SOURCE source);
  31. private:
  32. std::atomic_bool bIsStreamOpen= false; ///< 设备流是否已打开标识
  33. std::atomic_bool bIsDeviceOpen = false; ///< 设备是否已打开标识
  34. std::atomic_bool m_bIsColor = false; ///< 是否支持彩色
  35. std::atomic_bool m_bStartGrabbing = false; ///< 设备采集标识
  36. CImageDataPointer m_objImageDataPtr; ///< GetImage获取的图像
  37. CGXDevicePointer m_objDevicePtr; ///< 设备句柄
  38. CGXStreamPointer m_objStreamPtr; ///< 设备流对象
  39. CGXFeatureControlPointer m_objFeatureControlPtr; ///< 属性控制器
  40. CGXFeatureControlPointer m_objStreamFeatureControlPtr; ///< 流层控制器对象
  41. GX_VALID_BIT_LIST _getBestValudBit(GX_PIXEL_FORMAT_ENTRY emPixelFormatEntry);
  42. void _isSupportColor();
  43. ///判断PixelFormat是否为8位
  44. bool _isPixelFormat8(GX_PIXEL_FORMAT_ENTRY emPixelFormatEntry);
  45. };