EntityCamera.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. #pragma once
  2. #include "Camera_Global.h"
  3. #include "../../Common/CameraBaseClass/IBaseCamCommon.h"
  4. #include "../../Common/CameraBaseClass/IBaseCamera.h"
  5. #include "CamParamConfig.h"
  6. #include "DialogCamPasram.h"
  7. //////////////////////////////////////////////////////////////////////////
  8. #include "SDK/MyCamera.h"
  9. /// ENTITY相机接口类
  10. class ICamera : public IBaseCamera
  11. {
  12. public:
  13. /// 初始化相机环境
  14. static bool initEnv();
  15. /// 关闭相机环境
  16. static bool closeEnv();
  17. /// 获取所有相机序列号
  18. static QVector<QString> cameraSerial();
  19. public:
  20. CMyCamera* m_pcMyCamera; // ch:CMyCamera封装了常用接口
  21. };
  22. class EntityCamera : public ICamera
  23. {
  24. private:
  25. EntityCamera();
  26. ~EntityCamera(void);
  27. CamParamConfig* m_pCamParamConfig; //配置参数类
  28. class DialogCamPasram* m_pDialogCamPasram; //相机参数设置窗口
  29. public:
  30. static EntityCamera* createCamera(QString serial);
  31. public:
  32. /// 获取配置参数类
  33. virtual IBaseCamParamConfig* camParamConfig();
  34. protected:
  35. /// 打开相机
  36. bool openCamera(QString serial);
  37. /// 关闭相机
  38. bool closeCamera();
  39. /// 初始化
  40. bool initialize();
  41. private:
  42. /// 加载参数
  43. virtual void loadCamParam();
  44. /// 保存参数
  45. virtual void saveCamParam();
  46. /// 设置相机工作模式
  47. virtual bool setWorkMode(IBaseCamCommon::CamWorkMode, bool Running = false) ;
  48. /// 相机工作模式
  49. virtual IBaseCamCommon::CamWorkMode workMode() ;
  50. /// 相机开始工作
  51. virtual bool startWork() ;
  52. /// 相机停止工作
  53. virtual bool stopWork() ;
  54. /// 相机序列号
  55. virtual QString serial() ;
  56. /// 重启相机
  57. virtual bool restartCamera() ;
  58. /// 获取一桢图像
  59. virtual bool captureImage(void** buf, int size) ;
  60. /// 获取图像宽
  61. virtual int imageWidth(void) ;
  62. /// 获取图像高
  63. virtual int imageHeight(void) ;
  64. /// 获取图像通道数
  65. virtual int imageChannels(void) ;
  66. /// 显示设置参数窗口页面
  67. virtual void showParamConfigWindow(int mode = 0) ;
  68. /// 获取相机最大分辨率
  69. virtual bool getMaxSize(int& w, int& h) ;
  70. /// 设置相机分辨率
  71. virtual bool setResolution(int w, int h) ;
  72. /// 获取已注册图像回调的数量
  73. virtual int getReceCallBackSIze();
  74. ///设置接收图像数据回调函数
  75. virtual void setReceCallBack(IBaseCamCommon::receImgCallBack callBack, long long userParam, QString userID = "main") ;
  76. ///设置接收Log数据回调函数
  77. virtual void setReceLogCallBack(IBaseCamCommon::receLogCallBack callBack, long long userParam) ;//设置接收数据回调函数
  78. /// 软件触发采图
  79. virtual void softTriggerCap(QString userID = "main") ;
  80. private:
  81. int m_nImageChannels;
  82. QString m_strSerial;
  83. IBaseCamCommon::CamWorkMode mWorkMode; //工作模式
  84. long long mUserParam; //回调函数用户自定义参数
  85. long long mLogUserParam; //回调Log函数用户自定义参数
  86. QString m_strUserID;
  87. IBaseCamCommon::CamImgData mImgCapBuffer;//捕获图像缓存
  88. QVector <IBaseCamCommon::ImgCallBack*> m_pImgCallBack;//接收数据回调函数
  89. private:
  90. static void __stdcall ImageCallBackEx(unsigned char* pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser);
  91. public:
  92. private:
  93. //接收数据回调函数
  94. //IBaseCamCommon::receImgCallBack m_pReceImgFunction;
  95. //接收Log回调函数
  96. IBaseCamCommon::receLogCallBack m_pReceLogFunction;
  97. /// 执行回调函数
  98. void execCallFunction(IBaseCamCommon::CamImgData*, int frameCount);
  99. /// 执行Log回调函数
  100. void execLogCallFunction(QString serial, QString Massage, long long userParam);
  101. /// 设置连续采集图像
  102. bool setToFreeRunMode();
  103. /// 设置软件触发模式采图
  104. bool setToSoftwareTrigerMode();
  105. /// 设置硬件触发
  106. bool setToHardwareTrigerMode();
  107. };