#pragma once #include "ICapturer.h" class FpgaComm; class gVideo; class Gpio; class MonoCapturer : public ICapturer { private: /* data */ public: MonoCapturer(/* args */); virtual ~MonoCapturer(); virtual void open(); virtual void open(HGScanConfig config,FPGAConfigParam fpgaparam); virtual void close(); virtual void start(); virtual void stop(); virtual bool is_runing(); virtual void snap(); virtual void stopsnap(); virtual int getautosizeheight(); virtual void set_size(int width, int height); virtual void set_sp(int sp); virtual void *readFrame(int timeout); virtual void set_gain(int ix, int val); virtual void set_offset(int ix, int val); virtual void set_expo(int ix, int val); virtual std::shared_ptr regs(); virtual void reset(); virtual int width(); virtual int height(); virtual int color(); virtual void init_autocorrect(int colormode); virtual void setcapturecall(std::function callback) { m_captureCallback = callback; }; virtual void Fpga_regsAccess_reset(bool enable); private: void configFPGAParam(int mode, int dpi); void openDevice(int dpi, int mode); void creatcorrectconfig(int dpi, int mode); bool saveLutImg(int dpi, int mode, bool black); void correctcolor(int correctmode); void fpga_reset(); void fpga_reload(); private: std::function m_captureCallback; std::shared_ptr video; std::shared_ptr vdd_cis_3voff_pin; std::shared_ptr vdd_vis_5ven_pin; std::shared_ptr reset_pin; std::shared_ptr image_in_transfer_pin; std::shared_ptr initDone_pin; std::shared_ptr fpgaLoad; std::shared_ptr fpgaComm; std::shared_ptr fpga_conf_initn; std::shared_ptr fpga_conf_done; bool bcorrecting; std::thread m_correctthread; unsigned int m_fpgaversion; };