#pragma once #include "sense_camera_adapter.h" #include "GalaxyIncludes.h" #include //大恒相机 class CameraDahengImp : public CameraAdapter { public: CameraDahengImp(); ~CameraDahengImp(); int64_t enumDevicesSN(std::vector& sn); virtual int64_t setInitParameters(); virtual int64_t openCamera(const char* strDeviceSN); #ifdef USE_OPENCV virtual int64_t getOneImage(cv::Mat& img); virtual int64_t takeSingleImage(cv::Mat& img); #endif // USE_OPENCV #ifdef USE_HALCON virtual int64_t getOneImage(HalconCpp::HObject& img); virtual int64_t takeSingleImage(HalconCpp::HObject& img);//软触发并取一次图 #endif // USE_HALCON virtual int64_t softTriggerOnce(); //软触发一次 virtual int64_t closeCamera(); virtual int64_t reConnectCamera(); virtual void clearCameraBuf(); virtual int64_t startGrabbing(); virtual int64_t stopGrabbing(); virtual double getExposureTime(); virtual void setTriggerMode(E_TRIGGER_MODE mode); virtual void setTriggerSource(E_TRIGGER_SOURCE source); private: std::atomic_bool bIsStreamOpen= false; ///< 设备流是否已打开标识 std::atomic_bool bIsDeviceOpen = false; ///< 设备是否已打开标识 std::atomic_bool m_bIsColor = false; ///< 是否支持彩色 std::atomic_bool m_bStartGrabbing = false; ///< 设备采集标识 CImageDataPointer m_objImageDataPtr; ///< GetImage获取的图像 CGXDevicePointer m_objDevicePtr; ///< 设备句柄 CGXStreamPointer m_objStreamPtr; ///< 设备流对象 CGXFeatureControlPointer m_objFeatureControlPtr; ///< 属性控制器 CGXFeatureControlPointer m_objStreamFeatureControlPtr; ///< 流层控制器对象 GX_VALID_BIT_LIST _getBestValudBit(GX_PIXEL_FORMAT_ENTRY emPixelFormatEntry); void _isSupportColor(); ///判断PixelFormat是否为8位 bool _isPixelFormat8(GX_PIXEL_FORMAT_ENTRY emPixelFormatEntry); };