#pragma once #include "sense_camera_global.h" #include #include #include #ifdef USE_OPENCV #include "opencv2/opencv.hpp" #endif // USE_OPENCV #ifdef USE_HALCON #include #endif // USE_HALCON namespace cv { class Mat; } namespace HalconCpp { class HObject; } class SENSE_EXPORT CameraAdapter { public: enum class E_TRIGGER_MODE { TRIGGER_MODE_ON = 0, TRIGGER_MODE_OFF, }; enum class E_TRIGGER_SOURCE { TRIGGER_SOURCE_SOFT = 0, TRIGGER_SOURCE_LINE0, TRIGGER_SOURCE_LINE2, TRIGGER_SOURCE_LINE3, }; virtual int64_t openCamera(const char* camSN) = 0; virtual int64_t setInitParameters() = 0; #ifdef USE_OPENCV virtual int64_t getOneImage(cv::Mat& img) = 0; virtual int64_t takeSingleImage(cv::Mat& img) = 0;//软触发并取一次图 #endif #ifdef USE_HALCON virtual int64_t getOneImage(HalconCpp::HObject& img) = 0; virtual int64_t takeSingleImage(HalconCpp::HObject& img) = 0;//软触发并取一次图 #endif // USE_HALCON virtual int64_t closeCamera() = 0 ; virtual int64_t reConnectCamera() = 0; virtual void clearCameraBuf() = 0; virtual int64_t startGrabbing() = 0; virtual int64_t stopGrabbing() = 0; virtual int64_t softTriggerOnce() = 0;//软触发一次 virtual double getExposureTime() = 0; ////获取设备当前曝光时间 virtual void setTriggerMode(E_TRIGGER_MODE mode) = 0; //设置设备曝光时间 virtual void setTriggerSource(E_TRIGGER_SOURCE source) = 0; //设置触发源 enum { IMAGESIZE_DEFAULT_WIDTH = 2590, IMAGESIZE_DEFAULT_HEIGHT = 1944, }; enum { SUCCESS = 0, ACTION_FAILED_UNDO = -100001, GAMERA_UNKOWN_CONTROLLER = -98000, GAMERA_FAILED_NODEVICE, GAMERA_FAILED_ALLOCATE, GAMERA_FAILED_OVERCONNECT, GAMERA_FAILED_TOCONNECT, GAMERA_FAILED_UNCONNECTED, GAMERA_FAILED_SETEXPOSURE, GAMERA_FAILED_INACTION, GAMERA_FAILED_TIMEOUTEXEC, GAMERA_FAILED_NOIMAGEACC, GAMERA_FAILED_IMAGEBUFLEN, GAMERA_FAILED_STDEXCEPTION, GAMERA_FAILED_UNKNOWNEXCEPTION, GAMERA_FAILED_GETIMAGE, ERROR_UNDEFINE }; };