#pragma once #include "CHCameraControls/CameraControl.h" #include #include #include using namespace Pylon; typedef Pylon::CBaslerGigEInstantCamera Camera_t; class AFX_EXT_CLASS CCameraControl_Pylon : public CCameraControl, public CImageEventHandler, public CConfigurationEventHandler { public: CCameraControl_Pylon(int nViewIndex=-1); virtual ~CCameraControl_Pylon(void); // camera control virtual int Connect(const CCameraControlInfo& controlInfo); virtual int Grab(); virtual int Snap(); virtual int Snap(int nCount); virtual int Snap(int nCount, UINT nWaitTime); virtual int Freeze(); virtual int Abort(); virtual int Disconnect(); virtual BOOL SetExposureTime(double dValue); virtual BOOL GetExposureTime(double& dValue); virtual BOOL SetExposureAuto(BOOL bAuto); virtual BOOL SetFrameRate(double dRate) { return TRUE; } virtual void SetTriggerMode(int nMode, int nCount=1); virtual BOOL GetConnected() const; virtual BOOL GetGrabbing() const; protected: void ImageCallbackFunc(const CGrabResultPtr& ptrGrabResult); static void SetHeartbeatTimeout(UINT nTimeout); virtual void OnImageGrabbed(CInstantCamera& camera, const CGrabResultPtr& ptrGrabResult); protected: int m_nSnapFrameCount; Camera_t* m_pCamera; CImageFormatConverter m_Converter; };