mirror of http://192.168.1.51:8099/lmh188/twain3.0
95 lines
2.6 KiB
C++
95 lines
2.6 KiB
C++
#pragma once
|
|
#include "GScan.h"
|
|
#include "BlockingQueue.h"
|
|
#include <memory>
|
|
#include "PublicFunc.h"
|
|
#ifdef _WIN32
|
|
#include <boost/thread/mutex.hpp>
|
|
#include <boost/thread.hpp>
|
|
using thread = boost::thread;
|
|
#else
|
|
#include <thread>
|
|
using thread = std::thread;
|
|
#endif // _WIN32
|
|
|
|
|
|
|
|
class DiscardBlank;
|
|
class CImageApply;
|
|
class IDecode;
|
|
|
|
class GTest : public IGScan
|
|
{
|
|
public:
|
|
GTest();
|
|
// ͨ¹ý IGScan ¼Ì³Ð
|
|
virtual void open(int vid, int pid) 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 bool is_scan() override;
|
|
virtual BOOL Get_Scanner_PaperOn() override;
|
|
virtual void config_params(GScanCap& params) override;
|
|
virtual void Scanner_StartScan(UINT16 count) 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:
|
|
//std::shared_ptr<ImageMatQueue> m_pImages;
|
|
//BlockingQueue<int> ints;
|
|
//mutex m_Locker;
|
|
//mutex m_imgLocker;
|
|
//boost::thread m_thread;
|
|
std::string fwVersion;
|
|
std::string SerialNum;
|
|
int pixType;
|
|
};
|
|
|
|
|
|
class GScanVirtual : public IGScan, GScan
|
|
{
|
|
public:
|
|
#ifdef _WIN32
|
|
using mutex = boost::mutex;
|
|
using condition_variable = boost::condition_variable;
|
|
using thread = boost::thread;
|
|
#else
|
|
using mutex = mutex;
|
|
using condition_variable = std::condition_variable;
|
|
using thread = std::thread;
|
|
#endif // _WIN32
|
|
GScanVirtual();
|
|
virtual ~GScanVirtual();
|
|
// ͨ¹ý IGScan ¼Ì³Ð
|
|
virtual void open(int vid, int pid) 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 bool is_scan() override;
|
|
virtual BOOL Get_Scanner_PaperOn() override;
|
|
virtual void config_params(GScanCap& params) override;
|
|
virtual void Scanner_StartScan(UINT16 count) 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<IUsb> m_usb;
|
|
std::unique_ptr<thread> m_threadUsb;
|
|
};
|
|
|