123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- #pragma once
- #include "cvx_camera_global.h"
- #include <stdint.h>
- #include <string>
- #include <vector>
- #ifdef USE_OPENCV
- #include "opencv2/opencv.hpp"
- #endif // USE_OPENCV
- #ifdef USE_HALCON
- #include <HalconCpp.h>
- #endif // USE_HALCON
- namespace cv
- {
- class Mat;
- }
- namespace HalconCpp
- {
- class HObject;
- }
- enum E_CameraType
- {
- TYPE_HK = 0,
- TYPE_DAHENG = 1,
- TYPE_BASLER,
- TYPE_SIMULATE
- };
- class CVX_EXPORT CvxCamera
- {
- public:
- virtual ~CvxCamera(){}
- enum E_PIXEL_TYPE
- {
- PIXEL_TYPE_GVSP_MONO8,
- PIXEL_TYPE_GVSP_RGB8
- };
- enum E_TRIGGER_MODE
- {
- TRIGGER_MODE_OFF = 0,
- TRIGGER_MODE_ON,
- };
- enum E_TRIGGER_SOURCE
- {
- TRIGGER_SOURCE_SOFT = 0,
- TRIGGER_SOURCE_LINE0,
- TRIGGER_SOURCE_LINE2,
- TRIGGER_SOURCE_LINE3,
- TRIGGER_SOURCE_Anyway,
- };
- static std::shared_ptr<CvxCamera> createInstance(E_CameraType type);
- virtual int64_t enumDevicesSN(std::vector<std::string>& sn) = 0;
- virtual int64_t openCamera(const char* camSN) = 0;
- virtual int64_t setInitParameters() = 0;
- virtual std::string getCameraSN() = 0;
- virtual int64_t getCameraImageSize(int64_t &size) = 0;
- virtual int64_t getCameraImageWidth(int64_t& width) = 0;
- virtual int64_t getCameraImageHeigth(int64_t& height) = 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 int64_t clearCameraBuf() = 0;
- virtual int64_t startGrabbing() = 0;
- virtual int64_t stopGrabbing() = 0;
- virtual int64_t softTriggerOnce() = 0;//软触发一次
- virtual int64_t setPixelType(E_PIXEL_TYPE type) = 0; //设置图像格式
- virtual int64_t setTriggerMode(E_TRIGGER_MODE mode) = 0; //设置触发模式
- virtual int64_t setTriggerSource(E_TRIGGER_SOURCE source) = 0; //设置触发源
- virtual float getExposureTime() = 0;//获取设备当前曝光时间
- virtual int64_t setExposureTime(float expTime) = 0;//设置曝光
- virtual int64_t setTriggerDelay(int delay) = 0; //设置触发延时
- virtual int64_t setGain(float gainValue) = 0; //设置增益
- virtual float getGain() = 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
- };
- protected:
- CvxCamera(){}
- };
|