2020-08-31 08:08:50 +00:00
|
|
|
#pragma once
|
2021-07-31 03:12:53 +00:00
|
|
|
#include "IUsb.h"
|
2020-08-31 08:08:50 +00:00
|
|
|
#include <memory>
|
|
|
|
#include <vector>
|
|
|
|
#include <string>
|
|
|
|
#include <Windows.h>
|
|
|
|
#include "opencv2/core/core.hpp"
|
|
|
|
#include <thread>
|
|
|
|
#include <mutex>
|
|
|
|
#include "ImageMatQueue.h"
|
|
|
|
#include <map>
|
|
|
|
#include "PublicFunc.h"
|
2021-07-31 03:12:53 +00:00
|
|
|
#include "IScanner.h"
|
2020-08-31 08:08:50 +00:00
|
|
|
|
|
|
|
using namespace cv;
|
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
class GScn_Drv :public IScanner
|
2020-08-31 08:08:50 +00:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
GScn_Drv();
|
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual ~GScn_Drv();
|
|
|
|
virtual void open(int vid, int pid, int index);
|
|
|
|
virtual int aquire_image(std::string& image, int num);
|
|
|
|
virtual bool IsConnected();
|
|
|
|
virtual std::string GetFWVersion();
|
|
|
|
virtual void SetFWVersion();
|
|
|
|
virtual std::string GetSerialNum();
|
|
|
|
virtual void SetSerialNum(std::string serial);
|
|
|
|
virtual void SetRatio(int tyepe, int ration);
|
|
|
|
virtual void GetRatio(int type, int& ratio);
|
|
|
|
virtual void Reboot();
|
|
|
|
virtual void PowerOff() {};
|
|
|
|
virtual bool is_scan();
|
|
|
|
virtual bool Get_Scanner_PaperOn();
|
|
|
|
virtual void Config_Scanner(PUSBCB pUSBCB);
|
|
|
|
virtual void Config_Scanner(HGScanConfig config);
|
|
|
|
virtual void Scanner_StartScan(UINT16 count);
|
|
|
|
virtual void Stop_scan();
|
|
|
|
virtual void ResetScanner();
|
|
|
|
virtual bool Get_IsImageQueueEmpty();
|
|
|
|
virtual void reset();
|
|
|
|
virtual void run();
|
|
|
|
virtual void ActiveteUSB();
|
|
|
|
virtual bool Updata(std::string filename, std::function<void(long, long)> func);
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual int GetScanNum();
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void ClrRollerNum();
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void ClrScanNum();
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void SendFlatData(CorrectParam param, int index);
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual CaptureParams GetFlatData();
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void StartFlat(bool iscolor);
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void DevStateChange();
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual int getMatSum();
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void close();
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void GetExpose(int& Aside, int& Bside);
|
|
|
|
virtual void SetExpose(int aside, int bside);
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void GetSptime(int type, int& time);
|
|
|
|
virtual void SetSptime(int type, int time);
|
2020-08-31 08:08:50 +00:00
|
|
|
|
2021-07-31 03:12:53 +00:00
|
|
|
virtual void GetSleepTime(int& sleeptime);
|
|
|
|
virtual void SetSleepTime(int sleeptime);
|
2020-08-31 08:08:50 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
volatile int devState;
|
2021-07-31 03:12:53 +00:00
|
|
|
volatile bool m_bRun;
|
2020-08-31 08:08:50 +00:00
|
|
|
|
|
|
|
std::mutex m_Locker;
|
|
|
|
std::mutex m_imgLocker;
|
|
|
|
std::thread m_threadUsb;
|
2021-07-31 03:12:53 +00:00
|
|
|
std::map<int, string> ntcMsg;
|
|
|
|
std::map<string, int> devType;
|
2020-08-31 08:08:50 +00:00
|
|
|
std::vector<string> vcSerials;
|
|
|
|
int selectDeviceIndex;
|
|
|
|
int m_scannerType;
|
2021-07-31 03:12:53 +00:00
|
|
|
bool m_isScanning;
|
2020-08-31 08:08:50 +00:00
|
|
|
|
|
|
|
private:
|
2021-07-31 03:12:53 +00:00
|
|
|
std::string popMat(int num);
|
2020-08-31 08:08:50 +00:00
|
|
|
void pushMat(JpegBuffer& data);
|
2021-07-31 03:12:53 +00:00
|
|
|
USBCB Get_Scanner_Status();
|
2020-08-31 08:08:50 +00:00
|
|
|
void InitMSGMap();
|
|
|
|
void InitScannerDiviceMap();
|
|
|
|
cv::Mat Get_Img_Data(int buffersize);
|
|
|
|
DWORD usbmain();
|
|
|
|
void Pop_Image();
|
2021-07-31 03:12:53 +00:00
|
|
|
HGScanConfig m_config;
|
2020-08-31 08:08:50 +00:00
|
|
|
};
|