tx-gxx-linux/device/gxx-linux/testscanner/main.cpp

94 lines
2.8 KiB
C++
Raw Normal View History

2023-04-08 00:56:20 +00:00
#include <iostream>
#include <memory>
#include "scanner.h"
#include "scannerregs.h"
#include "usbservice.h"
#include "motorboard.h"
2023-05-02 01:50:55 +00:00
#include "ICapturer.h"
2023-04-08 00:56:20 +00:00
#include "Capturer.h"
2023-05-02 01:50:55 +00:00
#include "MonoCapturer.h"
2023-04-08 00:56:20 +00:00
#include "imageusbhandler.h"
2023-05-02 01:50:55 +00:00
#include "CImageMerge.h"
2023-04-08 00:56:20 +00:00
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;
2023-05-02 01:50:55 +00:00
cout << "(5) testcorrect"<<endl;
2023-04-08 00:56:20 +00:00
cout << "(0) Quit. " << endl << endl;
cout << ": ";
cin >> choice;
return choice;
}
int main()
{
2023-05-02 01:50:55 +00:00
// 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;
2023-04-08 00:56:20 +00:00
bool exit = false;
2023-05-02 01:50:55 +00:00
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));
2023-04-08 00:56:20 +00:00
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:
2023-05-02 01:50:55 +00:00
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.enable_sizecheck = 0;
cfg.g200params.enabledsp_cache = 0;
cfg.g200params.sizeerror_errorratio = 0;
//};
scanner->configparam(cfg);
2023-04-08 00:56:20 +00:00
scanner->start_scan();
2023-05-02 01:50:55 +00:00
while(1)
std::this_thread::sleep_for(chrono::milliseconds(1));
2023-04-08 00:56:20 +00:00
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;
2023-05-02 01:50:55 +00:00
case 5 :
scanner->test_autocorrect(0);
2023-04-08 00:56:20 +00:00
default:
cout << "nop, Please select again! " << endl;
break;
}
/* code */
if (exit)
break;
}
cout << "exit menu" << endl;
return 0;
}