qt-correction-tool/tool_ui/correction_tool.h

122 lines
3.5 KiB
C++

#ifndef CORRECTION_TOOL_H
#define CORRECTION_TOOL_H
#include <QDateTime>
#include <QtDebug>
#include "qfiledialog.h"
#include "GScan.h"
#include "GScanO1003399.h"
#include "GScanO200.h"
#include "GScanO400.h"
#include "IGScanManager.h"
#include "JsonConfig.h"
struct SpeedModeinfo
{
std::string modename;
int speedmode;
int comboxindex;
ScannerSerial m_mode;
};
struct SP_TYPE{
std::string name;
int colorsp;
int graysp;
};
static std::vector<SP_TYPE> SP_139{
{"G139_70ppm",0x42d,0xc88},
{"G139_80ppm",0x37f,0xa7f},
{"G139_90ppm",0x2b6,0x822},
{"G139_110ppm",0x24e,0x706},
};
static std::vector<SpeedModeinfo> SpeedModeMap{
{"G139_70ppm",70,0,G10039Serial},
{"G139_80ppm",80,1,G10039Serial},
{"G139_90ppm",90,2,G10039Serial},
{"G139_110ppm",110,3,G10039Serial},
{"G239_100ppm",100,0,G20039Serial},
{"G239_110ppm",110,1,G20039Serial},
{"G239_120ppm",120,2,G20039Serial},
{"G239_130ppm",130,3,G20039Serial},
{"G300_40ppm",1,0,G300Serial},
{"G300_50ppm",2,1,G300Serial},
{"G300_60ppm",3,2,G300Serial},
{"G300_70ppm",4,3,G300Serial},
{"G400_40ppm",1,0,G400Serial},
{"G400_50ppm",2,1,G400Serial},
{"G400_60ppm",3,2,G400Serial},
{"G400_70ppm",4,3,G400Serial},
{"G400_80ppm",5,4,G400Serial},
{"G100_70ppm",0,0,G100Serial},
{"G100_80ppm",1,1,G100Serial},
{"G100_90ppm",2,2,G100Serial},
{"G200_100ppm",0,0,G200Serial},
{"G200_120ppm",1,1,G200Serial},
{"G200_130ppm",2,2,G200Serial},
};
class Correction_Tool
{
public:
Correction_Tool();
std::vector<deviceinfo> getonlinedevice();
bool open(std::string scannername);
bool open(int vid,int pid);
void close();
bool is_connect();
std::string GetFWVersion();
void SetFWVersion();
std::string GetSerialNum();
void SetSerialNum(std::string serial);
std::string GetMBVersion();
CaptureParams GetFlatData();
void reset();
void Stop_scan();
void SetRatio(int tyepe, int ration);
void GetRatio(int type, int& ratio);
void GetOrSetRoller(int& value,int type);
void GetExpose(int& Aside, int& Bside);
void SetExpose(int aside, int bside);
void Reboot();
void config_params(GScanCap& params);
void GetSptime(int type, int& time);
void SetSptime(int type, int time);
void GetSleepTime(int& sleeptime);
void SetSleepTime(int sleeptime);
void GetSpeedMode(int& speedmode,bool getorset=false);
void Scanner_StartScan(int count);
void SetPath(std::string path);
bool Updata(std::string filename, std::function<void(long, long)> func);
void SendFlatData(CorrectParam param,int type);
int GetImg(std::string & path,int index);
void Setformat(std::string format);
void StartFlat(bool iscolor);
std::string GetOrSetbright(bool is_get,bool is_color,uint value);
std::string GetSysInfo();
std::string getip();
std::string getkernelversion();
QImage creatqimage(std::vector<uchar>& data,int width,int height,int bpp);
void usbvidpid(int & value,bool is_get);
void setcap(GScanCap cap){m_cap =cap;}
void setflatcallback(std::function<void(std::string str,bool flag)> func){
if(is_connect())
m_scanner->SetFlatCallback(func);
}
ScannerSerial getscannerserial(){
if(m_scanner.get())
return m_scanner->getserial();
return ScannerSerial::G100Serial;
}
private:
std::shared_ptr<IGScan> m_scanner;
std::shared_ptr<IGScanManager> m_scanmanager;
GScanCap m_cap;
std::string imgpath;
std::string imgformat;
};
#endif // CORRECTION_TOOL_H