zynq_7010/ICapturer.h

63 lines
1.3 KiB
C++

#pragma once
#include <atomic>
#include <memory>
#include "BlockingQueue.h"
#include "scanservices_utils.h"
#include "gvideo.h"
#include "HCamDevice.h"
class FpgaComm;
class ICapturer
{
public:
ICapturer() {}
virtual ~ICapturer() {}
virtual void SetParent(void *scanner) = 0;
virtual void open() = 0;
virtual void snap() = 0;
virtual void stopsnap(bool autosize) = 0;
virtual void close() = 0;
virtual int read(int addr) = 0;
virtual void *readFrameTest(int timeout) = 0;
virtual void UpdateScanParam(HG_ScanConfiguration config) = 0;
virtual void createCorrect(int correctmode) = 0;
virtual void setFPGATriggerMode(bool autotrigger, int delay) = 0;
virtual void setFanMode(int mode) = 0;
virtual void fpgaReload() = 0;
virtual bool capturerImage() = 0;
virtual void waitsnapdone(int state) = 0;
virtual bool IsImageQueueEmpty() = 0;
virtual void resetimageremain() = 0;
virtual std::atomic_int &getimageremain() = 0;
virtual void clearimages() = 0;
virtual void setScanFlag(bool brun) = 0;
protected:
std::shared_ptr<FpgaComm> m_capFpageregs;
BlockingQueue<V4L2_DATAINFO> m_v4l2data;
std::shared_ptr<HCamDevice> video;//Capturer 类内部自己初始化
HG_ScanConfiguration m_config;
};