79 lines
1.5 KiB
C
79 lines
1.5 KiB
C
|
#pragma once
|
||
|
#include "UsbScanEx.h"
|
||
|
#include <memory>
|
||
|
#include <vector>
|
||
|
#include <string>
|
||
|
#include <queue>
|
||
|
#include <Windows.h>
|
||
|
#include "MutexEx.h"
|
||
|
#include "opencv2/core/core.hpp"
|
||
|
#include <opencv2\highgui\highgui.hpp>
|
||
|
#include "jpeglib.h"
|
||
|
#include <time.h>
|
||
|
#include <boost\thread\mutex.hpp>
|
||
|
#include <boost\thread.hpp>
|
||
|
#include "ImageMatQueue.h"
|
||
|
#include "PublicFunc.h"
|
||
|
|
||
|
using namespace cv;
|
||
|
|
||
|
enum tagDevState
|
||
|
{
|
||
|
DEV_STOP = -1,
|
||
|
DEV_ISRUNNING,
|
||
|
DEV_WRONG
|
||
|
};
|
||
|
|
||
|
typedef enum tagDevState DevState, PDevState;
|
||
|
|
||
|
enum tagEventIndex
|
||
|
{
|
||
|
EVENT_IMAGE,
|
||
|
EVENT_NUM
|
||
|
};
|
||
|
|
||
|
class GScn_Drv
|
||
|
{
|
||
|
public:
|
||
|
GScn_Drv();
|
||
|
~GScn_Drv();
|
||
|
|
||
|
void open(int vid, int pid);
|
||
|
int aquire_image(cv::Mat& image);
|
||
|
BOOL IsConnected();
|
||
|
std::string GetFWVersion();
|
||
|
std::string GetSerialNum();
|
||
|
bool is_scan();
|
||
|
USBCB Get_Scanner_Status();
|
||
|
BOOL Get_Scanner_PaperOn();
|
||
|
void Config_Scanner(PUSBCB pUSBCB);
|
||
|
void Scanner_StartScan(UINT16 count);
|
||
|
void Stop_scan();
|
||
|
void ResetScanner();
|
||
|
bool Get_IsImageQueueEmpty();
|
||
|
void reset();
|
||
|
void run();
|
||
|
void set_decompress_pix_type(int pixtype);
|
||
|
void SetIsDuplex(BOOL value);
|
||
|
void setlist(std::vector<std::shared_ptr<CImageApply> >list);
|
||
|
UINT32 get_ErrorCode();
|
||
|
void Set_ErrorCode(UINT32 value);
|
||
|
|
||
|
private:
|
||
|
cv::Mat popMat();
|
||
|
void pushMat(JpegBuffer& data);
|
||
|
cv::Mat Get_Img_Data(int buffersize);
|
||
|
DWORD usbmain();
|
||
|
void Pop_Image();
|
||
|
|
||
|
private:
|
||
|
std::shared_ptr<IUsb> m_usb;
|
||
|
ImageMatQueue m_pImages;
|
||
|
bool m_bRun;
|
||
|
boost::mutex m_Locker;
|
||
|
boost::mutex m_imgLocker;
|
||
|
int pixType;
|
||
|
volatile UINT32 Error_Code;
|
||
|
volatile int devState;
|
||
|
boost::thread m_threadUsb;
|
||
|
};
|