63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
#pragma once
|
|
#include <atomic>
|
|
#include <memory>
|
|
#include "BlockingQueue.h"
|
|
#include "scanservices_utils.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;
|
|
|
|
virtual void SetLowPower(bool islow) = 0;
|
|
|
|
protected:
|
|
std::shared_ptr<FpgaComm> m_capFpageregs;
|
|
BlockingQueue<V4L2_DATAINFO> m_v4l2data;
|
|
std::shared_ptr<HCamDevice> video;//Capturer 类内部自己初始化
|
|
HG_ScanConfiguration m_config;
|
|
};
|