From b0274c4b31a98a5688ccc02edb0be642583c4dfc Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Sat, 9 Dec 2023 17:43:10 +0800 Subject: [PATCH] =?UTF-8?q?fix=20BUG-843:=20=E8=B6=85=E6=97=B6=E5=B0=B1?= =?UTF-8?q?=E4=BC=91=E7=9C=A0=E4=B8=80=E4=BC=9A=E5=84=BF=EF=BC=8C=E7=BB=99?= =?UTF-8?q?=E5=88=AB=E7=9A=84=E7=BA=BF=E7=A8=8B=E4=B8=80=E7=82=B9=E8=AE=BF?= =?UTF-8?q?=E9=97=AEUSB=E7=9A=84=E6=9C=BA=E4=BC=9A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/hg_scanner_239.cpp | 47 ++++++++++++++++--------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 034d086..2e5998b 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -109,7 +109,7 @@ namespace settings {200.0f, 1}, {240.0f, 1}, {300.0f, 0}, - {600.0f, 1} //临时版本发1 原来发2 + {600.0f, 1} //临时版本? 原来? }; bool is_equal(float l, float r) { @@ -331,7 +331,7 @@ int hg_scanner_239::set_auto_flat(int data) } if ((fw[5] == 'A' && atoi(fw.substr(6, 4).c_str()) <= 9999)) { - data = data == 1 ? 1 : 0; //暂时没有用。 + data = data == 1 ? 1 : 0; //暂时没有用? } if (!wait_usb_.is_waiting()) { @@ -569,7 +569,7 @@ void hg_scanner_239::init_version(void) { firmware_sup_wait_paper_ = year_date.compare("3B0629") >= 0 ? true : false; firmware_sup_log_export_ = true; - firmware_sup_pick_strength_ = false; //不支持 + firmware_sup_pick_strength_ = false; //不支? firmware_sup_wake_device_ = year_date.compare("3C0518") >= 0 ? true : false; firmware_sup_color_corr_ = year.compare("3C") >= 0 ? true : false; firmware_sup_double_img = year_date.compare("3C1021") >= 0 ? true : false; @@ -601,7 +601,7 @@ int hg_scanner_239::writedown_device_configuration(bool type, setting_hardware: int ret = SCANNER_ERR_OK; if (!type) return ret; - setting_hardware::HGSCANCONF_3399 p = dev_conf_; //不得改变外部的值 + setting_hardware::HGSCANCONF_3399 p = dev_conf_; //不得改变外部的? p.params_3399.is_autopaper = is_auto_scan(); if (!dev_conf) dev_conf = &p; @@ -622,7 +622,7 @@ int hg_scanner_239::writedown_device_configuration(bool type, setting_hardware: dev_conf->params_3399.is_fixedpaper = false; dev_conf->params_3399.en_autosize = true; } - if (!firmware_sup_auto_speed_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)//3399 ,在3C之前的版本 匹配原始尺寸设置 12 + if (!firmware_sup_auto_speed_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)//3399 ,?C之前的版?匹配原始尺寸设置 12 { dev_conf->params_3399.paper = 12; } @@ -677,9 +677,9 @@ int hg_scanner_239::writedown_image_configuration(void) ret = write_register(setting3399::SR_CONFIF_IMGPROCPARAM, sizeof(SCANCONF)); ret = io_->write_bulk(&ic, &len); - //这个地方休眠是为了当初某个型号设备下面在初始化某个协议时比较耗时,所以加上。 - //2023/11/30 普世需要能够较为流程点击扫描到出第一张图,所以这个地方进行屏蔽,如果某天有哪台设备不出图,你可以看下这里,对版本进行判断加上这个延时的操作 - // 注意debug 可能会调试不出来,因为要加载debug信息,所以发送信息就会慢点 + //这个地方休眠是为了当初某个型号设备下面在初始化某个协议时比较耗时,所以加上? + //2023/11/30 普世需要能够较为流程点击扫描到出第一张图,所以这个地方进行屏蔽,如果某天有哪台设备不出图,你可以看下这里,对版本进行判断加上这个延时的操? + // 注意debug 可能会调试不出来,因为要加载debug信息,所以发送信息就会慢? //this_thread::sleep_for(chrono::milliseconds(500)); //io_->set_timeout(2000);//必要延时 } @@ -927,7 +927,7 @@ int hg_scanner_239::on_resolution_changed(int& dpi) else dev_conf_.params_3399.dpi = dpi >= 500 ? 3 : (dpi < 500 && dpi> 299) ? 2 : 1; - //dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认发1无需改变 + //dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认?无需改变 int ret = writedown_device_configuration(); return ret; } @@ -985,7 +985,7 @@ int hg_scanner_239::on_skew_check_changed(bool& check) int hg_scanner_239::on_skew_check_level_changed(int& check) { int ret = SCANNER_ERR_OK, - val = check - 1,//涓婇潰璁剧疆鐨勬槸1 - 5 锛屾帴鍙楄寖鍥村€间负0 - 4锛岄粯璁? + val = check - 1,//涓婇潰璁剧疆鐨勬? - 5 锛屾帴鍙楄寖鍥村€间? - 4锛岄粯璁? old = dev_conf_.params_3399.screw_detect_level; setting_hardware::HGSCANCONF_3399 cf; @@ -1353,11 +1353,11 @@ void hg_scanner_239::thread_get_dves_image(void) while (run_)//&& !user_cancel_ { size = sizeof(buf); + memset(buf, 0, size); { std::lock_guard lock(io_lock_); - memset(buf, 0, size); - io_->set_timeout(500); //2023 11 30之前一直使用1000ms ,但是为了能够快速响应下次的状态信息返回这里设置为500ms + io_->set_timeout(500); //2023 11 30之前一直使?000ms ,但是为了能够快速响应下次的状态信息返回这里设置为500ms ret = io_->read_interrupt(buf, &size); } @@ -1366,7 +1366,7 @@ void hg_scanner_239::thread_get_dves_image(void) if (sw.elapsed_s() > 120 && !is_auto_scan()) { status_ = ret; - notify_ui_working_status(from_default_language(STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME), SANE_EVENT_ERROR, ret); // 鍙栧浘閫氫俊瓒呮椂 + notify_ui_working_status(from_default_language(STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME), SANE_EVENT_ERROR, ret); // 鍙栧浘閫氫俊瓒呮? VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "get image time out:%s\n", hg_scanner_err_name(status_)); break; } @@ -1392,7 +1392,10 @@ void hg_scanner_239::thread_get_dves_image(void) LOG_INFO(LOG_LEVEL_DEBUG_INFO, "User cancelled (checked when read INT timeout), we faked a 'STOP' messag to enter exiting process ...\n"); } else + { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); // for BUG-843 continue; + } } else if (ret != SCANNER_ERR_OK) @@ -1422,7 +1425,7 @@ void hg_scanner_239::thread_get_dves_image(void) } //break; - //杩欎釜鏃跺€欓€€鍑虹殑璇濇秷鎭氨杩樻病璇诲畬锛岄敊璇俊鎭厛淇濆瓨涓嬫潵锛屽彧鏈夎幏鍙栧埌stop鏃舵墠閫€鍑猴紝濡傛灉娌¤幏鍙栧畬閫€鍑猴紝鍙兘浼氬鑷寸浜屾鎵弿鐩存帴杩斿洖鎵弿瀹屾垚 + //杩欎釜鏃跺€欓€€鍑虹殑璇濇秷鎭氨杩樻病璇诲畬锛岄敊璇俊鎭厛淇濆瓨涓嬫潵锛屽彧鏈夎幏鍙栧埌stop鏃舵墠閫€鍑猴紝濡傛灉娌¤幏鍙栧畬閫€鍑猴紝鍙兘浼氬鑷寸浜屾鎵弿鐩存帴杩斿洖鎵弿瀹屾? } if (info->From == setting3399::IMG) { @@ -1445,8 +1448,8 @@ void hg_scanner_239::thread_get_dves_image(void) //else // VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "status(0x%x) is not accept in usb thread\n", status); } - else if (info->From == setting3399::STOPSCAN)//鍥轰欢鐗堟湰:3B0326鑾峰彇鏃犵焊鏃讹紝涓嬮潰涓柇淇℃伅浼氬厛鍙戞棤绾稿湪鍋滄鎵弿,鐒跺悗鍦ㄥ彂鏃犵焊 - { //姝ゆ椂int绔偣杩樿淇℃伅娌℃湁璇诲彇瀹岋紝鑰屼笖閫€鍑虹偣鍑荤户缁壂鎻忥紝涓嬮潰璁惧杩樻湭缁撴潫鎵弿 + else if (info->From == setting3399::STOPSCAN)//鍥轰欢鐗堟湰:3B0326鑾峰彇鏃犵焊鏃讹紝涓嬮潰涓柇淇℃伅浼氬厛鍙戞棤绾稿湪鍋滄鎵?鐒跺悗鍦ㄥ彂鏃犵? + { //姝ゆ椂int绔偣杩樿淇℃伅娌℃湁璇诲彇瀹岋紝鑰屼笖閫€鍑虹偣鍑荤户缁壂鎻忥紝涓嬮潰璁惧杩樻湭缁撴潫鎵? if (!svdevs_err_.empty()) { status_ = svdevs_err_.front(); @@ -1580,7 +1583,7 @@ int hg_scanner_239::do_start(void) reset(); - //211220固件版本不支持返回 + //211220固件版本不支持返? ret = get_scan_is_sleep(val); if (!val && ret == SCANNER_ERR_OK) { @@ -1871,7 +1874,7 @@ int hg_scanner_239::get_scan_is_sleep(SANE_Bool& type) std::lock_guard lock(io_lock_); int ret = 0,val; - ret = read_register(setting3399::SR_GET_SLEEP_STAUTUS, &val); //0休眠 1唤醒状态 + ret = read_register(setting3399::SR_GET_SLEEP_STAUTUS, &val); //0休眠 1唤醒状? if (ret == SCANNER_ERR_OK) { type = val == 1 ? true : false; @@ -2046,7 +2049,7 @@ int hg_scanner_239::set_scan_lock_check_val(string check_str) { return SCANNER_ERR_INVALID_PARAMETER; } - int num = 32 - keys.size(); //保持32位下发 + int num = 32 - keys.size(); //保持32位下? if (num > 0) { std::string str(num, '0'); @@ -2106,7 +2109,7 @@ int hg_scanner_239::set_firmware_upgrade(std::string filename) return SCANNER_ERR_OPEN_FILE_FAILED; } fwname.seekg(0, std::ios::end); - int total = fwname.tellg();//记录总长度 + int total = fwname.tellg();//记录总长? fwname.seekg(0, std::ios::beg); int pos = fwname.tellg();//记录pos位置 @@ -2145,7 +2148,7 @@ int hg_scanner_239::set_firmware_upgrade(std::string filename) return SCANNER_ERR_DEVICE_UPGRADE_FAIL; int to_cnt = 0; - // 到这个位置已经能够升级成功了 后面对升级结果做下判断 + // 到这个位置已经能够升级成功了 后面对升级结果做下判? auto now = std::chrono::steady_clock::now(); while (std::chrono::duration(std::chrono::steady_clock::now() - now).count() < 70) { @@ -2216,7 +2219,7 @@ int hg_scanner_239::set_dev_islock_file(int islockfile) } if (islockfile != 0 && islockfile != 1) { - return SCANNER_ERR_INVALID_PARAMETER; //这个地方设置的参数必须保证正确 + return SCANNER_ERR_INVALID_PARAMETER; //这个地方设置的参数必须保证正? } string device_log_path = "/var/log/black_list_file.txt"; string str = std::to_string(islockfile);