#pragma once #include "GScan.h" #include class GScanVirtual : public IGScan { public: GScanVirtual(); virtual ~GScanVirtual(); // ͨ¹ý IGScan ¼Ì³Ð virtual void open(int vid, int pid) override; virtual int aquire_bmpdata(std::vector& bmpdata); virtual bool IsConnected() override; virtual std::string GetFWVersion(int mode) override; virtual std::string GetSerialNum(int mode) override; virtual bool is_scan() override; virtual bool Get_Scanner_PaperOn() override; virtual void config_params(GScanCap& params,int mode) override; virtual void Scanner_StartScan(UINT32 count,int mode) override; void clear_hwerror() override; virtual void Stop_scan() override; virtual void ResetScanner() override; virtual bool Get_IsImageQueueEmpty() override; virtual void reset() override; virtual void setdecodepixtype(int twpixtype) override; virtual UINT32 get_ErrorCode() override; virtual void Set_ErrorCode(UINT32 value) override; virtual int get_scanned_num() override; private: DWORD usbmain(); void Pop_Image(); std::shared_ptr m_usb; std::unique_ptr m_threadUsb; // ͨ¹ý IGScan ¼Ì³Ð virtual bool close() override; virtual bool is_open() override; virtual void setusbreport_callback(usbreport_callback callback = 0, void* usrdata = 0) override; virtual int get_image_front_info(ImageInfo* info) override; virtual int aquire_image(cv::Mat& mat, int& bppinfo) override; virtual int get_roller_num() override; virtual void clr_roller_num() override; virtual int get_sleep_time() override; virtual void set_sleep_time(int time) override; virtual bool clr_hardware_cache() override; };