#ifndef CORRECTION_TOOL_H #define CORRECTION_TOOL_H #include #include #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_139{ {"G139_70ppm",0x42d,0xc88}, {"G139_80ppm",0x37f,0xa7f}, {"G139_90ppm",0x2b6,0x822}, {"G139_110ppm",0x24e,0x706}, }; static std::vector 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 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 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& 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 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 m_scanner; std::shared_ptr m_scanmanager; GScanCap m_cap; std::string imgpath; std::string imgformat; }; #endif // CORRECTION_TOOL_H