zynq_7010/zynq_7010_code/UsbScanner.h

62 lines
2.1 KiB
C++

#pragma once
#include "IScanner.h"
#include "Scanner.h"
#include <memory>
#include "FsmState.h"
#include "usbdevice.h"
using namespace std;
class UsbScanner : public IScanner
{
public:
UsbScanner();
virtual ~UsbScanner();
virtual void StartScan(int scancount) override;
virtual void StopScan() override;
virtual void ConfigScanParam(HG_ScanConfiguration config) override;
virtual bool FeederLoaded() override;
virtual std::string GetSerial() override;
virtual void SetSerial(std::string serial) override;
virtual std::string GetFWVersion() override;
virtual void SetFwVersion(std::string fwversion) override;
virtual int GetRollerNum() override;
virtual void ClearRollerNum() override;
virtual void InitScanner() override;
virtual void ClearImages() override;
virtual HG_JpegCompressInfo GetImage() override;
virtual HG_Msg GetEvent() override;
virtual void ClearErrorEvents() override;
virtual void ClearHWError() override;
virtual bool GetImagequeueEmpty() override;
virtual bool GetEventQueueEmpty() override;
virtual HG_JpegCompressInfo GetFrontImage() override;
virtual HG_Msg GetEventFront() override;
virtual void CreatCorrectData(int correctmode) override;
virtual bool IsScanning() override;
virtual void SetFlatParam(int type,int* value) override;
virtual CaptureParams GetCaptureParams() override;
virtual void UpdateScanInfo(int type,void* data) override;
virtual ScannerScanInfo GetScanInfo() override;
virtual void SetLEDStatus(LedStatus status) override;
virtual void close_v4l2()override;
std::string GetSysInfo();
int read_bulk(void *pdata, int length,int time = 1000);
int write_bulk(void *pdata, int length);
bool is_connect();
private:
void mount_usb_device();
private:
map<int, sp_COLOR_or_GRAY >::iterator iter;
std::shared_ptr<Scanner> m_hgScanner;
std::shared_ptr<UsbDevice> m_usb;
bool m_startscan;
volatile int imageremain;
volatile int eventsramain;
std::condition_variable t_waitconnect;
};