twain3.0/huagao/Device/GScanO400.h

59 lines
1.9 KiB
C++

#pragma once
#include "GScan.h"
#include <memory>
class GScanO400 : public IScanner
{
public:
GScanO400();
virtual ~GScanO400();
// อจน IGScan ผฬณะ
virtual void open(int vid, int pid) override;
virtual void regist_deviceevent_callback(deviceevent_callback callback, void* usrdata = 0) override;
virtual int aquire_bmpdata(std::vector<unsigned char>& bmpdata) override;
virtual BOOL IsConnected() override;
virtual std::string GetFWVersion() override;
virtual std::string GetSerialNum() override;
virtual std::uint32_t GetMotorFPGA() override;
virtual std::uint32_t GetScanFPGA() override;
virtual bool is_scan() override;
virtual BOOL Get_Scanner_PaperOn() override;
virtual int Get_Roller_num() override;
virtual void config_params(GScanCap& params) override;
virtual void Scanner_StartScan(UINT16 count) override;
virtual int notifyscan() override;
virtual void Stop_scan() override;
virtual void ResetScanner() override;
virtual bool Get_IsImageQueueEmpty() override;
virtual void reset() override;
virtual UINT32 get_ErrorCode() override;
virtual void Set_ErrorCode(UINT32 value) override;
virtual int get_scanned_num() override;
virtual void clear_hwerror() override;
virtual void set_sleep_time(int mode) override;
virtual bool set_scannercode(std::string str);
virtual std::string get_scannercode();
virtual void DogEar_callback(std::function<void(int)> fun) override;
private:
static void usbhotplug_callback(bool isleft, void* userdata);
void usbhotplug(bool isleft);
void updateHVRatio();
void usbmain();
USBCB Get_Scanner_Status();
void Getimagenumber(bool isadd);
std::shared_ptr<std::vector<char>> Get_Img_Data(int buffersize);
void Pop_Image();
private:
bool m_bread_fixed_ratio_fromDSP;
std::shared_ptr<IUsb> m_usb;
std::unique_ptr<thread> m_threadUsb;
GScanCap gcap;
volatile int image_num;
volatile bool scanfalg;
void* huagods;
deviceevent_callback dev_callback;
};