mirror of http://192.168.1.51:8099/lmh188/twain3
77 lines
2.2 KiB
C++
77 lines
2.2 KiB
C++
#pragma once
|
|
#include <memory>
|
|
#include <future>
|
|
#include <mutex>
|
|
#include <list>
|
|
#include <functional>
|
|
#include "usb/IUsb.h"
|
|
#include "GScan.h"
|
|
#include "ThreadPool.h"
|
|
class IUsb;
|
|
|
|
|
|
class Scanner :public IGScan
|
|
{
|
|
public:
|
|
Scanner();
|
|
virtual ~Scanner();
|
|
|
|
void start();
|
|
void stop();
|
|
bool is_runing();
|
|
int mode();
|
|
int count();
|
|
void abort_dev_tx();
|
|
|
|
virtual void open(int vid, int pid) override;
|
|
virtual int open(int vid) override;
|
|
virtual bool close() override;//add 2020.3.11
|
|
virtual bool is_open() override;//add 2020.3.11
|
|
virtual void setusbreport_callback(usbreport_callback callback = 0, void* usrdata = 0) override;
|
|
virtual int get_image_front_info(ImageInfo* info) override;
|
|
virtual int aquire_image(cv::Mat& mat, int& bppinfo) override;
|
|
virtual void clear_hwerror() override;
|
|
virtual bool IsConnected() override;
|
|
virtual std::string GetFWVersion(int mode) override;
|
|
virtual std::string GetSerialNum(int mode) override;
|
|
virtual bool is_scan() override ;
|
|
virtual bool Get_Scanner_PaperOn() override;
|
|
virtual void config_params(GScanCap& params, int mode) override;
|
|
virtual void Scanner_StartScan(UINT32 count, int mode) override;
|
|
virtual void Stop_scan() override;
|
|
virtual void ResetScanner() override;
|
|
virtual bool Get_IsImageQueueEmpty() override;
|
|
virtual void reset() override;
|
|
|
|
virtual void setdecodepixtype(int twpixtype) override;
|
|
virtual UINT32 get_ErrorCode() override;
|
|
virtual void Set_ErrorCode(UINT32 value) override;
|
|
virtual int get_scanned_num() override;
|
|
|
|
virtual int get_roller_num() override;
|
|
virtual void clr_roller_num() override;
|
|
virtual int get_sleep_time() override;
|
|
virtual void set_sleep_time(int time) override;
|
|
virtual bool clr_hardware_cache() override;
|
|
|
|
private:
|
|
void int_run();
|
|
bool is_rx();
|
|
bool rx_cmd();
|
|
bool is_dev_tx();
|
|
|
|
void im_rx();
|
|
int read_data(void* data, int length, int timeout);
|
|
void pop_dev_im();
|
|
int front_datasize();
|
|
int im_dev_count();
|
|
|
|
std::shared_ptr<IUsb> usb;
|
|
std::future<void> fu_int;
|
|
volatile bool b_fu_int;
|
|
std::future<void> fu_rx;
|
|
volatile bool b_fu_rx;
|
|
ThreadPool thpool;
|
|
ThreadPool thpoolRx;
|
|
std::function<int(unsigned char* , int)> image_call;
|
|
}; |