85 lines
2.0 KiB
C
85 lines
2.0 KiB
C
|
#pragma once
|
||
|
#include <memory>
|
||
|
#include <thread>
|
||
|
#include "BlockingQueue.h"
|
||
|
#include "fsmstate.h"
|
||
|
#include <threadex.h>
|
||
|
#include "commondef.h"
|
||
|
#include "wakeup.hpp"
|
||
|
|
||
|
enum MotorVersion : uint{
|
||
|
Motor_old,
|
||
|
Motor_mltop,
|
||
|
Motor_paperout,
|
||
|
};
|
||
|
|
||
|
class MotorBoard;
|
||
|
class ICapturer;
|
||
|
class IImageHandler;
|
||
|
class Gpio;
|
||
|
|
||
|
class Scanner
|
||
|
{
|
||
|
public:
|
||
|
Scanner(std::shared_ptr<ICapturer> capturer, std::shared_ptr<MotorBoard> mb, std::shared_ptr<WakeUp> wake);
|
||
|
~Scanner();
|
||
|
void try_scan(const std::string encodehexstr);
|
||
|
void configparam(HGScanConfig config);
|
||
|
void start_scan();
|
||
|
void stop_scan();
|
||
|
|
||
|
int count();
|
||
|
int mode();
|
||
|
void put(ScanEvent evt) { sysEvent.Put(evt); }
|
||
|
bool is_runscan();
|
||
|
void set_imagehandler(std::shared_ptr<IImageHandler> handler = nullptr);
|
||
|
void clear_error();
|
||
|
bool paper_ready();
|
||
|
bool get_keeplastpaper();
|
||
|
void set_motorboardcallback(MotorBoardGlue glue);
|
||
|
void set_imgprocparams(HGImgProcParms parmas);
|
||
|
void test_autocorrect(int colormode);
|
||
|
void test_cap(HGScanConfig config);
|
||
|
bool set_hgimgconfig(GScanCap config);
|
||
|
void add_scansever(HGIntInfo event);
|
||
|
void set_sleeptime(int val);
|
||
|
int get_sleeptime();
|
||
|
void resettime();
|
||
|
int get_sleepstatus();
|
||
|
void set_sleepstatus(bool off);
|
||
|
int getimageprocedone();
|
||
|
void set_paprent(void* parent);
|
||
|
bool getpaperon();
|
||
|
int getmbstatus();
|
||
|
std::string getmbversion();
|
||
|
private:
|
||
|
void runMessageLoop();
|
||
|
void runScan();
|
||
|
void startcapimage();
|
||
|
void scanold();
|
||
|
void scanpaperout();
|
||
|
//std::shared_ptr<Gpio> testGpio;
|
||
|
std::thread threadRunMessageLoop;
|
||
|
volatile bool bMsgLoop = true;
|
||
|
BlockingQueue<ScanEvent> sysEvent;
|
||
|
|
||
|
std::shared_ptr<MotorBoard> mb;
|
||
|
std::shared_ptr<ICapturer> capturer;
|
||
|
std::shared_ptr<WakeUp> wake;
|
||
|
|
||
|
std::shared_ptr<ThreadEx> fu_runscan;
|
||
|
std::shared_ptr<IImageHandler> imagehandler;
|
||
|
std::function<void(int)> m_mtcallback;
|
||
|
volatile int done_scan = 0;
|
||
|
volatile bool is_ml_top = 0;
|
||
|
volatile bool handstop = 0;
|
||
|
int scancount=0;
|
||
|
volatile unsigned int mb_error_code;
|
||
|
MotorVersion m_mbver;
|
||
|
HGScanConfig m_config;
|
||
|
GScanCap m_cap;
|
||
|
ScannerNativeParam scannerinfo;
|
||
|
void* m_parent;
|
||
|
std::string mbversion;
|
||
|
};
|