From c6f461a26fedb51680a70a04fcb50dae6b53a492 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Tue, 13 Jun 2023 12:28:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=BB=9A=E8=BD=AE=E5=AF=BF?= =?UTF-8?q?=E5=91=BD=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sane/scanner.cpp | 57 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/sane/scanner.cpp b/sane/scanner.cpp index 093f906..84e0ebd 100644 --- a/sane/scanner.cpp +++ b/sane/scanner.cpp @@ -908,11 +908,29 @@ int scanner::open(void) ret = init_options_id(); load_config((cfg_path_ + scanner_name_.substr(0, pid) + L".cfg").c_str()); apply_config(); + + // check roller life ... + SANE_Int cnt = 0, life = 0; + if (hg_sane_middleware::instance()->get_cur_value(handle_, (void*)SANE_OPT_ID_ROLLER_COUNT, &cnt) && + hg_sane_middleware::instance()->get_cur_value(handle_, (void*)SANE_OPT_ID_ROLLER_LIFE, &life)) + { + if (cnt >= life) + { + if (callback::show_messagebox_ui) + { + // 纸轮搓纸次数已超过设计使用范围,扫描过程中搓纸失败、歪斜、搓多张等异常频次可能会明显增多,请注意及时清洁、并联系设备供应商购买替换纸轮! + std::string roller_msg("\347\272\270\350\275\256\346\220\223\347\272\270\346\254\241\346\225\260\345\267\262\350\266\205\350\277\207\350\256\276\350\256\241\344\275\277\347\224\250\350\214\203\345\233\264\357\274\214\346\211\253\346\217\217\350\277\207\347\250\213\344\270\255\346\220\223\347\272\270\345\244\261\350\264\245\343\200\201\346\255\252\346\226\234\343\200\201\346\220\223\345\244\232\345\274\240\347\255\211\345\274\202\345\270\270\351\242\221\346\254\241\345\217\257\350\203\275\344\274\232\346\230\216\346\230\276\345\242\236\345\244\232\357\274\214\350\257\267\346\263\250\346\204\217\345\217\212\346\227\266\346\270\205\346\264\201\343\200\201\345\271\266\350\201\224\347\263\273\350\256\276\345\244\207\344\276\233\345\272\224\345\225\206\350\264\255\344\271\260\346\233\277\346\215\242\347\272\270\350\275\256\357\274\201"); + app_wnd_ = callback::find_main_wnd(); + callback::show_messagebox_ui(app_wnd_, ret, (void*)&roller_msg[0], 0); + } + } + } } else { if (callback::show_messagebox_ui) { + app_wnd_ = callback::find_main_wnd(); callback::show_messagebox_ui(app_wnd_, ret, (void*)hg_scanner_err_description(ret), 0); } else @@ -953,26 +971,27 @@ int scanner::init_options_id(void) SET_SANE_OPT_ID(op_id, var, predef, desc->name, func) #define INIT_FIXED_IDS(id) \ - sane_ids_[id] = id; + sane_ids_[SANE_OPT_ID_##id] = SANE_OPT_ID_##id; - INIT_FIXED_IDS(SANE_OPT_ID_HISTORY_COUNT); - INIT_FIXED_IDS(SANE_OPT_ID_DRIVER_VERSION); - INIT_FIXED_IDS(SANE_OPT_ID_MANUFACTURER); - INIT_FIXED_IDS(SANE_OPT_ID_COPYRIGHT); - INIT_FIXED_IDS(SANE_OPT_ID_CO_URL); - INIT_FIXED_IDS(SANE_OPT_ID_CO_TEL); - INIT_FIXED_IDS(SANE_OPT_ID_CO_ADDR); - INIT_FIXED_IDS(SANE_OPT_ID_CO_GPS); - INIT_FIXED_IDS(SANE_OPT_ID_HELP); - INIT_FIXED_IDS(SANE_OPT_ID_VID); - INIT_FIXED_IDS(SANE_OPT_ID_PID); - INIT_FIXED_IDS(SANE_OPT_ID_DEV_NAME); - INIT_FIXED_IDS(SANE_OPT_ID_DEV_FAMILY); - INIT_FIXED_IDS(SANE_OPT_ID_LOGIN); - INIT_FIXED_IDS(SANE_OPT_ID_LOGOUT); - INIT_FIXED_IDS(SANE_OPT_ID_ROLLER_COUNT); - INIT_FIXED_IDS(SANE_OPT_ID_DRIVER_LOG); - INIT_FIXED_IDS(SANE_OPT_ID_DEVICE_LOG); + INIT_FIXED_IDS(HISTORY_COUNT); + INIT_FIXED_IDS(DRIVER_VERSION); + INIT_FIXED_IDS(MANUFACTURER); + INIT_FIXED_IDS(COPYRIGHT); + INIT_FIXED_IDS(CO_URL); + INIT_FIXED_IDS(CO_TEL); + INIT_FIXED_IDS(CO_ADDR); + INIT_FIXED_IDS(CO_GPS); + INIT_FIXED_IDS(HELP); + INIT_FIXED_IDS(VID); + INIT_FIXED_IDS(PID); + INIT_FIXED_IDS(DEV_NAME); + INIT_FIXED_IDS(DEV_FAMILY); + INIT_FIXED_IDS(LOGIN); + INIT_FIXED_IDS(LOGOUT); + INIT_FIXED_IDS(ROLLER_COUNT); + INIT_FIXED_IDS(DRIVER_LOG); + INIT_FIXED_IDS(DEVICE_LOG); + INIT_FIXED_IDS(ROLLER_LIFE); while ((desc = hg_sane_middleware::instance()->get_option_descriptor(handle_, (const void*)op_id))) {