From 245220d3d1de57b493ccd8c00785110231cd682d Mon Sep 17 00:00:00 2001 From: 13038267101 Date: Sat, 31 Dec 2022 12:08:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=95=B8=E5=8F=98=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/hg_scanner.cpp | 9 ++++++++- hgdriver/hgdev/hg_scanner.h | 3 ++- hgdriver/hgdev/hg_scanner_300.cpp | 17 +++++++++++++++++ hgdriver/hgdev/hg_scanner_300.h | 3 ++- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index 46da302..007b4bb 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -948,7 +948,10 @@ void hg_scanner::thread_handle_image_process(void) catch (const std::exception& e) { if (is_dpi_color_check) + { + is_dpi_color_check = false; stop_fatal_ = SCANNER_ERR_DEVICE_DISTORTION; + } else stop_fatal_ = SCANNER_ERR_INSUFFICIENT_MEMORY; VLOG_MINI_1(LOG_LEVEL_ALL, "is opencv Fatal: %s\n", e.what()); @@ -3502,6 +3505,10 @@ int hg_scanner::set_auto_flat(void) { return SCANNER_ERR_DEVICE_NOT_SUPPORT; } +int hg_scanner::set_serial_num(string str) +{ + return SCANNER_ERR_DEVICE_NOT_SUPPORT; +} ////////////////////////////////////////////////////////////////////////////////////////////////////// int hg_scanner::set_leaflet_scan(void) { @@ -3606,7 +3613,7 @@ void hg_scanner::image_process(std::shared_ptr& buffer) CISTestImageProcess::CISTestResult res; err = hg_imgproc::cis_test_image(ImagePrc_pHandle_, res); save_dpi_color_check_val = res.scaleXY1; - + is_dpi_color_check = false; set_dpi_color_check_val(); } else if (param.cis_image) diff --git a/hgdriver/hgdev/hg_scanner.h b/hgdriver/hgdev/hg_scanner.h index 4f2caac..bbc98e6 100644 --- a/hgdriver/hgdev/hg_scanner.h +++ b/hgdriver/hgdev/hg_scanner.h @@ -474,9 +474,10 @@ public: virtual int get_scan_mode(bool& type) ; //获取设备是否计数模式 /*/ type:false计数模式 true非计数模式 virtual int set_speed_mode(int data) = 0; //设置速度模式 /*/ 设备不同值不同,详情见子类注释 virtual int get_speed_mode(int &data) = 0; //获取速度模式 /*/ 设备不同值不同,详情见子类注释 - virtual int set_dpi_color_check(bool type); //获取畸变矫正 + virtual int set_dpi_color_check(bool type); //获取畸变矫正 /*/ 基类处理 virtual int set_dpi_color_check_val(void) = 0; //设置畸变矫正值 virtual int set_auto_flat(void) = 0; //设置自动平场校正 + virtual int set_serial_num(string str); //设置序列号 }; #ifdef UOS diff --git a/hgdriver/hgdev/hg_scanner_300.cpp b/hgdriver/hgdev/hg_scanner_300.cpp index 049e77d..397c36f 100644 --- a/hgdriver/hgdev/hg_scanner_300.cpp +++ b/hgdriver/hgdev/hg_scanner_300.cpp @@ -870,6 +870,23 @@ int hg_scanner_300::set_auto_flat(void) VLOG_MINI_1(LOG_LEVEL_WARNING, "set_auto_flat ret: %s\n", hg_scanner_err_name(ret)); return ret; } +int hg_scanner_300::set_serial_num(string str) +{ + std::lock_guard lock(io_lock_); + + USBCB usbcb = { setting3288dsp::SEND_SERIAL,0,14 }; + int len = sizeof(usbcb), + ret = SCANNER_ERR_OK; + ret = io_->write_bulk(&usbcb, &len); + if (ret == SCANNER_ERR_OK) + { + len = str.size(); + + ret = io_->write_bulk(&str, &len); + } + return ret; + +} int hg_scanner_300::set_notify_sleep() { return SCANNER_ERR_DEVICE_NOT_SUPPORT; diff --git a/hgdriver/hgdev/hg_scanner_300.h b/hgdriver/hgdev/hg_scanner_300.h index d15b8aa..d057215 100644 --- a/hgdriver/hgdev/hg_scanner_300.h +++ b/hgdriver/hgdev/hg_scanner_300.h @@ -100,5 +100,6 @@ public: virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70 virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70 virtual int set_dpi_color_check_val(void) override; //设置畸变矫正 - virtual int set_auto_flat(void)override; //设置自动平场校正 + virtual int set_auto_flat(void)override; //设置自动平场校正 + virtual int set_serial_num(string str); //设置序列号 };