123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- #pragma once
- #include "Camera_Global.h"
- #include "../../Common/CameraBaseClass/IBaseCamCommon.h"
- #include "../../Common/CameraBaseClass/IBaseCamera.h"
- #include "CamParamConfig.h"
- #include "DialogCamPasram.h"
- //////////////////////////////////////////////////////////////////////////
- #include "SapClassBasic.h"
- /// ENTITY相机接口类
- class ICamera : public IBaseCamera
- {
- public:
- /// 初始化相机环境
- static bool initEnv();
- /// 关闭相机环境
- static bool closeEnv();
- /// 获取所有相机序列号
- static QVector<QString> cameraSerial();
- public:
- static SapManager* m_pManger;
- };
- class EntityCamera : public ICamera
- {
- private:
- EntityCamera();
-
- ~EntityCamera(void);
- CamParamConfig* m_pCamParamConfig; //配置参数类
- class DialogCamPasram* m_pDialogCamPasram; //相机参数设置窗口
- public:
- static EntityCamera* createCamera(QString serial);
- public:
- /// 获取配置参数类
- virtual IBaseCamParamConfig* camParamConfig();
- protected:
- /// 打开相机
- bool openCamera(QString serial);
- /// 关闭相机
- bool closeCamera();
- /// 初始化
- bool initialize();
- private:
- /// 加载参数
- virtual void loadCamParam();
- /// 保存参数
- virtual void saveCamParam();
- /// 设置相机工作模式
- virtual bool setWorkMode(IBaseCamCommon::CamWorkMode, bool Running = false) ;
- /// 相机工作模式
- virtual IBaseCamCommon::CamWorkMode workMode() ;
- /// 相机开始工作
- virtual bool startWork() ;
- /// 相机停止工作
- virtual bool stopWork() ;
- /// 相机序列号
- virtual QString serial() ;
- /// 重启相机
- virtual bool restartCamera() ;
- /// 获取一桢图像
- virtual bool captureImage(void** buf, int size) ;
- /// 获取图像宽
- virtual int imageWidth(void) ;
- /// 获取图像高
- virtual int imageHeight(void) ;
- /// 获取图像通道数
- virtual int imageChannels(void) ;
- /// 显示设置参数窗口页面
- virtual void showParamConfigWindow(int mode = 0) ;
- /// 获取相机最大分辨率
- virtual bool getMaxSize(int& w, int& h) ;
- /// 设置相机分辨率
- virtual bool setResolution(int w, int h) ;
- /// 获取已注册图像回调的数量
- virtual int getReceCallBackSIze();
- ///设置接收图像数据回调函数
- virtual void setReceCallBack(IBaseCamCommon::receImgCallBack callBack, long long userParam, QString userID = "main");
- ///设置接收Log数据回调函数
- virtual void setReceLogCallBack(IBaseCamCommon::receLogCallBack callBack, long long userParam) ;//设置接收数据回调函数
- /// 软件触发采图
- virtual void softTriggerCap(QString userID = "main") ;
- private:
- int m_nImageChannels;
- QString m_strSerial;
- IBaseCamCommon::CamWorkMode mWorkMode; //工作模式
- long long mUserParam; //回调函数用户自定义参数
- long long mLogUserParam; //回调Log函数用户自定义参数
- QString m_strUserID;
- IBaseCamCommon::CamImgData mImgCapBuffer;//捕获图像缓存
- QVector <IBaseCamCommon::ImgCallBack*> m_pImgCallBack;//接收数据回调函数
- private:
- bool SN_ToSeverName(QString strSN, char* ServerName);
- SapBuffer* m_pBuffers;
- SapTransfer* m_Xfer;
- SapColorConversion* m_pColorconv;
- BYTE* TMPBUF;
- int m_iImageWidth, m_iImageHeight;
-
- static void XferCallback(SapXferCallbackInfo* pInfo);
- static void SignalCallback(SapAcqCallbackInfo* pInfo);
- void GetSignalStatus();
- void GetSignalStatus(SapAcquisition::SignalStatus signalStatus);
- BOOL m_IsSignalDetected; // TRUE 如果检测到摄像机信号
- public:
- SapAcqDevice* m_pCamera;
- SapFeature* m_pFeature;
- private:
- //接收数据回调函数
- IBaseCamCommon::receImgCallBack m_pReceImgFunction;
- //接收Log回调函数
- IBaseCamCommon::receLogCallBack m_pReceLogFunction;
- /// 执行回调函数
- void execCallFunction(IBaseCamCommon::CamImgData*, int frameCount);
- /// 执行Log回调函数
- void execLogCallFunction(QString serial, QString Massage, long long userParam);
- /// 设置连续采集图像
- bool setToFreeRunMode();
- /// 设置软件触发模式采图
- bool setToSoftwareTrigerMode();
- /// 设置硬件触发
- bool setToHardwareTrigerMode();
- };
|