Basler相机类:CInstantCamera

   class PYLONBASE_API CInstantCamera : public Basler_InstantCameraParams::CInstantCameraParams_Params
    {
    public:
        CInstantCamera();
        CInstantCamera( IPylonDevice* pDevice, ECleanup cleanupProcedure = Cleanup_Delete);
        virtual ~CInstantCamera();
        virtual void Attach( IPylonDevice* pDevice, ECleanup cleanupProcedure = Cleanup_Delete);
        virtual bool IsPylonDeviceAttached() const;
        virtual bool IsCameraDeviceRemoved() const;
        virtual bool HasOwnership() const;
        virtual void DestroyDevice();
        virtual IPylonDevice* DetachDevice();
        virtual void Open();
        virtual bool IsOpen() const;

        virtual void Close();

//开始拍摄

        virtual void StartGrabbing( EGrabStrategy strategy = GrabStrategy_OneByOne, EGrabLoop grabLoopType = GrabLoop_ProvidedByUser);
        virtual void StartGrabbing( size_t maxImages, EGrabStrategy strategy = GrabStrategy_OneByOne, EGrabLoop grabLoopType = GrabLoop_ProvidedByUser);

     //返回拍摄结果

   virtual bool RetrieveResult( unsigned int timeoutMs, CGrabResultPtr& grabResult, ETimeoutHandling timeoutHandling = TimeoutHandling_ThrowException);

   //结束采集

     virtual void StopGrabbing();

        virtual bool IsGrabbing() const;
        virtual bool GrabOne( unsigned int timeoutMs, CGrabResultPtr& grabResult, ETimeoutHandling timeoutHandling = TimeoutHandling_ThrowException);
        virtual size_t GetQueuedBufferCount();
        virtual const WaitObject& GetGrabResultWaitObject();
        virtual const WaitObject& GetGrabStopWaitObject();
        virtual const WaitObject& GetCameraEventWaitObject();
        virtual void RegisterConfiguration( CConfigurationEventHandler* pConfigurator, ERegistrationMode mode, ECleanup cleanupProcedure);
        virtual bool DeregisterConfiguration( CConfigurationEventHandler* configurator);
        virtual void RegisterImageEventHandler( CImageEventHandler* pImageEventHandler, ERegistrationMode mode, ECleanup cleanupProcedure);
        virtual bool DeregisterImageEventHandler( CImageEventHandler* imageEventHandler);      
        virtual void RegisterCameraEventHandler(
            CCameraEventHandler* pCameraEventHandler,
            const String_t& nodeName,
            intptr_t userProvidedId,
            ERegistrationMode mode,
            ECleanup cleanupProcedure,
            ECameraEventAvailability availability = CameraEventAvailability_Mandatory);
        virtual bool DeregisterCameraEventHandler( CCameraEventHandler* cameraEventHandler, const String_t& nodeName);
        virtual bool WaitForFrameTriggerReady( unsigned int timeoutMs, ETimeoutHandling timeoutHandling = TimeoutHandling_ThrowException);
        virtual void ExecuteSoftwareTrigger();
        virtual void SetCameraContext( intptr_t context);
        virtual intptr_t GetCameraContext() const;
        virtual const CDeviceInfo& GetDeviceInfo() const;
        virtual GenApi::INodeMap& GetNodeMap();
        virtual GenApi::INodeMap& GetTLNodeMap();
        virtual GenApi::INodeMap& GetStreamGrabberNodeMap();
        virtual GenApi::INodeMap& GetEventGrabberNodeMap();
        virtual GenApi::INodeMap& GetInstantCameraNodeMap();
        virtual void SetBufferFactory( IBufferFactory* pFactory, ECleanup cleanupProcedure = Cleanup_Delete);
    
        //Types used by camera--------------------------------------------------

        /// The type of the camera class
        typedef CInstantCamera InstantCamera_t;
        /// \copybrief Pylon::IPylonDevice
        typedef IPylonDevice IPylonDevice_t;
        /// \copybrief Pylon::CDeviceInfo
        typedef Pylon::CDeviceInfo DeviceInfo_t;
        /// The generic configuration event handler class
        typedef CConfigurationEventHandler ConfigurationEventHandler_t;
        /// The generic image event handler class
        typedef CImageEventHandler ImageEventHandler_t;
        /// The generic image event handler class
        typedef CCameraEventHandler CameraEventHandler_t;
        /// The generic grab result data
        typedef CGrabResultData GrabResultData_t;
        /// The generic grab result smart pointer
        typedef CGrabResultPtr GrabResultPtr_t;

    protected:
        virtual IPylonDevice* GetDevice();
        GenApi::CLock& GetLock();
        GenApi::INodeMap& GetEmptyNodeMap();

        // Internal use only. Subject to change without notice.
        void InternalRegisterConfiguration( CConfigurationEventHandler*, ERegistrationMode, ECleanup, const long*);
        // Internal use only. Subject to change without notice.
        void InternalRegisterImageEventHandler( CImageEventHandler*, ERegistrationMode, ECleanup, const long*);
        // Internal use only. Subject to change without notice.
        void InternalRegisterCameraEventHandler( CCameraEventHandler*, const String_t&, intptr_t, ERegistrationMode, ECleanup, ECameraEventAvailability, const long*);
        // Internal use only. Subject to change without notice.
        bool InternalDeregisterConfiguration(const long*);
        // Internal use only. Subject to change without notice.
        bool InternalDeregisterImageEventHandler(const long*);
        // Internal use only. Subject to change without notice.
        bool InternalDeregisterCameraEventHandler(const long*, const String_t&);
        // Internal use only. Subject to change without notice.
        void InternalShutdownEventHandlers();


    public:
        // Internal use only. Subject to change without notice.
        IInstantCameraExtensions& GetExtensionInterface();
    private:
        // The camera object can not be copied.
        CInstantCamera( const CInstantCamera&);
        // The camera object can not be copied.
        void operator = ( const CInstantCamera&);
        
        class CInstantCameraImpl;
        CInstantCameraImpl* m_pImpl;


    protected:
        // Internal use only. Subject to change without notice.
        friend class CGrabResultDataFactory;
        // Internal use only. Subject to change without notice.
        virtual CGrabResultData* CreateDeviceSpecificGrabResultData();
    private:
        // Internal use only. Subject to change without notice.
        CGrabResultData* CreateGrabResultData();

    };

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码猿杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值