2020-03-11 01:58:06 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
#include <memory>
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <queue>
|
2021-07-02 03:29:24 +00:00
|
|
|
|
#ifdef WIN32
|
2020-03-11 01:58:06 +00:00
|
|
|
|
#include <Windows.h>
|
2021-07-02 03:29:24 +00:00
|
|
|
|
#endif
|
2020-03-11 01:58:06 +00:00
|
|
|
|
#include <time.h>
|
|
|
|
|
#include <mutex>
|
2021-07-02 03:29:24 +00:00
|
|
|
|
#include <atomic>
|
2020-03-11 01:58:06 +00:00
|
|
|
|
#include <thread>
|
2020-11-16 10:05:04 +00:00
|
|
|
|
#include <functional>
|
2020-12-09 08:02:51 +00:00
|
|
|
|
#include "filetools.h"
|
2020-03-11 01:58:06 +00:00
|
|
|
|
#include "PublicFunc.h"
|
2021-04-13 09:30:05 +00:00
|
|
|
|
using namespace std;
|
2020-03-11 01:58:06 +00:00
|
|
|
|
enum tagDevState
|
|
|
|
|
{
|
|
|
|
|
DEV_STOP = -1,
|
|
|
|
|
DEV_ISRUNNING,
|
|
|
|
|
DEV_WRONG
|
|
|
|
|
};
|
|
|
|
|
typedef enum tagDevState DevState, PDevState;
|
|
|
|
|
|
|
|
|
|
|
2021-01-22 07:18:41 +00:00
|
|
|
|
typedef struct tag_USBCB {
|
|
|
|
|
UINT32 u32_CMD;
|
|
|
|
|
UINT32 u32_Data;
|
|
|
|
|
UINT32 u32_Count;
|
|
|
|
|
}USBCB, * PUSBCB;
|
|
|
|
|
|
2020-03-11 01:58:06 +00:00
|
|
|
|
//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,
|
2020-11-16 10:05:04 +00:00
|
|
|
|
//ߡ<><DFA1>
|
2021-07-11 08:19:57 +00:00
|
|
|
|
DOG_EAR = 74,
|
2020-12-10 02:01:22 +00:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2021-07-11 08:19:57 +00:00
|
|
|
|
SIZE_ERROR = 75,
|
2021-05-13 10:13:08 +00:00
|
|
|
|
//ȡͼ<C8A1><CDBC>ʱ
|
2021-07-11 08:19:57 +00:00
|
|
|
|
AQUIRE_IMAGE_TIMEOUT = 76,
|
2021-05-13 10:13:08 +00:00
|
|
|
|
//<2F><>ȡͼƬ<CDBC><C6AC>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5>
|
2021-07-11 08:19:57 +00:00
|
|
|
|
LOSE_IMAGE = 77,
|
2021-06-21 11:38:36 +00:00
|
|
|
|
//usb<73><62>ȡ<EFBFBD><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
2021-07-11 08:19:57 +00:00
|
|
|
|
USB_BULK_ERROR = 78,
|
|
|
|
|
//v4l2ȡͼʧ<CDBC><CAA7>
|
|
|
|
|
V4L2_AQULRE_ERROR = 79,
|
|
|
|
|
//ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ͼƬ<CDBC><C6AC>ʧ
|
|
|
|
|
V4L2_IMAGE_EMPTY = 80,
|
2021-07-29 11:34:42 +00:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
SLEEPING = 81,
|
2021-07-31 11:12:44 +00:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD><E2B5BD><EFBFBD>۽<EFBFBD>
|
|
|
|
|
HAVE_DOGEAR = 82,
|
2021-12-16 08:21:35 +00:00
|
|
|
|
//
|
|
|
|
|
MLTOP_TIMEOUT = 83,
|
2022-05-24 12:05:47 +00:00
|
|
|
|
//
|
|
|
|
|
PAPER_HOLE = 84,
|
2020-03-11 01:58:06 +00:00
|
|
|
|
//USB δ<><CEB4><EFBFBD><EFBFBD>
|
2020-08-31 07:46:14 +00:00
|
|
|
|
USB_DISCONNECTED = 200,
|
|
|
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ֹͣ
|
2020-12-10 02:01:22 +00:00
|
|
|
|
USER_STOP = 201,
|
|
|
|
|
//<2F>Զ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
AUTO_FLAT_FINISHED = 202,
|
|
|
|
|
//usb <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
USB_CONNECTED,
|
2022-10-20 02:40:25 +00:00
|
|
|
|
HAVE_PAPER,
|
|
|
|
|
DEVICE_LOCKED,
|
2020-07-11 10:43:17 +00:00
|
|
|
|
} UsbSupported, * PUsbSupported;
|
2020-06-20 03:13:18 +00:00
|
|
|
|
|
2021-05-13 10:13:08 +00:00
|
|
|
|
static map<UsbSupported, string> msgs = {
|
|
|
|
|
{UsbSupported::OPEN_COVER,"ɨ<EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD>ر<EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>!"},
|
|
|
|
|
{UsbSupported::NO_FEED,"<EFBFBD><EFBFBD>ֽ!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD>!"},
|
|
|
|
|
{UsbSupported::FEED_IN_ERROR,"<EFBFBD><EFBFBD>ֽʧ<EFBFBD><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ţ<EFBFBD>"},
|
|
|
|
|
{UsbSupported::PAPER_JAM,"<EFBFBD><EFBFBD>ֽ!"},
|
2022-02-14 02:30:19 +00:00
|
|
|
|
{UsbSupported::DETECT_DOUBLE_FEED,"˫<EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
|
|
|
|
|
{UsbSupported::DETECT_STAPLE,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鶤!"},
|
2021-05-13 10:13:08 +00:00
|
|
|
|
{UsbSupported::PAPER_SKEW,"ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>б!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD>!"},
|
|
|
|
|
{UsbSupported::COUNT_MODE,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ!"},
|
|
|
|
|
{UsbSupported::HARDWARE_ERROR,"Ӳ<EFBFBD><EFBFBD><EFBFBD>쳣!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD>!"},
|
|
|
|
|
{UsbSupported::USB_DISCONNECTED,"USB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣!"},
|
|
|
|
|
{UsbSupported::USER_STOP,"δ<EFBFBD>ҵ<EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>USB<53><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ͨ!"},
|
|
|
|
|
{UsbSupported::AUTO_FLAT_FINISHED,"<EFBFBD>豸<EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>ռ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"},
|
|
|
|
|
{UsbSupported::DOG_EAR,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD>!"},
|
|
|
|
|
{UsbSupported::SIZE_ERROR,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣!"},
|
|
|
|
|
{UsbSupported::AQUIRE_IMAGE_TIMEOUT,"ȡͼ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>"},
|
2021-06-21 11:38:36 +00:00
|
|
|
|
{UsbSupported::LOSE_IMAGE,"<EFBFBD>ϴ<EFBFBD>ͼƬ<EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD>䣡"},
|
2021-07-11 08:19:57 +00:00
|
|
|
|
{UsbSupported::USB_BULK_ERROR,"USB<EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
|
|
|
|
|
{UsbSupported::V4L2_AQULRE_ERROR,"ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡͼʧ<EFBFBD>ܣ<EFBFBD>"},
|
|
|
|
|
{UsbSupported::V4L2_IMAGE_EMPTY,"ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣<EFBFBD><EFBFBD>"},
|
2022-06-29 12:24:24 +00:00
|
|
|
|
#ifdef G200
|
|
|
|
|
{UsbSupported::SLEEPING,"<EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><EFBFBD>"},
|
|
|
|
|
#else
|
|
|
|
|
{UsbSupported::SLEEPING,"<EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><EFBFBD>"},
|
|
|
|
|
#endif // G200
|
2021-07-31 11:12:44 +00:00
|
|
|
|
{UsbSupported::HAVE_DOGEAR,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۽ǣ<EFBFBD>ֹͣɨ<EFBFBD>裡"},
|
2021-12-16 08:21:35 +00:00
|
|
|
|
{UsbSupported::MLTOP_TIMEOUT,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨̧<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD>"},
|
2022-05-24 12:05:47 +00:00
|
|
|
|
{UsbSupported::PAPER_HOLE,"ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пף<EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>ģʽɨ<EFBFBD>裡"},
|
2022-10-20 02:40:25 +00:00
|
|
|
|
{UsbSupported::DEVICE_LOCKED,"<EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
|
2021-05-13 10:13:08 +00:00
|
|
|
|
};
|
2020-06-20 03:13:18 +00:00
|
|
|
|
|
|
|
|
|
enum tagEventIndex
|
|
|
|
|
{
|
|
|
|
|
EVENT_IMAGE,
|
|
|
|
|
EVENT_NUM
|
|
|
|
|
};
|
2020-03-11 01:58:06 +00:00
|
|
|
|
|
2020-06-20 03:13:18 +00:00
|
|
|
|
class CImageApply;
|
|
|
|
|
class IUsb;
|
|
|
|
|
class ImageMatQueue;
|
2020-08-31 07:46:14 +00:00
|
|
|
|
typedef void(*deviceevent_callback)(int eventID, void* userdata);
|
2020-03-11 01:58:06 +00:00
|
|
|
|
|
2020-06-20 03:13:18 +00:00
|
|
|
|
class IScanner
|
|
|
|
|
{
|
|
|
|
|
public:
|
2021-06-21 11:38:36 +00:00
|
|
|
|
IScanner() {
|
2021-07-02 03:29:24 +00:00
|
|
|
|
imgreadednum = imgtransfered = roller_num = lose_image_num = 0;
|
2021-06-21 11:38:36 +00:00
|
|
|
|
}
|
2021-06-30 13:58:13 +00:00
|
|
|
|
virtual ~IScanner()
|
|
|
|
|
{
|
|
|
|
|
}
|
2021-07-19 10:36:34 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="val"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
2021-11-20 03:09:04 +00:00
|
|
|
|
void set_scannum(int val) {
|
|
|
|
|
scannum = val;
|
|
|
|
|
};
|
2021-07-19 10:36:34 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></returns>
|
2021-11-20 03:09:04 +00:00
|
|
|
|
int get_scannum() {
|
|
|
|
|
return scannum;
|
|
|
|
|
};
|
2021-07-02 03:29:24 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡPC<50><43>ȡ<EFBFBD><C8A1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
2021-11-20 03:09:04 +00:00
|
|
|
|
int get_imgnReaded() {
|
|
|
|
|
return imgreadednum;
|
|
|
|
|
};
|
2021-07-02 03:29:24 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡͼ<C8A1><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
2021-11-20 03:09:04 +00:00
|
|
|
|
int get_imgTransfered() {
|
|
|
|
|
return imgtransfered;
|
|
|
|
|
};
|
2021-07-02 03:29:24 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1>ʧͼ<CAA7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
2021-11-20 03:09:04 +00:00
|
|
|
|
int get_lose_image_num() {
|
|
|
|
|
return lose_image_num;
|
|
|
|
|
};
|
2021-07-02 03:29:24 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD>ö<EFBFBD>ʧͼ<CAA7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="value"></param>
|
2021-11-20 03:09:04 +00:00
|
|
|
|
void set_lose_image_num(int value) {
|
|
|
|
|
lose_image_num = value;
|
|
|
|
|
};
|
2021-07-02 03:29:24 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡԭʼͼ<CABC><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>һ
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
int countNReaded()
|
|
|
|
|
{
|
|
|
|
|
return ++imgreadednum;
|
|
|
|
|
};
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20>Ѵ<EFBFBD><D1B4><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>һ
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
int countNTransfered()
|
|
|
|
|
{
|
|
|
|
|
return ++imgtransfered;
|
|
|
|
|
};
|
2021-08-08 09:07:12 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡ<EFBFBD>۽ǻ<DBBD><C7BB>߳ߴ粻<DFB4><E7B2BB><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="aquire"></param>
|
|
|
|
|
/// <param name="updata"></param>
|
|
|
|
|
int geterrorindex() {
|
|
|
|
|
return error_index;
|
|
|
|
|
};
|
2021-07-02 03:29:24 +00:00
|
|
|
|
|
2023-03-13 08:53:10 +00:00
|
|
|
|
|
|
|
|
|
void UpdateScanInfo(CString str)
|
|
|
|
|
{
|
|
|
|
|
if (setindicatortext_str)
|
|
|
|
|
setindicatortext_str(str);
|
|
|
|
|
};
|
|
|
|
|
|
2021-07-02 03:29:24 +00:00
|
|
|
|
void UpdateScanInfo(int aquire, int updata)
|
|
|
|
|
{
|
2023-03-13 08:53:10 +00:00
|
|
|
|
imgreadednum = aquire;
|
2021-07-02 03:29:24 +00:00
|
|
|
|
imgtransfered = updata;
|
|
|
|
|
if (setindicatortext)
|
|
|
|
|
setindicatortext(aquire, updata);
|
|
|
|
|
};
|
|
|
|
|
|
2023-03-13 08:53:10 +00:00
|
|
|
|
void regist_indicatortext_callback(std::function<void(int, int)> indicatortext, std::function<void(CString)> indicatortext_str)
|
2021-07-02 03:29:24 +00:00
|
|
|
|
{
|
2023-03-13 08:53:10 +00:00
|
|
|
|
if (indicatortext)
|
2021-07-02 03:29:24 +00:00
|
|
|
|
setindicatortext = indicatortext;
|
2023-03-13 08:53:10 +00:00
|
|
|
|
if (indicatortext_str)
|
|
|
|
|
setindicatortext_str = indicatortext_str;
|
2021-07-02 03:29:24 +00:00
|
|
|
|
};
|
2022-11-02 10:46:24 +00:00
|
|
|
|
|
2023-03-13 08:53:10 +00:00
|
|
|
|
|
2022-11-02 10:46:24 +00:00
|
|
|
|
void set_token(std::string str)
|
|
|
|
|
{
|
|
|
|
|
m_token = str;
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-05 03:50:19 +00:00
|
|
|
|
std::shared_ptr<IUsb> GetUsb()
|
|
|
|
|
{
|
|
|
|
|
return m_usb;
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-31 07:46:14 +00:00
|
|
|
|
virtual void open(int vid, int pid) = 0;
|
|
|
|
|
virtual void regist_deviceevent_callback(deviceevent_callback callback, void* usrdata = 0) = 0;
|
2020-11-16 10:05:04 +00:00
|
|
|
|
virtual void DogEar_callback(std::function<void(int)> fun)=0;
|
2020-06-20 03:13:18 +00:00
|
|
|
|
virtual int aquire_bmpdata(std::vector<unsigned char>& bmpdata) = 0;
|
|
|
|
|
virtual BOOL IsConnected() = 0;
|
|
|
|
|
virtual std::string GetFWVersion() = 0;
|
|
|
|
|
virtual std::string GetSerialNum() = 0;
|
2022-02-14 02:30:19 +00:00
|
|
|
|
virtual std::string GetMacAdder() = 0;
|
2021-06-21 11:38:36 +00:00
|
|
|
|
virtual std::uint32_t GetMotorFPGA() = 0;
|
|
|
|
|
virtual std::uint32_t GetScanFPGA() = 0;
|
2020-06-20 03:13:18 +00:00
|
|
|
|
virtual bool is_scan() = 0;
|
|
|
|
|
virtual BOOL Get_Scanner_PaperOn() = 0;
|
2021-05-13 10:13:08 +00:00
|
|
|
|
virtual int Get_Roller_num() = 0;
|
2020-06-20 03:13:18 +00:00
|
|
|
|
virtual void config_params(GScanCap& params) = 0;
|
|
|
|
|
virtual void Scanner_StartScan(UINT16 count) = 0;
|
|
|
|
|
virtual void Stop_scan() = 0;
|
2021-06-21 11:38:36 +00:00
|
|
|
|
virtual int notifyscan() = 0;
|
2020-07-11 10:43:17 +00:00
|
|
|
|
virtual void ResetScanner() = 0;
|
2020-06-20 03:13:18 +00:00
|
|
|
|
virtual bool Get_IsImageQueueEmpty() = 0;
|
|
|
|
|
virtual void reset() = 0;
|
|
|
|
|
virtual void clear_hwerror() = 0;
|
|
|
|
|
virtual UINT32 get_ErrorCode() = 0;
|
|
|
|
|
virtual void Set_ErrorCode(UINT32 value) = 0;
|
|
|
|
|
virtual int get_scanned_num() = 0;
|
2021-02-03 10:21:45 +00:00
|
|
|
|
virtual void set_sleep_time(int mode) = 0;
|
2021-04-06 01:31:21 +00:00
|
|
|
|
virtual bool set_scannercode(std::string str) = 0;
|
|
|
|
|
virtual std::string get_scannercode() = 0;
|
2020-06-20 03:13:18 +00:00
|
|
|
|
void DoEvents() {
|
|
|
|
|
MSG msg;
|
|
|
|
|
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
|
|
|
|
|
DispatchMessage(&msg);
|
|
|
|
|
TranslateMessage(&msg);
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-11-15 07:11:30 +00:00
|
|
|
|
|
2020-06-20 03:13:18 +00:00
|
|
|
|
protected:
|
2021-07-02 03:29:24 +00:00
|
|
|
|
atomic_uint32_t Error_Code;
|
|
|
|
|
atomic_int devState;
|
2020-06-20 03:13:18 +00:00
|
|
|
|
std::shared_ptr<ImageMatQueue> m_pImages;
|
2023-05-05 03:50:19 +00:00
|
|
|
|
std::shared_ptr<IUsb> m_usb;
|
2020-06-20 03:13:18 +00:00
|
|
|
|
std::mutex m_Locker;
|
|
|
|
|
std::mutex m_imgLocker;
|
|
|
|
|
std::string fwVersion;
|
|
|
|
|
std::string SerialNum;
|
2021-04-06 01:31:21 +00:00
|
|
|
|
std::string scannercode;
|
2022-11-02 10:46:24 +00:00
|
|
|
|
std::string m_token;
|
2021-06-21 11:38:36 +00:00
|
|
|
|
std::uint32_t MotorFpga;
|
|
|
|
|
std::uint32_t ScanFpga;
|
2021-05-13 10:13:08 +00:00
|
|
|
|
std::function<void(int, int)> setindicatortext;
|
2023-03-13 08:53:10 +00:00
|
|
|
|
std::function<void(CString)> setindicatortext_str;
|
2021-07-02 03:29:24 +00:00
|
|
|
|
int imgreadednum;
|
|
|
|
|
int imgtransfered;
|
2021-05-13 10:13:08 +00:00
|
|
|
|
int roller_num;
|
2021-07-19 10:36:34 +00:00
|
|
|
|
int scannum;
|
2021-05-13 10:13:08 +00:00
|
|
|
|
int lose_image_num;
|
2021-08-08 09:07:12 +00:00
|
|
|
|
int error_index;
|
2021-06-21 11:38:36 +00:00
|
|
|
|
|
2020-06-20 03:13:18 +00:00
|
|
|
|
};
|