diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index be193f6..c029d83 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -162,7 +162,7 @@ hg_scanner::hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io, i , firmware_sup_wait_paper_(false),firmware_sup_pick_strength_(false),firmware_sup_log_export_(false), firmware_sup_log_export_G300_(false),firmware_sup_color_corr_(false),firmware_sup_wake_device_(false) , firmware_sup_double_img(false),firmware_sup_devs_lock_(false),firmware_sup_dpi_300(false),firmware_sup_dpi_600(false),firmware_sup_auto_speed_(false),firmware_sup_morr_(false) , firmware_sup_color_fill_(false),firmware_sup_history_cnt(false), have_max_size(false), is_discardblank(false),firmware_sup_device_7010(false), firmware_sup_double_check(false) - , firmware_sup_dirty_check(false) + , firmware_sup_dirty_check(false), firmware_sup_permeation_level(false) { #if !defined(_WIN32) && !defined(_WIN64) &&defined(x86_64) isx86_Advan_ = false; @@ -1472,7 +1472,7 @@ bool hg_scanner::jsn_reorganize() erase_option(SANE_STD_OPT_NAME_RID_MORR); } - if (pid_ == 0x239 || pid_ == 0x439) //固件不支持防止渗透等级 + if ((pid_ == 0x239 || pid_ == 0x439) && !firmware_sup_permeation_level) //固件3C1206之前3399不支持防止渗透等级 { erase_option(SANE_STD_OPT_NAME_ANTI_PERMEATE_LEVEL); } diff --git a/hgdriver/hgdev/hg_scanner.h b/hgdriver/hgdev/hg_scanner.h index a73a77f..da2db26 100644 --- a/hgdriver/hgdev/hg_scanner.h +++ b/hgdriver/hgdev/hg_scanner.h @@ -376,6 +376,7 @@ protected: bool firmware_sup_dirty_check; //固件支持 脏污检测 231027 bool firmware_sup_backup_restore; //固件支持 备份还原 231021 bool firmware_sup_boardTime; //固件支持 板级时间校验 231021 + bool firmware_sup_permeation_level; //固件支持 防渗透等级 3399-3C1206 bool firmware_sup_device_7010; //G300 设备但是7010 2023/9/21 int mat_width; int mat_height; diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 2e5998b..23ae8cc 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} //临时版本? 原来? + {600.0f, 1} //临时版本发1 原来发2 }; 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()) { @@ -549,6 +549,7 @@ void hg_scanner_239::init_version(void) firmware_sup_dirty_check = year_date.compare("3C1027") >= 0 ? true : false; firmware_sup_backup_restore = year_date.compare("3C1021") >= 0 ? true : false; firmware_sup_boardTime = year_date.compare("3C1021") >= 0 ? true : false; + firmware_sup_permeation_level = year_date.compare("3C1206") >= 0 ? true : false; if (dev == "G1" || dev == "G2") { @@ -569,7 +570,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 +602,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 +623,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 ,?C之前的版?匹配原始尺寸设置 12 + if (!firmware_sup_auto_speed_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)//3399 ,在3C之前的版本 匹配原始尺寸设置 12 { dev_conf->params_3399.paper = 12; } @@ -677,9 +678,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 +928,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 默认?无需改变 + //dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认发1无需改变 int ret = writedown_device_configuration(); return ret; } @@ -985,7 +986,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,//涓婇潰璁剧疆鐨勬? - 5 锛屾帴鍙楄寖鍥村€间? - 4锛岄粯璁? + val = check - 1,//娑撳﹪娼扮拋鍓х枂閻ㄥ嫭妲? - 5 閿涘本甯撮崣妤勫瘱閸ユ潙鈧棿璐? - 4閿涘矂绮拋? old = dev_conf_.params_3399.screw_detect_level; setting_hardware::HGSCANCONF_3399 cf; @@ -1357,7 +1358,7 @@ void hg_scanner_239::thread_get_dves_image(void) { std::lock_guard lock(io_lock_); - io_->set_timeout(500); //2023 11 30之前一直使?000ms ,但是为了能够快速响应下次的状态信息返回这里设置为500ms + io_->set_timeout(500); //2023 11 30之前一直使用1000ms ,但是为了能够快速响应下次的状态信息返回这里设置为500ms ret = io_->read_interrupt(buf, &size); } @@ -1366,7 +1367,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; } @@ -1425,7 +1426,7 @@ void hg_scanner_239::thread_get_dves_image(void) } //break; - //杩欎釜鏃跺€欓€€鍑虹殑璇濇秷鎭氨杩樻病璇诲畬锛岄敊璇俊鎭厛淇濆瓨涓嬫潵锛屽彧鏈夎幏鍙栧埌stop鏃舵墠閫€鍑猴紝濡傛灉娌¤幏鍙栧畬閫€鍑猴紝鍙兘浼氬鑷寸浜屾鎵弿鐩存帴杩斿洖鎵弿瀹屾? + //鏉╂瑤閲滈弮璺衡偓娆撯偓鈧崙铏规畱鐠囨繃绉烽幁顖氭皑鏉╂ɑ鐥呯拠璇茬暚閿涘矂鏁婄拠顖欎繆閹垰鍘涙穱婵嗙摠娑撳娼甸敍灞藉涧閺堝骞忛崣鏍у煂stop閺冭埖澧犻柅鈧崙鐚寸礉婵″倹鐏夊▽陇骞忛崣鏍х暚闁偓閸戠尨绱濋崣顖濆厴娴兼艾顕遍懛瀵割儑娴滃本顐奸幍顐e伎閻╁瓨甯存潻鏂挎礀閹殿偅寮跨€瑰本鍨? } if (info->From == setting3399::IMG) { @@ -1448,8 +1449,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閼惧嘲褰囬弮鐘电剨閺冭绱濇稉瀣桨娑擃厽鏌囨穱鈩冧紖娴兼艾鍘涢崣鎴炴¥缁剧婀崑婊勵剾閹殿偅寮?閻掕泛鎮楅崷銊ュ絺閺冪姷鐒? + { //濮濄倖妞俰nt缁旑垳鍋f潻妯款洣娣団剝浼呭▽鈩冩箒鐠囪褰囩€瑰矉绱濋懓灞肩瑬闁偓閸戣櫣鍋i崙鑽ゆ埛缂侇厽澹傞幓蹇ョ礉娑撳娼扮拋鎯ь槵鏉╂ɑ婀紒鎾存将閹殿偅寮? if (!svdevs_err_.empty()) { status_ = svdevs_err_.front(); @@ -1461,7 +1462,7 @@ void hg_scanner_239::thread_get_dves_image(void) //普世 if (pid_ != 0x439) { - if (img_conf_.resolution_dst > 200 && is_quality_ == IMG_QUALITY) //鍒犻櫎杩欐浠g爜锛屼綘鍙兘闇€瑕佽€冭檻涓€涓嬪悗鏋? + if (img_conf_.resolution_dst > 200 && is_quality_ == IMG_QUALITY) //閸掔娀娅庢潻娆愵唽娴狅絿鐖滈敍灞肩稑閸欘垵鍏橀棁鈧憰浣解偓鍐娑撯偓娑撳鎮楅弸? std::this_thread::sleep_for(std::chrono::milliseconds(5000)); else std::this_thread::sleep_for(std::chrono::milliseconds(2000)); @@ -1583,7 +1584,7 @@ int hg_scanner_239::do_start(void) reset(); - //211220固件版本不支持返? + //211220固件版本不支持返回 ret = get_scan_is_sleep(val); if (!val && ret == SCANNER_ERR_OK) { @@ -1874,7 +1875,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; @@ -2049,7 +2050,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'); @@ -2109,7 +2110,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位置 @@ -2148,7 +2149,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) { @@ -2219,7 +2220,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);