huago-corrcet_tools/HuaGoCorrect/gscn_drv.h

106 lines
2.7 KiB
C
Raw Normal View History

2020-08-31 08:08:50 +00:00
#pragma once
#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"
#include "IScanner.h"
2020-08-31 08:08:50 +00:00
using namespace cv;
class GScn_Drv :public IScanner
2020-08-31 08:08:50 +00:00
{
public:
GScn_Drv();
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);
2021-08-17 01:07:55 +00:00
virtual std::string GetKernelVersion();
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
virtual int GetScanNum();
2020-08-31 08:08:50 +00:00
virtual void ClrRollerNum();
2020-08-31 08:08:50 +00:00
virtual void ClrScanNum();
2020-08-31 08:08:50 +00:00
virtual void SendFlatData(CorrectParam param, int index);
2020-08-31 08:08:50 +00:00
virtual CaptureParams GetFlatData();
2020-08-31 08:08:50 +00:00
virtual void StartFlat(bool iscolor);
2020-08-31 08:08:50 +00:00
virtual void DevStateChange();
2020-08-31 08:08:50 +00:00
virtual int getMatSum();
2020-08-31 08:08:50 +00:00
virtual void close();
2020-08-31 08:08:50 +00:00
virtual void GetExpose(int& Aside, int& Bside);
virtual void SetExpose(int aside, int bside);
2020-08-31 08:08:50 +00:00
virtual void GetSptime(int type, int& time);
virtual void SetSptime(int type, int time);
2020-08-31 08:08:50 +00:00
virtual void GetSleepTime(int& sleeptime);
virtual void SetSleepTime(int sleeptime);
2020-08-31 08:08:50 +00:00
2021-08-17 01:07:55 +00:00
virtual void GetFlatMaxBright(bool iscolor, unsigned int& val);
virtual void SetFlatMaxBright(bool iscolor, unsigned int val);
virtual void SetFlatCallback(std::function<void(std::string)> func);
virtual void GetSpeedMode(int& speedmode, bool get);
2020-08-31 08:08:50 +00:00
private:
volatile int devState;
volatile bool m_bRun;
2020-08-31 08:08:50 +00:00
std::mutex m_Locker;
std::mutex m_imgLocker;
std::thread m_threadUsb;
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;
bool m_isScanning;
2020-08-31 08:08:50 +00:00
private:
std::string popMat(int num);
2020-08-31 08:08:50 +00:00
void pushMat(JpegBuffer& data);
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();
HGScanConfig m_config;
2021-08-17 01:07:55 +00:00
std::function<void(std::string)> m_flatcallback;
2020-08-31 08:08:50 +00:00
};