#pragma once #include #include "hgutils.h" class FpgaComm; class gVideo; class Gpio; class Capturer : public ICapturer { public: Capturer(); virtual ~Capturer(); virtual void Fpga_regsAccess_reset(bool enable); 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() { return 0; } 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 single_correct(std::uint32_t mode) override {} private: void setFGPAParmas(int exposures[2][3], int gains[2][6], int offsets[2][6]); void configFPGAParam(bool iscorrect, int mode); void fpga_reset(); void fpga_reload(); void autocorrect(int colormode); void creatcorrect(int mode); void openDevice(int mode); void creatcorrectconfig(int mode); bool saveLutImg(int mode, int index); 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 video; std::function m_captureCallback; HGScanConfig m_configParam; bool bcorrecting; std::thread m_correctthread; HGCorrectConfigs cisconfigs; ScannerNativeParam scannerinfo; };