rk3399_arm_lvds/testscanner/main.cpp

94 lines
2.8 KiB
C++
Raw Normal View History

2024-03-05 03:46:18 +00:00
#include <iostream>
#include <memory>
#include "scanner.h"
#include "scannerregs.h"
#include "usbservice.h"
#include "motorboard.h"
#include "ICapturer.h"
#include "Capturer.h"
#include "MonoCapturer.h"
#include "imageusbhandler.h"
#include "CImageMerge.h"
using namespace std;
int menu() {
int choice;
cout << " **** Menu **** " << endl << endl;
cout << "(1) start." << endl;
cout << "(2) stop. " << endl;
cout << "(3) count. " << endl;
cout << "(4) mode. " << endl;
cout << "(5) testcorrect"<<endl;
cout << "(0) Quit. " << endl << endl;
cout << ": ";
cin >> choice;
return choice;
}
int main()
{
// auto img = cv::imread("/home/linaro/anlogic_gxx_linux/0_org.jpg",cv::IMREAD_GRAYSCALE);
// auto retmat = CImageMerge().MergeImage(true,img,7776,150,0x90001);
// img.release();
// cv::imwrite("/home/linaro/anlogic_gxx_linux/0_org_t.jpg",retmat);
// return 1;
bool exit = false;
std::shared_ptr<MotorBoard> motorboard(new MotorBoard(nullptr));
std::shared_ptr<ICapturer> capturer(new MonoCapturer());
std::shared_ptr<IScanner> scanner(new Scanner(capturer, motorboard,nullptr));
std::shared_ptr<IRegsAccess> scannerRegs(new ScannerRegAccess(scanner));
scanner->set_imagehandler(std::shared_ptr<IImageHandler>(new ImageUsbHandler()));
int option;
for (;;)
{
option = menu();
switch (option)
{
case 0:
exit = true;
break;
case 1:
HGScanConfig cfg;//={
cfg.g200params.paper = 16;
cfg.g200params.color=0;
cfg.g200params.dpi = 0x02;
cfg.g200params.double_feed_enbale=0;
cfg.g200params.stable_enbale = 0;
cfg.g200params.screw_detect_enable = 0;
cfg.g200params.screw_detect_level = 0;
cfg.g200params.iscorrect_mode = 0;
cfg.g200params.en_autosize = 0;
cfg.g200params.pc_correct=0;
cfg.g200params.double_out_en = 0;
cfg.g200params.enabledsp_cache = 0;
cfg.g200params.sizeerror_errorratio = 0;
//};
scanner->configparam(cfg);
scanner->start_scan();
while(1)
std::this_thread::sleep_for(chrono::milliseconds(1));
break;
case 2:
scanner->stop_scan();
break;
case 3:
std::cout << "scan count " << scanner->count() << std::endl;
break;
case 4:
std::cout << "os mode" << scanner->mode() << std::endl;
case 5 :
scanner->test_autocorrect(0);
default:
cout << "nop, Please select again! " << endl;
break;
}
/* code */
if (exit)
break;
}
cout << "exit menu" << endl;
return 0;
}