CHIKVisionCamera.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #pragma once
  2. #include "MvCamera.h"
  3. #include "CCameraBase.h"
  4. #include "CMessageBox.h"
  5. #ifdef HIKVISION_CAMERA_EXPORTS
  6. #define HIKVISION_CAMERA_DLL_API __declspec(dllexport)
  7. #else
  8. #define HIKVISION_CAMERA_DLL_API //__declspec(dllimport)
  9. #endif
  10. class HIKVISION_CAMERA_DLL_API CHIKVisionCamera :
  11. public CCameraBase
  12. {
  13. public:
  14. CHIKVisionCamera(int id,string sDescribe, bool bEnable);
  15. ~CHIKVisionCamera();
  16. virtual long Open() override;
  17. virtual void Close() override;
  18. virtual long VideoStart() override;
  19. virtual long VideoStop() override;
  20. virtual long GrabImage(ImageInfo& image) override;
  21. virtual long SetExposure(double exposure) override;
  22. virtual double GetExposure() override;
  23. virtual long SetGain(double gain) override;
  24. virtual double GetGain() override;
  25. private:
  26. static CHAR strErrorText[256];
  27. static CHAR* GetErrText(INT nErrorNum);
  28. static bool m_bFindDevList;
  29. static MV_CC_DEVICE_INFO_LIST* m_stDevList;
  30. bool m_bOpenDevice; // ch:是否打开设备 | en:Whether to open device
  31. VOID* m_hGrabThread = NULL; // ch:取流线程句柄 | en:Grab thread handle
  32. bool m_bThreadState;
  33. MV_CC_DEVICE_INFO* m_pDeviceInfo;
  34. CMvCamera m_stMvCamera;
  35. UCHAR* GetDeviceUserDefinedName(MV_CC_DEVICE_INFO* pDeviceInfo);
  36. CMessageBox* m_pMeaasgeBox = nullptr;
  37. UINT m_iHIKVISIONWidthMax = 2248; //水平方向相机最大像素
  38. UINT m_iHIKVISIONHeightMax = 2048; //垂直方向相机是大像素
  39. LONG SaveImageBuf();
  40. private:
  41. CRITICAL_SECTION m_hSaveImageMux;
  42. UINT m_nSaveImageBufSize;
  43. bool m_bGrabImageDone;
  44. UCHAR* m_pSaveImageBuf = nullptr; //图像缓存
  45. bool m_bStartVedioBing = false; // ch:是否开始抓图 | en:Whether to start grabbing
  46. LONG m_bTimeOutNum = 0;
  47. public:
  48. LONG SaveImageBuf(unsigned char* pData, MV_FRAME_OUT_INFO_EX* stImageInfo);
  49. long ImageToViewThreadProcess();
  50. };