75 lines
2.0 KiB
C++
75 lines
2.0 KiB
C++
#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<IRegsAccess> regs();
|
|
virtual void reset();
|
|
virtual int width();
|
|
virtual int height();
|
|
virtual int color();
|
|
virtual void init_autocorrect(int colormode);
|
|
virtual void setcapturecall(std::function<void(int, std::string)> callback)
|
|
{
|
|
m_captureCallback = callback;
|
|
};
|
|
virtual void Fpga_regsAccess_reset(bool enable);
|
|
virtual void single_correct(std::uint32_t mode) override;
|
|
virtual void set_fpga_vsp(int a, int b);
|
|
|
|
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();
|
|
void init_lutdate();
|
|
|
|
private:
|
|
std::function<void(int, std::string)> m_captureCallback;
|
|
std::shared_ptr<gVideo> video;
|
|
std::shared_ptr<Gpio> vdd_cis_3voff_pin;
|
|
std::shared_ptr<Gpio> vdd_vis_5ven_pin;
|
|
std::shared_ptr<Gpio> reset_pin;
|
|
std::shared_ptr<Gpio> image_in_transfer_pin;
|
|
std::shared_ptr<Gpio> initDone_pin;
|
|
std::shared_ptr<Gpio> fpgaLoad;
|
|
std::shared_ptr<FpgaComm> fpgaComm;
|
|
std::shared_ptr<Gpio> fpga_conf_initn;
|
|
std::shared_ptr<Gpio> fpga_conf_done;
|
|
bool bcorrecting;
|
|
std::thread m_correctthread;
|
|
unsigned int m_fpgaversion;
|
|
HGScanConfig m_config;
|
|
FPGAConfigParam m_fpgaparam;
|
|
};
|