rk3399_arm_lvds/capimage/MonoCapturer.h

75 lines
2.0 KiB
C
Raw Permalink Normal View History

2024-03-05 03:46:18 +00:00
#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;
};