2021-07-31 03:12:53 +00:00
|
|
|
#pragma once
|
|
|
|
#include "IScanner.h"
|
|
|
|
#include "ThreadPool.h"
|
|
|
|
#include <thread>
|
|
|
|
#include <chrono>
|
|
|
|
|
|
|
|
class gscan3399 :public IScanner
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
gscan3399();
|
|
|
|
virtual ~gscan3399();
|
|
|
|
virtual void open(int vid, int pid, int index);
|
|
|
|
virtual int aquire_image(std::string& image, int num);
|
|
|
|
virtual bool IsConnected();
|
|
|
|
virtual std::string GetFWVersion();
|
|
|
|
virtual void SetFWVersion();
|
|
|
|
virtual std::string GetSerialNum();
|
|
|
|
virtual void SetSerialNum(std::string serial);
|
2021-08-17 01:07:55 +00:00
|
|
|
virtual std::string GetKernelVersion();
|
2021-10-20 00:55:37 +00:00
|
|
|
virtual std::string GetIpAddr();
|
|
|
|
virtual std::string GetMbVersion();
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void SetRatio(int tyepe, int ration);
|
|
|
|
virtual void GetRatio(int type, int& ratio);
|
|
|
|
virtual void Reboot();
|
|
|
|
virtual void PowerOff();
|
|
|
|
virtual bool is_scan();
|
|
|
|
virtual bool Get_Scanner_PaperOn();
|
|
|
|
virtual void Config_Scanner(HGScanConfig config);
|
|
|
|
virtual void Scanner_StartScan(UINT16 count);
|
|
|
|
virtual void Stop_scan();
|
|
|
|
virtual void ResetScanner();
|
|
|
|
virtual bool Get_IsImageQueueEmpty();
|
|
|
|
virtual void reset();
|
|
|
|
virtual void run();
|
|
|
|
virtual int get_decompress_pix_type();
|
|
|
|
virtual void set_decompress_pix_type(int pixtype);
|
2021-08-17 01:07:55 +00:00
|
|
|
virtual void GetFlatMaxBright(bool iscolor, unsigned int& val);
|
|
|
|
virtual void SetFlatMaxBright(bool iscolor, unsigned int val);
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual bool Updata(std::string filename, std::function<void(long, long)> func);
|
|
|
|
|
|
|
|
virtual void SetIsDuplex(bool value);
|
|
|
|
|
|
|
|
virtual void ActiveteUSB();
|
|
|
|
|
|
|
|
virtual int GetScanNum();
|
|
|
|
|
|
|
|
virtual void ClrRollerNum();
|
|
|
|
|
|
|
|
virtual void ClrScanNum();
|
|
|
|
|
|
|
|
virtual void SendFlatData(CorrectParam param, int index);
|
|
|
|
|
|
|
|
virtual CaptureParams GetFlatData();
|
|
|
|
|
|
|
|
virtual void StartFlat(bool iscolor);
|
|
|
|
|
|
|
|
virtual void DevStateChange();
|
|
|
|
|
|
|
|
virtual int getMatSum();
|
|
|
|
|
|
|
|
virtual void close();
|
|
|
|
|
|
|
|
virtual void GetExpose(int& Aside, int& Bside);
|
|
|
|
virtual void SetExpose(int aside, int bside);
|
|
|
|
|
|
|
|
virtual void GetSptime(int type, int& time);
|
|
|
|
virtual void SetSptime(int type, int time);
|
|
|
|
|
|
|
|
virtual void GetSleepTime(int& sleeptime);
|
|
|
|
virtual void SetSleepTime(int sleeptime);
|
2021-08-17 01:07:55 +00:00
|
|
|
|
|
|
|
virtual void SetFlatCallback(std::function<void(std::string)> func);
|
|
|
|
virtual void GetSpeedMode(int& speedmode,bool getorset);
|
2021-10-18 08:30:13 +00:00
|
|
|
virtual void GetOrSetVIDPID(int& value, bool get) override;
|
2021-08-17 01:07:55 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
private:
|
|
|
|
static void usbcallback(bool isleft, void* usrdata);
|
|
|
|
int read_data(void* data, int length, int timeout);
|
|
|
|
void get_imgdata();
|
|
|
|
bool is_runing();
|
|
|
|
bool bulk_starttransfer();
|
|
|
|
bool is_bulktransferring();
|
|
|
|
void popimg();
|
|
|
|
int front_datasize();
|
|
|
|
int get_imgremains();
|
|
|
|
void imgproce(std::shared_ptr<std::vector<char>>& buffs);
|
|
|
|
void OnUsbHotplug(bool isleft);
|
|
|
|
void usb_run();
|
|
|
|
int codeconvter(HGEIntInfo code);
|
|
|
|
private:
|
|
|
|
volatile int devState;
|
|
|
|
volatile int Error_Code;
|
|
|
|
volatile bool b_usbthread;
|
|
|
|
ThreadPool m_imgthread;
|
|
|
|
std::shared_ptr<std::thread> m_usbthread;
|
|
|
|
std::shared_ptr<std::vector<char>> im_data;
|
|
|
|
BlockingQueue<std::string> m_imagespath;
|
|
|
|
std::atomic_int imgremains;
|
|
|
|
HGScanConfig m_config;
|
2021-08-17 01:07:55 +00:00
|
|
|
std::function<void(std::string)> m_flatcallback;
|
2021-07-31 03:12:53 +00:00
|
|
|
};
|