2020-03-11 01:58:06 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
#include <memory>
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <queue>
|
|
|
|
|
#include <Windows.h>
|
|
|
|
|
#include <time.h>
|
|
|
|
|
#include <mutex>
|
|
|
|
|
#include <thread>
|
|
|
|
|
#include "PublicFunc.h"
|
|
|
|
|
|
|
|
|
|
enum tagDevState
|
|
|
|
|
{
|
|
|
|
|
DEV_STOP = -1,
|
|
|
|
|
DEV_ISRUNNING,
|
|
|
|
|
DEV_WRONG
|
|
|
|
|
};
|
|
|
|
|
typedef enum tagDevState DevState, PDevState;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//u32_Data
|
|
|
|
|
typedef enum tagUsbSupported {
|
|
|
|
|
//ֹͣɨ<D6B9><C9A8>
|
|
|
|
|
SCAN_STOP = -2,
|
|
|
|
|
//<2F>쳣
|
|
|
|
|
HAVE_ERROR = -1,
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
NORMAL = 0,
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
OPEN_COVER = 1,
|
|
|
|
|
// <20><>ֽ
|
|
|
|
|
NO_FEED = 2,
|
|
|
|
|
// <20><>ֽʧ<D6BD><CAA7>
|
|
|
|
|
FEED_IN_ERROR = 4,
|
|
|
|
|
// <20><>ֽ
|
|
|
|
|
PAPER_JAM = 8,
|
|
|
|
|
// <20><><EFBFBD>˫<E2B5BD><CBAB>
|
|
|
|
|
DETECT_DOUBLE_FEED = 16,
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><E2B5BD><EFBFBD>鶤
|
|
|
|
|
DETECT_STAPLE = 32,
|
|
|
|
|
// ֽ<><D6BD><EFBFBD><EFBFBD>б
|
|
|
|
|
PAPER_SKEW = 64,
|
|
|
|
|
// <20>Զ<EFBFBD>ģʽ
|
|
|
|
|
AUTO_SCAN_MODE = 65,
|
|
|
|
|
// <20>ֶ<EFBFBD>ģʽ
|
|
|
|
|
MANAUL_SCAN_MODE = 66,
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
COUNT_MODE = 67,
|
|
|
|
|
// Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
HARDWARE_ERROR = 68,
|
|
|
|
|
// FPGA<47><41><EFBFBD><EFBFBD>
|
|
|
|
|
FPGA_ERROR = 68,
|
|
|
|
|
// <20><>ʼ
|
|
|
|
|
START_SCAN = 69,
|
|
|
|
|
//ֹͣ
|
|
|
|
|
STOP_SCAN = 70,
|
|
|
|
|
//<2F><>ͼ
|
|
|
|
|
HAVE_IMAGE = 71,
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
UPDATE_SCAN_PARAMETER = 72,
|
|
|
|
|
// PC<50><43>æ<EFBFBD><C3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
PC_SCAN_BUSY_or_ERROR = 73,
|
|
|
|
|
//USB δ<><CEB4><EFBFBD><EFBFBD>
|
|
|
|
|
USB_DISCONNECTED = 200
|
2020-06-20 03:13:18 +00:00
|
|
|
|
} UsbSupported, *PUsbSupported;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum tagEventIndex
|
|
|
|
|
{
|
|
|
|
|
EVENT_IMAGE,
|
|
|
|
|
EVENT_NUM
|
|
|
|
|
};
|
2020-03-11 01:58:06 +00:00
|
|
|
|
|
2020-06-20 03:13:18 +00:00
|
|
|
|
class DiscardBlank;
|
|
|
|
|
class CImageApply;
|
|
|
|
|
class IUsb;
|
|
|
|
|
class ImageMatQueue;
|
2020-03-11 01:58:06 +00:00
|
|
|
|
|
2020-06-20 03:13:18 +00:00
|
|
|
|
class IScanner
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
virtual ~IScanner(){};
|
2020-03-11 01:58:06 +00:00
|
|
|
|
|
2020-06-20 03:13:18 +00:00
|
|
|
|
virtual void open(int vid, int pid) = 0;;
|
|
|
|
|
virtual int aquire_bmpdata(std::vector<unsigned char>& bmpdata) = 0;
|
|
|
|
|
virtual BOOL IsConnected() = 0;
|
|
|
|
|
virtual std::string GetFWVersion() = 0;
|
|
|
|
|
virtual std::string GetSerialNum() = 0;
|
|
|
|
|
virtual bool is_scan() = 0;
|
|
|
|
|
virtual BOOL Get_Scanner_PaperOn() = 0;
|
|
|
|
|
virtual void config_params(GScanCap& params) = 0;
|
|
|
|
|
virtual void Scanner_StartScan(UINT16 count) = 0;
|
|
|
|
|
virtual void Stop_scan() = 0;
|
|
|
|
|
virtual void ResetScanner() =0;
|
|
|
|
|
virtual bool Get_IsImageQueueEmpty() = 0;
|
|
|
|
|
virtual void reset() = 0;
|
|
|
|
|
virtual void clear_hwerror() = 0;
|
|
|
|
|
virtual void setdecodepixtype(int twpixtype)= 0;
|
|
|
|
|
virtual UINT32 get_ErrorCode() = 0;
|
|
|
|
|
virtual void Set_ErrorCode(UINT32 value) = 0;
|
|
|
|
|
virtual int get_scanned_num() = 0;
|
|
|
|
|
void DoEvents() {
|
|
|
|
|
MSG msg;
|
|
|
|
|
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
|
|
|
|
|
DispatchMessage(&msg);
|
|
|
|
|
TranslateMessage(&msg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
protected:
|
|
|
|
|
volatile UINT32 Error_Code;
|
|
|
|
|
volatile int devState;
|
|
|
|
|
std::shared_ptr<ImageMatQueue> m_pImages;
|
|
|
|
|
std::mutex m_Locker;
|
|
|
|
|
std::mutex m_imgLocker;
|
|
|
|
|
std::string fwVersion;
|
|
|
|
|
std::string SerialNum;
|
|
|
|
|
int pixType;
|
|
|
|
|
};
|