From 936201824f771f1ff781b4766256b2574736db52 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Fri, 22 Sep 2023 15:43:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E6=9C=AA=E6=81=A2=E5=A4=8D=E5=88=B0=E9=BB=98=E8=AE=A4=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E7=9A=84BUG=EF=BC=9B=E6=B7=BB=E5=8A=A0=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E5=B1=9E=E6=80=A7=E7=AE=A1=E7=90=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/hg_scanner.cpp | 25 ++-- hgdriver/hgdev/hg_scanner_239.cpp | 4 +- hgdriver/hgdev/scanner_manager.cpp | 184 ++++++++++--------------- hgdriver/hgdev/scanner_manager.h | 7 +- hgdriver/hgdev/user-opt/device_opt.cpp | 18 ++- hgdriver/hgdev/user-opt/device_opt.h | 1 + hgdriver/hgdev/user-opt/user.cpp | 7 +- hgdriver/hgdev/user-opt/user.h | 16 --- hgsane/sane_opt/sane_opts.cpp | 3 +- twain/ds/scanner.cpp | 1 + 10 files changed, 113 insertions(+), 153 deletions(-) diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index 062bc3f..7382fde 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -1384,10 +1384,9 @@ int hg_scanner::setting_sharpen(void* data, long* len) std::string str((char*)data); int ret = SCANNER_ERR_OK; - utils::to_log(LOG_LEVEL_DEBUG, "Change sharpen from %s to %s = ", sharpen_string(image_prc_param_.bits.sharpen).c_str(), (char*)data); + utils::to_log(LOG_LEVEL_DEBUG, "Change sharpen from %s to %s\n", sharpen_string(image_prc_param_.bits.sharpen).c_str(), (char*)data); image_prc_param_.bits.sharpen = match_best_sharpen(str, NULL); - utils::to_log(LOG_LEVEL_DEBUG, "%d\n", ret); return ret; } @@ -1446,9 +1445,8 @@ int hg_scanner::setting_is_permeate_lv(void* data, long* len) int ret = SCANNER_ERR_OK; std::string str((char*)data); - utils::to_log(LOG_LEVEL_DEBUG, "Change is_permeate_lv from %s to %s = ", is_permaeate_string(image_prc_param_.bits.is_permeate_lv_).c_str(), (char*)data); + utils::to_log(LOG_LEVEL_DEBUG, "Change is_permeate_lv from %s to %s\n", is_permaeate_string(image_prc_param_.bits.is_permeate_lv_).c_str(), (char*)data); image_prc_param_.bits.is_permeate_lv_ = match_best_permaeate_lv(str, NULL); - utils::to_log(LOG_LEVEL_DEBUG, "%d\n", ret); return ret; @@ -2250,17 +2248,13 @@ void hg_scanner::init_settings(const char* json_setting_text) jsn_reorganize(); - utils::to_log(LOG_LEVEL_ALL, "Initialize %d settings ...\n", setting_jsn_->count()); + utils::to_log(LOG_LEVEL_ALL, "------>Initialize %d settings ...<------\n", setting_jsn_->count()); notify_setting_result_ = false; - utils::to_log(LOG_LEVEL_ALL, "Initialize %d settings ... OK\n", setting_jsn_->count()); + setting_restore(nullptr, nullptr); // restore to default value + utils::to_log(LOG_LEVEL_ALL, "------>Initialize %d settings ... OK<------\n", setting_jsn_->count()); if (lang_get_cur_code_page() != DEFAULT_CODE_PAGE) on_language_changed(); notify_setting_result_ = true; - - - - //setting_jsn_ - } int hg_scanner::init_settings(int pid) { @@ -2715,7 +2709,10 @@ int hg_scanner::set_setting(const char* name, void* data, bool to_default) if (to_default) { - int size = 0; + if (!setting_jsn_->is_auto_restore_default(name)) + return SCANNER_ERR_DEVICE_NOT_SUPPORT; + + int size = 0; std::string val(setting_jsn_->get_option_value(name, OPT_VAL_DEFAULT, &size)); if (!data) @@ -4170,7 +4167,7 @@ int hg_scanner::image_configuration(SCANCONF& ic) utils::to_log(LOG_LEVEL_DEBUG, "ic.gamma=%f\r\n", ic.gamma); utils::to_log(LOG_LEVEL_DEBUG, "ic.hardwarecaps.capturepixtype=%d\r\n", ic.hardwarecaps.capturepixtype); utils::to_log(LOG_LEVEL_DEBUG, "ic.hardwarecaps.en_doublefeed=%d\r\n", ic.hardwarecaps.en_doublefeed); - utils::to_log(LOG_LEVEL_DEBUG, "ic.hsvcorrect=%d", ic.hsvcorrect); + utils::to_log(LOG_LEVEL_DEBUG, "ic.hsvcorrect=%d\n", ic.hsvcorrect); utils::to_log(LOG_LEVEL_DEBUG, "ic.imageRotateDegree=%f\r\n", ic.imageRotateDegree); utils::to_log(LOG_LEVEL_DEBUG, "ic.indent=%d\r\n", 5); utils::to_log(LOG_LEVEL_DEBUG, "ic.is_autocontrast=%d\r\n", ic.is_autocontrast); @@ -4200,7 +4197,7 @@ int hg_scanner::image_configuration(SCANCONF& ic) utils::to_log(LOG_LEVEL_DEBUG, "ic.errorExtention=%d\r\n", ic.errorExtention); utils::to_log(LOG_LEVEL_DEBUG, "ic.textureRemove=%d\r\n", ic.refuseInflow); utils::to_log(LOG_LEVEL_DEBUG, "ic.fillhole.is_fillhole=%d\r\n", ic.fillhole.is_fillhole); - utils::to_log(LOG_LEVEL_DEBUG, "ic.ic.fillhole.fillholeratio=%d\r\n ", ic.fillhole.fillholeratio); + utils::to_log(LOG_LEVEL_DEBUG, "ic.ic.fillhole.fillholeratio=%d\r\n", ic.fillhole.fillholeratio); utils::to_log(LOG_LEVEL_DEBUG, "ic.fadeback=%d\r\n", ic.fadeback); utils::to_log(LOG_LEVEL_DEBUG, "ic.cropRect.enable=%d\r\n", ic.cropRect.enable); utils::to_log(LOG_LEVEL_DEBUG, "ic.cropRect.width=%d\r\n", ic.cropRect.width); diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index e316d0a..261b8c7 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -22,8 +22,8 @@ static std::string jsontext6("t\":\"base\",\"readonly\":false,\"affect\":0,\"gro static std::string device_opt_json[] = { "{\"restore\":{\"cat\":\"base\",\"group\":\"\",\"title\":\"\\u6062\\u590d\\u9ed8\\u8ba4\\u8bbe\\u7f6e\",\"desc\":\"\\u6062\\u590d\\u9ed8\\u8ba4\\u8bbe\\u7f6e\",\"ver\":0,\"pos\":0,\"fix-id\":0,\"type\":\"button\",\"unit\":\"none\",\"affect\":0,\"size\":4},\"help\":{\"cat\":\"base\",\"group\":\"\",\"title\":\"\\u5e2e\\u52a9\",\"desc\":\"\\u663e\\u793a\\u8f6f\\u4ef6\\u5e2e\\u52a9\\u6587\\u6863\",\"ver\":0,\"pos\":0,\"fix-id\":34897,\"type\":\"button\",\"unit\":\"none\",\"affect\":0,\"size\":4},\"is-multiout\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u591a\\u6d41\\u8f93\\u51fa\",\"desc\":\"\\u540c\\u65f6\\u8f93\\u51fa\\u591a\\u79cd\\u989c\\u8272\\u6a21\\u5f0f\\u7684\\u56fe\\u50cf\",\"ver\":0,\"pos\":0,\"fix-id\":34817,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"multiout-type\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u591a\\u6d41\\u8f93\\u51fa\\u7c7b\\u578b\",\"desc\":\"\\u9009\\u62e9\\u591a\\u6d41\\u8f93\\u51fa\\u7684\\u7c7b\\u578b\",\"ver\":0,\"pos\":0,\"fix-id\":34818,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"enabled\":false,\"size\":66,\"cur\":\"\\u5f69\\u8272+\\u7070\\u5ea6+\\u9ed1\\u767d\",\"default\":\"\\u5f69\\u8272+\\u7070\\u5ea6+\\u9ed1\\u767d\",\"range\":[\"\\u5f69\\u8272+\\u7070\\u5ea6+\\u9ed1\\u767d\",\"\\u5f69\\u8272+\\u7070\\u5ea6\",\"\\u5f69\\u8272+\\u9ed1\\u767d\",\"\\u7070\\u5ea6+\\u9ed1\\u767d\"],\"depend\":\"is-multiout==true\"},\"mode\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u989c\\u8272\\u6a21\\u5f0f\",\"desc\":\"\\u9009\\u62e9\\u8272\\u5f69\\u6a21\\u5f0f\",\"ver\":0,\"pos\":0,\"fix-id\":34819,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":54,\"cur\":\"24\\u4f4d\\u5f69\\u8272\",\"default\":\"24\\u4f4d\\u5f69\\u8272\",\"range\":[\"24\\u4f4d\\u5f69\\u8272\",\"256\\u7ea7\\u7070\\u5ea6\",\"\\u9ed1\\u767d\",\"\\u989c\\u8272\\u81ea\\u52a8\\u8bc6\\u522b\"],\"depend\":\"is-multiout!=true\"},\"binary-threshold\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u9ed1\\u767d\\u56fe\\u50cf\\u9608\\u503c\",\"desc\":\"\\u9ad8\\u4e8e\\u8be5\\u9608\\u503c\\u4e3a1\\uff08\\u767d\\uff09\\uff0c\\u4f4e\\u4e8e\\u8be5\\u9608\\u503c\\u4e3a0\\uff08\\u9ed1\\uff09\",\"ver\":0,\"pos\":0,\"fix-id\":34870,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":127,\"default\":127,\"range\":{\"min\":0,\"max\":255,\"step\":1},\"depend\":\"(multiout-type.enabled&&multiout-type!=\\u5f69\\u8272+\\u7070\\u5ea6) || (mode.enabled && mode==\\u9ed1\\u767d)\"},\"reverse-bw\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u9ed1\\u767d\\u56fe\\u50cf\\u53cd\\u8272\\u8f93\\u51fa\",\"desc\":\"\\u8f93\\u51fa\\u7684\\u9ed1\\u767d\\u56fe\\u50cf\\u4ee5\\u201c1\\u201d\\u4ee3\\u8868\\u9ed1\\u8272\\uff0c\\u201c0\\u201d\\u4ee3\\u8868\\u767d\\u8272\",\"ver\":0,\"pos\":0,\"fix-id\":34878,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"(multiout-type.enabled&&multiout-type!=\\u5f69\\u8272+\\u7070\\u5ea6) || (mode.enabled && mode==\\u9ed1\\u767d)\"},\"filter\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u7070\\u5ea6\\u6216\\u9ed1\\u767d\\u56fe\\u50cf - \\u9664\\u8272\\u4e0e\\u589e\\u5f3a\",\"desc\":\"\\u6d88\\u9664\\u6216\\u589e\\u5f3a\\u6307\\u5b9a\\u8272\\u5f69\",\"ver\":0,\"pos\":0,\"fix-id\":34820,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"enabled\":false,\"size\":42,\"cur\":\"\\u4e0d\\u9664\\u8272\",\"default\":\"\\u4e0d\\u9664\\u8272\",\"range\":[\"\\u4e0d\\u9664\\u8272\",\"\\u9664\\u7ea2\\u8272\",\"\\u9664\\u7eff\\u8272\",\"\\u9664\\u84dd\\u8272\",\"\\u7ea2\\u8272\\u589e\\u5f3a\",\"\\u7eff\\u8272\\u589e\\u5f3a\",\"\\u84dd\\u8272\\u589e\\u5f3a\"],\"depend\":\"mode.enabled && (mode==256\\u7ea7\\u7070\\u5ea6 || mode==\\u9ed1\\u767d)\"},\"is-rid-multiout-red\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"24\\u4f4d\\u5f69\\u8272\\u56fe\\u50cf - \\u591a\\u6d41\\u8f93\\u51fa\\u9664\\u7ea2\",\"desc\":\"\\u540c\\u65f6\\u8f93\\u51fa\\u5f69\\u8272\\u56fe\\u50cf\\u548c\\u7070\\u5ea6\\u9664\\u7ea2\\u56fe\\u50cf\",\"ver\":0,\"pos\":0,\"fix-id\":34821,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"mode.enabled && mode==24\\u4f4d\\u5f69\\u8272\"},\"is-rid-answer-sheet-red\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"24\\u4f4d\\u5f69\\u8272\\u56fe\\u50cf - \\u7b54\\u9898\\u5361\\u9664\\u7ea2\",\"desc\":\"\\u8f93\\u51fa\\u9664\\u7ea2\\u5f69\\u8272\\u56fe\\u50cf\",\"ver\":0,\"pos\":0,\"fix-id\":34822,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"mode.enabled && mode==24\\u4f4d\\u5f69\\u8272\"},\"is-erase-bkg\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u80cc\\u666f\\u79fb\\u9664\",\"desc\":\"\\u79fb\\u9664\\u6587\\u7a3f\\u80cc\\u666f\\u5e95\\u8272\",\"ver\":0,\"pos\":0,\"fix-id\":34823,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"mode.enabled && mode==24\\u4f4d\\u5f69\\u8272\"},\"bkg-color-range\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\" \\u80cc\\u666f\\u8272\\u5f69\\u6d6e\\u52a8\\u8303\\u56f4\",\"desc\":\"\\u4e0e\\u80cc\\u666f\\u5e95\\u8272\\u504f\\u5dee\\u5728\\u8be5\\u503c\\u8303\\u56f4\\u5185\\u7684\\u989c\\u8272\\uff0c\\u90fd\\u5c06\\u88ab\\u79fb\\u9664\",\"ver\":0,\"pos\":0,\"fix-id\":34824,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"enabled\":false,\"size\":4,\"cur\":20,\"default\":20,\"range\":{\"min\":1,\"max\":128,\"step\":1},\"depend\":\"is-erase-bkg==true\"},\"sharpen\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u9510\\u5316\\u4e0e\\u6a21\\u7cca\",\"desc\":\"\\u9009\\u62e9\\u9510\\u5316\\u6548\\u679c\\u6216\\u6a21\\u7cca\\u6548\\u679c\",\"ver\":0,\"pos\":0,\"fix-id\":34825,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":48,\"cur\":\"\\u65e0\",\"default\":\"\\u65e0\",\"range\":[\"\\u65e0\",\"\\u9510\\u5316\",\"\\u8fdb\\u4e00\\u6b65\\u9510\\u5316\",\"\\u6a21\\u7cca\",\"\\u8fdb\\u4e00\\u6b65\\u6a21\\u7cca\"],\"depend\":\"mode.enabled&&(mode==24\\u4f4d\\u5f69\\u8272 || mode==256\\u7ea7\\u7070\\u5ea6)\"},\"is-rid-morr\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u53bb\\u9664\\u6469\\u5c14\\u7eb9\",\"desc\":\"\\u53bb\\u9664\\u56fe\\u50cf\\u4e2d\\u7684\\u6469\\u5c14\\u7eb9\",\"ver\":0,\"pos\":0,\"fix-id\":34826,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"resolution<500&&paper!=\\u4e09\\u8054\\u8bd5\\u5377&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207 && sharpen.enabled\"},\"is-rid-grid\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u9664\\u7f51\\u7eb9\",\"desc\":\"\\u53bb\\u9664\\u56fe\\u50cf\\u4e2d\\u7684\\u7f51\\u7eb9\",\"ver\":0,\"pos\":0,\"fix-id\":34827,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"resolution<500&&paper!=\\u4e09\\u8054\\u8bd5\\u5377&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207 && sharpen.enabled\"},\"is-err-extension\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u9519\\u8bef\\u6269\\u6563\",\"desc\":\"\\u4ee5\\u70b9\\u9635\\u5f62\\u5f0f\\u6784\\u5efa\\u56fe\\u50cf\",\"ver\":0,\"pos\":0,\"fix-id\":34828,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"mode.enabled&&mode==\\u9ed1\\u767d\"},\"is-noise-optimize\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u9ed1\\u767d\\u56fe\\u50cf\\u566a\\u70b9\\u4f18\\u5316\",\"desc\":\"\\u53bb\\u9664\\u56fe\\u50cf\\u4e2d\\u7684\\u5b64\\u7acb\\u9ed1\\u70b9\",\"ver\":0,\"pos\":0,\"fix-id\":34829,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"mode.enabled&&mode==\\u9ed1\\u767d\"},\"noise-size\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\" \\u566a\\u70b9\\u4f18\\u5316\\u5c3a\\u5bf8\",\"desc\":\"\\u8bbe\\u7f6e\\u9700\\u8981\\u53bb\\u9664\\u7684\\u9ed1\\u8272\\u5b64\\u7acb\\u70b9\\u7684\\u8fde\\u901a\\u4e2a\\u6570\",\"ver\":0,\"pos\":0,\"fix-id\":34830,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":10,\"default\":10,\"range\":{\"min\":1,\"max\":50,\"step\":1},\"depend\":\"is-noise-optimize==true\"},\"paper\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u7eb8\\u5f20\\u5c3a\\u5bf8\",\"desc\":\"\\u8bbe\\u7f6e\\u51fa\\u56fe\\u5927\\u5c0f\",\"ver\":0,\"pos\":0,\"fix-id\":34831,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":96,\"cur\":\"\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8\",\"default\":\"\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8\",\"range\":[\"A3\",\"8\\u5f00\",\"A4\",\"A4\\u6a2a\\u5411\",\"16\\u5f00\",\"16\\u5f00\\u6a2a\\u5411\",\"A5\",\"A5\\u6a2a\\u5411\",\"A6\",\"A6\\u6a2a\\u5411\",\"B4\",\"B5\",\"B5\\u6a2a\\u5411\",\"B6\",\"B6\\u6a2a\\u5411\",\"Letter\",\"Letter\\u6a2a\\u5411\",\"Double Letter\",\"LEGAL\",\"\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8\",{\"resolution<500\":\"\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207\"},{\"resolution<500\":\"\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\"},{\"resolution<500\":\"\\u4e09\\u8054\\u8bd5\\u5377\"}]},\"is-custom-area\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u81ea\\u5b9a\\u4e49\\u626b\\u63cf\\u533a\\u57df\",\"desc\":\"\\u81ea\\u5b9a\\u4e49\\u626b\\u63cf\\u533a\\u57df\",\"ver\":0,\"pos\":0,\"fix-id\":34832,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"paper!=\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8&&paper!=\\u4e09\\u8054\\u8bd5\\u5377&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207\"},\"tl-x\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u626b\\u63cf\\u533a\\u57df\\u5de6\\u4fa7\\uff08mm\\uff09\",\"desc\":\"\\u81ea\\u5b9a\\u4e49\\u626b\\u63cf\\u533a\\u57df\\u5de6\\u4e0a\\u89d2x\\u5750\\u6807\",\"ver\":0,\"pos\":0,\"fix-id\":34833,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.000000,\"default\":0.000000,\"range\":{\"min\":0.000000,\"max\":210.000000,\"step\":21.000000},\"depend\":\"is-custom-area==true", "\"},\"br-x\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u626b\\u63cf\\u533a\\u57df\\u53f3\\u4fa7\\uff08mm\\uff09\",\"desc\":\"\\u81ea\\u5b9a\\u4e49\\u626b\\u63cf\\u533a\\u57df\\u53f3\\u4e0b\\u89d2x\\u5750\\u6807\",\"ver\":0,\"pos\":0,\"fix-id\":34834,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":210.000000,\"default\":210.000000,\"range\":{\"min\":0.000000,\"max\":210.000000,\"step\":21.000000},\"depend\":\"is-custom-area==true\"},\"tl-y\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u626b\\u63cf\\u533a\\u57df\\u4e0a\\u4fa7\\uff08mm\\uff09\",\"desc\":\"\\u81ea\\u5b9a\\u4e49\\u626b\\u63cf\\u533a\\u57df\\u5de6\\u4e0a\\u89d2y\\u5750\\u6807\",\"ver\":0,\"pos\":0,\"fix-id\":34835,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.000000,\"default\":0.000000,\"range\":{\"min\":0.000000,\"max\":297.000000,\"step\":29.700000},\"depend\":\"is-custom-area==true\"},\"br-y\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u626b\\u63cf\\u533a\\u57df\\u4e0b\\u4fa7\\uff08mm\\uff09\",\"desc\":\"\\u81ea\\u5b9a\\u4e49\\u626b\\u63cf\\u533a\\u57df\\u53f3\\u4e0b\\u89d2y\\u5750\\u6807\",\"ver\":0,\"pos\":0,\"fix-id\":34836,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":297.000000,\"default\":297.000000,\"range\":{\"min\":0.000000,\"max\":297.000000,\"step\":29.700000},\"depend\":\"is-custom-area==true\"},\"is-size-check\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u5c3a\\u5bf8\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u7eb8\\u5f20\\u5b9e\\u9645\\u5c3a\\u5bf8\\u4e0e\\u8bbe\\u7f6e\\u662f\\u5426\\u5339\\u914d\",\"ver\":0,\"pos\":0,\"fix-id\":34837,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"paper==A3||paper==A4||paper==A4\\u6a2a\\u5411||paper==A5||paper==A5\\u6a2a\\u5411||paper==A6||paper==A6\\u6a2a\\u5411||paper==B4||paper==B5||paper==B5\\u6a2a\\u5411||paper==B6||paper==B6\\u6a2a\\u5411||paper==Double Letter||paper==LEGAL||paper==Letter||paper==Letter\\u6a2a\\u5411\"},\"page\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u626b\\u63cf\\u9875\\u9762\",\"desc\":\"\\u8bbe\\u7f6e\\u9875\\u9762\\u626b\\u63cf\\u65b9\\u5f0f\",\"ver\":0,\"pos\":0,\"fix-id\":34838,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":78,\"cur\":\"\\u53cc\\u9762\",\"default\":\"\\u53cc\\u9762\",\"range\":[\"\\u5355\\u9762\",\"\\u53cc\\u9762\",\"\\u8df3\\u8fc7\\u7a7a\\u767d\\u9875\\uff08\\u901a\\u7528\\uff09\",\"\\u8df3\\u8fc7\\u7a7a\\u767d\\u9875\\uff08\\u53d1\\u7968\\u7eb8\\uff09\",\"\\u5bf9\\u6298\"]},\"discardblank\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u8df3\\u8fc7\\u7a7a\\u767d\\u9875\",\"desc\":\"\",\"ver\":0,\"pos\":0,\"fix-id\":34919,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"blank-sensitivity\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\" \\u8df3\\u8fc7\\u7a7a\\u767d\\u9875\\u7075\\u654f\\u5ea6\",\"desc\":\"\\u6570\\u503c\\u8d8a\\u5927\\uff0c\\u5219\\u8d8a\\u5bb9\\u6613\\u8df3\\u8fc7\",\"ver\":0,\"pos\":0,\"fix-id\":34839,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":30,\"default\":30,\"range\":{\"min\":1,\"max\":100,\"step\":1},\"depend\":\"page==\\u8df3\\u8fc7\\u7a7a\\u767d\\u9875\\uff08\\u53d1\\u7968\\u7eb8\\uff09||page==\\u8df3\\u8fc7\\u7a7a\\u767d\\u9875\\uff08\\u901a\\u7528\\uff09||discardblank==true\"},\"fold-type\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u5bf9\\u6298\\u6a21\\u5f0f\",\"desc\":\"\",\"ver\":0,\"pos\":0,\"fix-id\":34887,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":42,\"cur\":\"\\u5de6\\u53f3\\u5bf9\\u6298\",\"default\":\"\\u5de6\\u53f3\\u5bf9\\u6298\",\"range\":[\"\\u5de6\\u53f3\\u5bf9\\u6298\",\"\\u4e0a\\u4e0b\\u5bf9\\u6298\",\"\\u81ea\\u52a8\\u5bf9\\u6298\"],\"depend\":\"page==\\u5bf9\\u6298\"},\"resolution\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u5206\\u8fa8\\u7387\",\"desc\":\"\\u8bbe\\u7f6e\\u626b\\u63cf\\u56fe\\u50cf\\u7684\\u5206\\u8fa8\\u7387\",\"ver\":0,\"pos\":0,\"fix-id\":34840,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":200,\"default\":200,\"range\":{\"min\":100,\"max\":{\"default\":600,\"paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207 || paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8 || paper==\\u4e09\\u8054\\u8bd5\\u5377\":500},\"step\":1}},\"image-quality\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u753b\\u8d28\",\"desc\":\"\\u9009\\u62e9\\u626b\\u63cf\\u4eea\\u7684\\u753b\\u8d28\\u6a21\\u5f0f\",\"ver\":0,\"pos\":0,\"fix-id\":34841,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":42,\"cur\":\"\\u753b\\u8d28\\u4f18\\u5148\",\"default\":\"\\u753b\\u8d28\\u4f18\\u5148\",\"range\":[\"\\u901f\\u5ea6\\u4f18\\u5148\",\"\\u753b\\u8d28\\u4f18\\u5148\"],\"depend\":\"resolution>=300\"},\"is-exchange\":{\"cat\":\"base\",\"group\":\"base\",\"title\":\"\\u4ea4\\u6362\\u6b63\\u53cd\\u9762\",\"desc\":\"\\u4ea4\\u6362\\u6bcf\\u5f20\\u6587\\u7a3f\\u7684\\u6b63\\u53cd\\u9762\\u51fa\\u56fe\\u987a\\u5e8f\",\"ver\":0,\"pos\":0,\"fix-id\":34842,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"page!=\\u5355\\u9762\"},\"is-custom-gamma\":{\"cat\":\"base\",\"group\":\"bright\",\"title\":\"\\u542f\\u7528\\u8272\\u8c03\\u66f2\\u7ebf\",\"desc\":\"\\u81ea\\u5b9a\\u4e49\\u56fe\\u50cf\\u8272\\u8c03\\u6548\\u679c\",\"ver\":0,\"pos\":0,\"fix-id\":34845,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"brightness\":{\"cat\":\"base\",\"group\":\"bright\",\"title\":\"\\u4eae\\u5ea6\\u503c\",\"desc\":\"\\u8c03\\u6574\\u56fe\\u50cf\\u4eae\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34846,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":128,\"default\":128,\"range\":{\"min\":1,\"max\":255,\"step\":1},\"depend\":\"is-custom-gamma==false\"},\"contrast\":{\"cat\":\"base\",\"group\":\"bright\",\"title\":\"\\u5bf9\\u6bd4\\u5ea6\",\"desc\":\"\\u8c03\\u6574\\u56fe\\u50cf\\u5bf9\\u6bd4\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34847,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":4,\"default\":4,\"range\":{\"min\":1,\"max\":7,\"step\":1},\"depend\":\"is-custom-gamma==false\"},\"gamma\":{\"cat\":\"base\",\"group\":\"bright\",\"title\":\"\\u4f3d\\u9a6c\\u503c\",\"desc\":\"\\u8c03\\u6574\\u56fe\\u50cf\\u4f3d\\u739b\\u503c\",\"ver\":0,\"pos\":0,\"fix-id\":34848,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":1.000000,\"default\":1.000000,\"range\":{\"min\":0.010000,\"max\":5.000000,\"step\":0.499000},\"depend\":\"is-custom-gamma==false\"},\"color-correction\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u8272\\u504f\\u6821\\u6b63\",\"desc\":\"\\u8272\\u5f69\\u8fd8\\u539f\\u5ea6\\u77eb\\u6b63\\u529f\\u80fd\",\"ver\":0,\"pos\":0,\"fix-id\":34888,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"is-anti-skew\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u81ea\\u52a8\\u7ea0\\u504f\",\"desc\":\"\\u81ea\\u52a8\\u7ea0\\u6b63\\u6b6a\\u659c\\u9001\\u5165\\u7684\\u6587\\u7a3f\\u56fe\\u50cf\",\"ver\":0,\"pos\":0,\"fix-id\":34844,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":true,\"default\":true,\"depend\":\"page!=\\u5bf9\\u6298\"},\"is-split\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u56fe\\u50cf\\u62c6\\u5206\",\"desc\":\"\\u81ea\\u52a8\\u62c6\\u5206\\u56fe\\u50cf\",\"ver\":0,\"pos\":0,\"fix-id\":34843,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"page!=\\u5bf9\\u6298&&page!=\\u8df3\\u8fc7\\u7a7a\\u767d\\u9875\\uff08\\u53d1\\u7968\\u7eb8\\uff09&&page!=\\u8df3\\u8fc7\\u7a7a\\u767d\\u9875\\uff08\\u901a\\u7528\\uff09\"},\"is-erase-black-frame\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u6d88\\u9664\\u9ed1\\u6846\",\"desc\":\"\\u6d88\\u9664\\u6587\\u7a3f\\u8303\\u56f4\\u5916\\u7684\\u9ed1\\u8272\\u80cc\\u666f\",\"ver\":0,\"pos\":0,\"fix-id\":34849,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":true,\"default\":true},\"bkg-fill-mode\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u80cc\\u666f\\u586b\\u5145\\u65b9\\u5f0f\",\"desc\":\"\\u9009\\u62e9\\u80cc\\u666f\\u586b\\u5145\\u65b9\\u5f0f\",\"ver\":0,\"pos\":0,\"fix-id\":34854,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":42,\"cur\":\"\\u51f8\\u591a\\u8fb9\\u5f62\",\"default\":\"\\u51f8\\u591a\\u8fb9\\u5f62\",\"range\":[\"\\u51f8\\u591a\\u8fb9\\u5f62\",\"\\u51f9\\u591a\\u8fb9\\u5f62\"],\"depend\":\"is-erase-black-frame==true\"},\"is-fill-color\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u8272\\u5f69\\u586b\\u5145\",\"desc\":\"\\u542f\\u7528\\u540e\\u9ed1\\u6846\\u90e8\\u5206\\u5c06\\u586b\\u5145\\u4e3a\\u6587\\u7a3f\\u5e95\\u8272\",\"ver\":0,\"pos\":0,\"fix-id\":34859,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"is-erase-black-frame==true\"},\"threshold\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u9608\\u503c\",\"desc\":\"\\u6587\\u7a3f\\u5e95\\u8272\\u4e0e\\u9ed1\\u8272\\u80cc\\u666f\\u7070\\u5ea6\\u503c\\u7684\\u5dee\\u503c\\u5927\\u4e8e\\u8be5\\u503c\\uff0c\\u624d\\u4f1a\\u88ab\\u8bc6\\u522b\\u4e3a\\u6587\\u7a3f\",\"ver\":0,\"pos\":0,\"fix-id\":34851,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":40,\"default\":40,\"range\":{\"min\":30,\"max\":50,\"step\":1},\"depend\":\"is-erase-black-frame==true||paper==\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8||paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8||paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207||is-anti-skew==true\"},\"anti-noise-level\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u80cc\\u666f\\u6297\\u566a\\u7b49\\u7ea7\",\"desc\":\"\\u80fd\\u591f\\u5bb9\\u5fcd\\u7684\\u80cc\\u666f\\u6742\\u8272\\u6761\\u7eb9\\u7684\\u5bbd\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34852,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":8,\"default\":8,\"range\":{\"min\":2,\"max\":20,\"step\":1},\"depend\":\"is-erase-black-frame==true||paper==\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8||paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8||paper==\\u6700\\u5927\\u626b\\u63c", - "f\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207||is-anti-skew==true\"},\"margin\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u8fb9\\u7f18\\u7f29\\u8fdb\",\"desc\":\"\\u5bfb\\u627e\\u6587\\u7a3f\\u8fb9\\u7f18\\u65f6\\u5bf9\\u8fb9\\u7f18\\u7684\\u4fb5\\u5165\\u7a0b\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34853,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":5,\"default\":5,\"range\":{\"min\":2,\"max\":30,\"step\":1},\"depend\":\"is-erase-black-frame==true||paper==\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8||paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8||paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207||is-anti-skew==true\"},\"is-dark-sample\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u6df1\\u8272\\u6837\\u5f20\",\"desc\":\"\\u542f\\u7528\\u8be5\\u6a21\\u5f0f\\u9632\\u6b62\\u6df1\\u8272\\u5e95\\u8272\\u7684\\u6587\\u7a3f\\u56fe\\u50cf\\u88ab\\u8bef\\u5904\\u7406\",\"ver\":0,\"pos\":0,\"fix-id\":34850,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"page!=\\u5bf9\\u6298&&is-erase-black-frame!=true&&paper!=\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207&&is-anti-skew!=true\"},\"is-anti-permeate\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u9632\\u6b62\\u6e17\\u900f\",\"desc\":\"\\u9632\\u6b62\\u80cc\\u9762\\u56fe\\u6848\\u6e17\\u900f\",\"ver\":0,\"pos\":0,\"fix-id\":34855,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"permeate-level\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u9632\\u6b62\\u6e17\\u900f\\u7b49\\u7ea7\",\"desc\":\"\\u9009\\u62e9\\u9632\\u6b62\\u6e17\\u900f\\u7684\\u7b49\\u7ea7\",\"ver\":0,\"pos\":0,\"fix-id\":34856,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":30,\"cur\":\"\\u8f83\\u5f31\",\"default\":\"\\u8f83\\u5f31\",\"range\":[\"\\u5f31\",\"\\u8f83\\u5f31\",\"\\u4e00\\u822c\",\"\\u8f83\\u5f3a\",\"\\u5f3a\"],\"depend\":\"is-anti-permeate==true\"},\"is-rid-hole-l\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u7a7f\\u5b54\\u79fb\\u9664\\u2014\\u5de6\\u4fa7\",\"desc\":\"\\u7a7f\\u5b54\\u5728\\u7eb8\\u5f20\\u4e0a\\u7684\\u5de6\\u4fa7\",\"ver\":0,\"pos\":0,\"fix-id\":34879,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"search-hole-range-l\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u5de6\\u4fa7\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"desc\":\"\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"ver\":0,\"pos\":0,\"fix-id\":34880,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.000000,\"max\":0.500000,\"step\":0.050000},\"depend\":\"is-rid-hole-l==true\"},\"is-rid-hole-r\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u7a7f\\u5b54\\u79fb\\u9664\\u2014\\u53f3\\u4fa7\",\"desc\":\"\\u7a7f\\u5b54\\u5728\\u7eb8\\u5f20\\u4e0a\\u7684\\u53f3\\u4fa7\",\"ver\":0,\"pos\":0,\"fix-id\":34881,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"search-hole-range-r\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u53f3\\u4fa7\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"desc\":\"\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"ver\":0,\"pos\":0,\"fix-id\":34882,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.000000,\"max\":0.500000,\"step\":0.050000},\"depend\":\"is-rid-hole-r==true\"},\"is-rid-hole-t\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u7a7f\\u5b54\\u79fb\\u9664\\u2014\\u4e0a\\u4fa7\",\"desc\":\"\\u7a7f\\u5b54\\u5728\\u7eb8\\u5f20\\u7684\\u4e0a\\u90e8\",\"ver\":0,\"pos\":0,\"fix-id\":34883,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"search-hole-range-t\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u4e0a\\u4fa7\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"desc\":\"\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"ver\":0,\"pos\":0,\"fix-id\":34884,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.000000,\"max\":0.500000,\"step\":0.050000},\"depend\":\"is-rid-hole-t==true\"},\"is-rid-hole-b\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u7a7f\\u5b54\\u79fb\\u9664\\u2014\\u4e0b\\u4fa7\",\"desc\":\"\\u7a7f\\u5b54\\u5728\\u7eb8\\u5f20\\u7684\\u4e0b\\u90e8\",\"ver\":0,\"pos\":0,\"fix-id\":34885,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"search-hole-range-b\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u4e0b\\u4fa7\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"desc\":\"\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"ver\":0,\"pos\":0,\"fix-id\":34886,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.000000,\"max\":0.500000,\"step\":0.050000},\"depend\":\"is-rid-hole-b==true\"},\"is-wait-scan\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u5f85\\u7eb8\\u626b\\u63cf\",\"desc\":\"\\u542f\\u7528\\u540e\\uff0c\\u6587\\u7a3f\\u653e\\u5165\\u626b\\u63cf\\u4eea\\u65f6\\u5c06\\u81ea\\u52a8\\u542f\\u52a8\\u626b\\u63cf\",\"ver\":0,\"pos\":0,\"fix-id\":34873,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"wait-scan-exit\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u5f85\\u7eb8\\u626b\\u63cf\\u9000\\u51fa\\u65f6\\u95f4\",\"desc\":\"\\u8bbe\\u7f6e\\u7ed3\\u675f\\u5f85\\u7eb8\\u626b\\u63cf\\u7684\\u65f6\\u95f4\",\"ver\":0,\"pos\":0,\"fix-id\":0,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":42,\"cur\":\"60s\",\"default\":\"60s\",\"range\":[\"15s\",\"30s\",\"60s\",\"2min\",\"4min\",\"8min\"],\"depend\":\"is-wait-scan==true\"},\"scan-mode\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u626b\\u63cf\\u5f20\\u6570\",\"desc\":\"\\u9009\\u62e9\\u6307\\u5b9a\\u6570\\u91cf\\u626b\\u63cf\\u6216\\u8fde\\u7eed\\u626b\\u63cf\",\"ver\":0,\"pos\":0,\"fix-id\":34862,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":54,\"cur\":\"\\u8fde\\u7eed\\u626b\\u63cf\",\"default\":\"\\u8fde\\u7eed\\u626b\\u63cf\",\"range\":[\"\\u8fde\\u7eed\\u626b\\u63cf\",\"\\u626b\\u63cf\\u6307\\u5b9a\\u5f20\\u6570\"],\"depend\":\"is-wait-scan==false\"},\"scan-count\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\" \\u626b\\u63cf\\u6570\\u91cf\",\"desc\":\"\\u626b\\u63cf\\u6307\\u5b9a\\u6570\\u91cf\",\"ver\":0,\"pos\":0,\"fix-id\":34863,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":-1,\"default\":-1,\"depend\":\"scan-mode.enabled&&scan-mode==\\u626b\\u63cf\\u6307\\u5b9a\\u5f20\\u6570\"},\"direction\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u6587\\u7a3f\\u65b9\\u5411\",\"desc\":\"\\u8bbe\\u7f6e\\u56fe\\u50cf\\u7684\\u65b9\\u5411\",\"ver\":0,\"pos\":0,\"fix-id\":34864,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":72,\"cur\":\"0\\u00b0\",\"default\":\"0\\u00b0\",\"range\":[\"0\\u00b0\",\"90\\u00b0\",\"180\\u00b0\",\"-90\\u00b0\",\"\\u81ea\\u52a8\\u6587\\u672c\\u65b9\\u5411\\u8bc6\\u522b\\u00b0\"]},\"is-rotate-bkg-180\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u80cc\\u9762\\u65cb\\u8f6c180\\u00b0\",\"desc\":\"\\u80cc\\u9762\\u626b\\u63cf\\u7684\\u56fe\\u50cf\\u65cb\\u8f6c180\\u00b0\",\"ver\":0,\"pos\":0,\"fix-id\":34865,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"page!=\\u5355\\u9762&&page!=\\u5bf9\\u6298&&direction!=\\u81ea\\u52a8\\u6587\\u672c\\u65b9\\u5411\\u8bc6\\u522b\\u00b0\"},\"is-ultrosonic\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u8d85\\u58f0\\u6ce2\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u662f\\u5426\\u51fa\\u73b0\\u53cc\\u5f20\\u9001\\u5165\",\"ver\":0,\"pos\":0,\"fix-id\":34860,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":true,\"default\":true},\"double-feed\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u53cc\\u5f20\\u56fe\\u7247\\u5904\\u7406\",\"desc\":\"\\u68c0\\u6d4b\\u5230\\u53cc\\u5f20\\u8fdb\\u7eb8\\u540e\\u7684\\u5904\\u7406\\u65b9\\u5f0f\",\"ver\":0,\"pos\":0,\"fix-id\":34872,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":72,\"cur\":\"\\u4e22\\u5f03\\u56fe\\u50cf\\u5e76\\u505c\\u6b62\\u626b\\u63cf\",\"default\":\"\\u4e22\\u5f03\\u56fe\\u50cf\\u5e76\\u505c\\u6b62\\u626b\\u63cf\",\"range\":[\"\\u4e22\\u5f03\\u56fe\\u50cf\\u5e76\\u505c\\u6b62\\u626b\\u63cf\",\"\\u4e0a\\u4f20\\u56fe\\u50cf\\u5e76\\u505c\\u6b62\\u626b\\u63cf\"],\"depend\":\"is-ultrosonic==true\"},\"is-staple\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u88c5\\u8ba2\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u662f\\u5426\\u51fa\\u73b0\\u7c98\\u8fde\\u9001\\u5165\",\"ver\":0,\"pos\":0,\"fix-id\":34861,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"is-check-askew\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u6b6a\\u659c\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u662f\\u5426\\u51fa\\u73b0\\u6b6a\\u659c\\u9001\\u5165\",\"ver\":0,\"pos\":0,\"fix-id\":34868,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":true,\"default\":true},\"askew-range\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u6b6a\\u659c\\u5bb9\\u5fcd\\u5ea6\",\"desc\":\"\\u503c\\u8d8a\\u5c0f\\uff0c\\u80fd\\u5bb9\\u5fcd\\u5f97\\u9001\\u5165\\u6587\\u7a3f\\u6b6a\\u659c\\u89d2\\u5ea6\\u8d8a\\u5c0f\",\"ver\":0,\"pos\":0,\"fix-id\":34869,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":3,\"default\":3,\"range\":{\"min\":1,\"max\":5,\"step\":1},\"depend\":\"is-check-askew==true\"},\"is-check-dog-ear\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u6298\\u89d2\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u6587\\u7a3f\\u662f\\u5426\\u5b58\\u57", - "28\\u6298\\u89d2\",\"ver\":0,\"pos\":0,\"fix-id\":34866,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"dog-ear-size\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\" \\u6298\\u89d2\\u5927\\u5c0f\",\"desc\":\"\\u503c\\u8d8a\\u5c0f\\uff0c\\u80fd\\u68c0\\u6d4b\\u5230\\u7684\\u6298\\u89d2\\u8d8a\\u5c0f\",\"ver\":0,\"pos\":0,\"fix-id\":34867,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":70,\"default\":70,\"range\":{\"min\":10,\"max\":300,\"step\":1},\"depend\":\"is-check-dog-ear==true\"},\"is-auto-strength\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u81ea\\u52a8\\u5206\\u7eb8\\u5f3a\\u5ea6\",\"desc\":\"\\u626b\\u63cf\\u4eea\\u81ea\\u52a8\\u4fee\\u6b63\\u5206\\u7eb8\\u529b\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34876,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"feed-strength-value\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\" \\u8fdb\\u7eb8\\u5931\\u8d25\\u7387\",\"desc\":\"\\u9ad8\\u4e8e\\u8be5\\u503c\\u65f6\\u626b\\u63cf\\u4eea\\u5c06\\u8c03\\u6574\\u5206\\u7eb8\\u529b\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34877,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.100000,\"max\":0.900000,\"step\":0.080000},\"depend\":\"is-auto-strength==true\"},\"feed-strength\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u5206\\u7eb8\\u5f3a\\u5ea6\",\"desc\":\"\\u8bbe\\u7f6e\\u626b\\u63cf\\u4eea\\u7684\\u5206\\u7eb8\\u529b\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34874,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":30,\"cur\":\"\\u4e00\\u822c\",\"default\":\"\\u4e00\\u822c\",\"range\":[\"\\u5f31\",\"\\u4e00\\u822c\",\"\\u5f3a\"],\"depend\":\"is-auto-strength!=true\"},\"time-to-sleep\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u4f11\\u7720\\u65f6\\u95f4\",\"desc\":\"\\u8bbe\\u7f6e\\u626b\\u63cf\\u4eea\\u7684\\u4f11\\u7720\\u65f6\\u95f4\",\"ver\":0,\"pos\":0,\"fix-id\":34875,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":36,\"cur\":\"\\u4e0d\\u4f11\\u7720\",\"default\":\"\\u4e0d\\u4f11\\u7720\",\"range\":[\"\\u4e0d\\u4f11\\u7720\",\"\\u4e94\\u5206\\u949f\",\"\\u5341\\u5206\\u949f\",\"\\u534a\\u5c0f\\u65f6\",\"\\u4e00\\u5c0f\\u65f6\",\"\\u4e24\\u5c0f\\u65f6\",\"\\u56db\\u5c0f\\u65f6\"]},\"total-cnt\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u5386\\u53f2\\u6eda\\u8f74\\u8ba1\\u6570\",\"desc\":\"\\u626b\\u63cf\\u4eea\\u4f7f\\u7528\\u4ee5\\u6765\\u626b\\u63cf\\u7eb8\\u5f20\\u603b\\u6570\",\"ver\":0,\"pos\":0,\"fix-id\":34889,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"drv-ver\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u9a71\\u52a8\\u7248\\u672c\\u53f7\",\"desc\":\"PC\\u7aef\\u9a71\\u52a8\\u7a0b\\u5e8f\\u7248\\u672c\",\"ver\":0,\"pos\":0,\"fix-id\":34890,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":48,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"company\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u5236\\u9020\\u5546\",\"desc\":\"\\u8bbe\\u5907\\u5236\\u9020\\u5546\",\"ver\":0,\"pos\":0,\"fix-id\":34891,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":128,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"copyright\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u7248\\u672c\\u4fe1\\u606f\",\"desc\":\"\\u7248\\u6743\\u58f0\\u660e\\u7b49\\u4fe1\\u606f\",\"ver\":0,\"pos\":0,\"fix-id\":34892,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":128,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"co-url\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u516c\\u53f8\\u7f51\\u5740\",\"desc\":\"\\u516c\\u53f8\\u5b98\\u7f51\\u6216\\u552e\\u540e\\u670d\\u52a1\\u7f51\\u7ad9\\u5730\\u5740\",\"ver\":0,\"pos\":0,\"fix-id\":34893,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":256,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"co-tel\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u516c\\u53f8\\u7535\\u8bdd\",\"desc\":\"\\u516c\\u53f8\\u8054\\u7cfb\\u7535\\u8bdd\",\"ver\":0,\"pos\":0,\"fix-id\":34894,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":129,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"co-addr\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u516c\\u53f8\\u5730\\u5740\",\"desc\":\"\\u516c\\u53f8\\u5730\\u5740\",\"ver\":0,\"pos\":0,\"fix-id\":34895,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":128,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"co-gps\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u516c\\u53f8GPS\",\"desc\":\"\\u516c\\u53f8\\u5730\\u56fe\\u5730\\u5740\",\"ver\":0,\"pos\":0,\"fix-id\":34896,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":256,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"dev-vid\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u8bbe\\u5907ID\",\"desc\":\"\\u8bbe\\u5907\\u5927\\u7c7bID\",\"ver\":0,\"pos\":0,\"fix-id\":34898,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"dev-pid\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"USB-PID\",\"desc\":\"\\u8bbe\\u5907\\u5728USB\\u4e2d\\u7684\\u4ea7\\u54c1ID\",\"ver\":0,\"pos\":0,\"fix-id\":34899,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"dev-name\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u8bbe\\u5907\\u540d\\u79f0\",\"desc\":\"\\u8bbe\\u5907\\u540d\\u79f0\",\"ver\":0,\"pos\":0,\"fix-id\":34900,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"dev-model\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u4ea7\\u54c1\\u7cfb\\u5217\",\"desc\":\"\\u8bbe\\u5907\\u6240\\u5c5e\\u4ea7\\u54c1\\u7cfb\\u5217\\u540d\\u79f0\",\"ver\":0,\"pos\":0,\"fix-id\":34901,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"dev-sn\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u5e8f\\u5217\\u53f7\",\"desc\":\"\\u8bbe\\u5907\\u5e8f\\u5217\\u53f7\",\"ver\":0,\"pos\":0,\"fix-id\":34902,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"fmw-ver\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u56fa\\u4ef6\\u7248\\u672c\",\"desc\":\"\\u8bbe\\u5907\\u56fa\\u4ef6\\u7248\\u672c\\u53f7\",\"ver\":0,\"pos\":0,\"fix-id\":34903,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"ip-addr\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"IP\",\"desc\":\"\\u8bbe\\u5907\\u8054\\u7f51\\u65f6\\u6240\\u5206\\u914d\\u7684IP\\u5730\\u5740\",\"ver\":0,\"pos\":0,\"fix-id\":34904,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"mac-addr\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"MAC\",\"desc\":\"\\u8bbe\\u5907\\u7f51\\u5361\\u5730\\u5740\",\"ver\":0,\"pos\":0,\"fix-id\":34905,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"roller-life\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u6eda\\u8f74\\u5bff\\u547d\",\"desc\":\"\\u8be5\\u8bbe\\u5907\\u6eda\\u8f74\\u8fc7\\u7eb8\\u7684\\u6700\\u5927\\u5f20\\u6570\",\"ver\":0,\"pos\":0,\"fix-id\":34907,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"paper-on\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u6709\\u7eb8\",\"desc\":\"\\u8bbe\\u5907\\u4e0a\\u662f\\u5426\\u6709\\u7eb8\",\"ver\":0,\"pos\":0,\"fix-id\":34912,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":false,\"default\":false},\"login\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u767b\\u5f55\",\"desc\":\"\\u7528\\u6237\\u767b\\u5f55\\u64cd\\u4f5c\",\"ver\":0,\"pos\":0,\"fix-id\":39168,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":64,\"auto\":false,\"cur\":\"false\",\"default\":\"false\"},\"logout\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u767b\\u51fa\",\"desc\":\"\\u7528\\u6237\\u767b\\u51fa\\u64cd\\u4f5c\",\"ver\":0,\"pos\":0,\"fix-id\":39169,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":64,\"auto\":false,\"cur\":\"false\",\"default\":\"false\"},\"roll-cnt\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u6eda\\u8f74\\u8ba1\\u6570\",\"desc\":\"\\u5f53\\u524d\\u6eda\\u8f74\\u5df2\\u7ecf\\u8fc7\\u7eb8\\u5f20\\u6570\",\"ver\":0,\"pos\":0,\"fix-id\":39170,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"drv-log\":{\"cat\":\"base\",\"group\":\"\\u9ad8\\u7ea7\\u8bbe\\u7f6e\",\"title\":\"\\u9a71\\u52a8\\u65e5\\u5fd7\",\"desc\":\"PC\\u7aef\\u9a71\\u52a8\\u5de5\\u4f5c\\u65e5\\u5fd7\",\"ver\":0,\"pos\":0,\"fix-id\":39171,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":256,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"devs-log\":{\"cat\":\"base\",\"group\":\"\\u9ad8\\u7ea7\\u8bbe\\u7f6e\",\"title\":\"\\u8bbe\\u5907\\u65e5\\u5fd7\",\"desc\":\"\\u8bbe\\u5907\\u5de5\\u4f5c\\u65e5\\u5fd7\",\"ver\":0,\"pos\":0,\"fix-id\":39172,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":256,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"}}" + "f\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207||is-anti-skew==true\"},\"margin\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u8fb9\\u7f18\\u7f29\\u8fdb\",\"desc\":\"\\u5bfb\\u627e\\u6587\\u7a3f\\u8fb9\\u7f18\\u65f6\\u5bf9\\u8fb9\\u7f18\\u7684\\u4fb5\\u5165\\u7a0b\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34853,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":5,\"default\":5,\"range\":{\"min\":2,\"max\":30,\"step\":1},\"depend\":\"is-erase-black-frame==true||paper==\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8||paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8||paper==\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207||is-anti-skew==true\"},\"is-dark-sample\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u6df1\\u8272\\u6837\\u5f20\",\"desc\":\"\\u542f\\u7528\\u8be5\\u6a21\\u5f0f\\u9632\\u6b62\\u6df1\\u8272\\u5e95\\u8272\\u7684\\u6587\\u7a3f\\u56fe\\u50cf\\u88ab\\u8bef\\u5904\\u7406\",\"ver\":0,\"pos\":0,\"fix-id\":34850,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"page!=\\u5bf9\\u6298&&is-erase-black-frame!=true&&paper!=\\u5339\\u914d\\u539f\\u59cb\\u5c3a\\u5bf8&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8&&paper!=\\u6700\\u5927\\u626b\\u63cf\\u5c3a\\u5bf8\\u81ea\\u52a8\\u88c1\\u5207&&is-anti-skew!=true\"},\"is-anti-permeate\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u9632\\u6b62\\u6e17\\u900f\",\"desc\":\"\\u9632\\u6b62\\u80cc\\u9762\\u56fe\\u6848\\u6e17\\u900f\",\"ver\":0,\"pos\":0,\"fix-id\":34855,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"permeate-level\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u9632\\u6b62\\u6e17\\u900f\\u7b49\\u7ea7\",\"desc\":\"\\u9009\\u62e9\\u9632\\u6b62\\u6e17\\u900f\\u7684\\u7b49\\u7ea7\",\"ver\":0,\"pos\":0,\"fix-id\":34856,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":30,\"cur\":\"\\u8f83\\u5f31\",\"default\":\"\\u8f83\\u5f31\",\"range\":[\"\\u5f31\",\"\\u8f83\\u5f31\",\"\\u4e00\\u822c\",\"\\u8f83\\u5f3a\",\"\\u5f3a\"],\"depend\":\"is-anti-permeate==true\"},\"is-rid-hole-l\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u7a7f\\u5b54\\u79fb\\u9664\\u2014\\u5de6\\u4fa7\",\"desc\":\"\\u7a7f\\u5b54\\u5728\\u7eb8\\u5f20\\u4e0a\\u7684\\u5de6\\u4fa7\",\"ver\":0,\"pos\":0,\"fix-id\":34879,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"search-hole-range-l\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u5de6\\u4fa7\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"desc\":\"\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"ver\":0,\"pos\":0,\"fix-id\":34880,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.000000,\"max\":0.500000,\"step\":0.050000},\"depend\":\"is-rid-hole-l==true\"},\"is-rid-hole-r\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u7a7f\\u5b54\\u79fb\\u9664\\u2014\\u53f3\\u4fa7\",\"desc\":\"\\u7a7f\\u5b54\\u5728\\u7eb8\\u5f20\\u4e0a\\u7684\\u53f3\\u4fa7\",\"ver\":0,\"pos\":0,\"fix-id\":34881,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"search-hole-range-r\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u53f3\\u4fa7\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"desc\":\"\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"ver\":0,\"pos\":0,\"fix-id\":34882,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.000000,\"max\":0.500000,\"step\":0.050000},\"depend\":\"is-rid-hole-r==true\"},\"is-rid-hole-t\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u7a7f\\u5b54\\u79fb\\u9664\\u2014\\u4e0a\\u4fa7\",\"desc\":\"\\u7a7f\\u5b54\\u5728\\u7eb8\\u5f20\\u7684\\u4e0a\\u90e8\",\"ver\":0,\"pos\":0,\"fix-id\":34883,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"search-hole-range-t\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u4e0a\\u4fa7\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"desc\":\"\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"ver\":0,\"pos\":0,\"fix-id\":34884,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.000000,\"max\":0.500000,\"step\":0.050000},\"depend\":\"is-rid-hole-t==true\"},\"is-rid-hole-b\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\"\\u7a7f\\u5b54\\u79fb\\u9664\\u2014\\u4e0b\\u4fa7\",\"desc\":\"\\u7a7f\\u5b54\\u5728\\u7eb8\\u5f20\\u7684\\u4e0b\\u90e8\",\"ver\":0,\"pos\":0,\"fix-id\":34885,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"search-hole-range-b\":{\"cat\":\"base\",\"group\":\"imgp\",\"title\":\" \\u4e0b\\u4fa7\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"desc\":\"\\u7a7f\\u5b54\\u641c\\u7d22\\u8303\\u56f4\\u5360\\u5e45\\u9762\\u6bd4\\u4f8b\",\"ver\":0,\"pos\":0,\"fix-id\":34886,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.000000,\"max\":0.500000,\"step\":0.050000},\"depend\":\"is-rid-hole-b==true\"},\"is-wait-scan\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u5f85\\u7eb8\\u626b\\u63cf\",\"desc\":\"\\u542f\\u7528\\u540e\\uff0c\\u6587\\u7a3f\\u653e\\u5165\\u626b\\u63cf\\u4eea\\u65f6\\u5c06\\u81ea\\u52a8\\u542f\\u52a8\\u626b\\u63cf\",\"ver\":0,\"pos\":0,\"fix-id\":34873,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"wait-scan-exit\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u5f85\\u7eb8\\u626b\\u63cf\\u9000\\u51fa\\u65f6\\u95f4\",\"desc\":\"\\u8bbe\\u7f6e\\u7ed3\\u675f\\u5f85\\u7eb8\\u626b\\u63cf\\u7684\\u65f6\\u95f4\",\"ver\":0,\"pos\":0,\"fix-id\":0,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":42,\"cur\":\"60s\",\"default\":\"60s\",\"range\":[\"15s\",\"30s\",\"60s\",\"2min\",\"4min\",\"8min\"],\"depend\":\"is-wait-scan==true\"},\"scan-mode\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u626b\\u63cf\\u5f20\\u6570\",\"desc\":\"\\u9009\\u62e9\\u6307\\u5b9a\\u6570\\u91cf\\u626b\\u63cf\\u6216\\u8fde\\u7eed\\u626b\\u63cf\",\"ver\":0,\"pos\":0,\"fix-id\":34862,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":54,\"cur\":\"\\u8fde\\u7eed\\u626b\\u63cf\",\"default\":\"\\u8fde\\u7eed\\u626b\\u63cf\",\"range\":[\"\\u8fde\\u7eed\\u626b\\u63cf\",\"\\u626b\\u63cf\\u6307\\u5b9a\\u5f20\\u6570\"],\"depend\":\"is-wait-scan==false\"},\"scan-count\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\" \\u626b\\u63cf\\u6570\\u91cf\",\"desc\":\"\\u626b\\u63cf\\u6307\\u5b9a\\u6570\\u91cf\",\"ver\":0,\"pos\":0,\"fix-id\":34863,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":1,\"default\":1,\"depend\":\"scan-mode.enabled&&scan-mode==\\u626b\\u63cf\\u6307\\u5b9a\\u5f20\\u6570\"},\"direction\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u6587\\u7a3f\\u65b9\\u5411\",\"desc\":\"\\u8bbe\\u7f6e\\u56fe\\u50cf\\u7684\\u65b9\\u5411\",\"ver\":0,\"pos\":0,\"fix-id\":34864,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":72,\"cur\":\"0\\u00b0\",\"default\":\"0\\u00b0\",\"range\":[\"0\\u00b0\",\"90\\u00b0\",\"180\\u00b0\",\"-90\\u00b0\",\"\\u81ea\\u52a8\\u6587\\u672c\\u65b9\\u5411\\u8bc6\\u522b\\u00b0\"]},\"is-rotate-bkg-180\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u80cc\\u9762\\u65cb\\u8f6c180\\u00b0\",\"desc\":\"\\u80cc\\u9762\\u626b\\u63cf\\u7684\\u56fe\\u50cf\\u65cb\\u8f6c180\\u00b0\",\"ver\":0,\"pos\":0,\"fix-id\":34865,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false,\"depend\":\"page!=\\u5355\\u9762&&page!=\\u5bf9\\u6298&&direction!=\\u81ea\\u52a8\\u6587\\u672c\\u65b9\\u5411\\u8bc6\\u522b\\u00b0\"},\"is-ultrosonic\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u8d85\\u58f0\\u6ce2\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u662f\\u5426\\u51fa\\u73b0\\u53cc\\u5f20\\u9001\\u5165\",\"ver\":0,\"pos\":0,\"fix-id\":34860,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":true,\"default\":true},\"double-feed\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u53cc\\u5f20\\u56fe\\u7247\\u5904\\u7406\",\"desc\":\"\\u68c0\\u6d4b\\u5230\\u53cc\\u5f20\\u8fdb\\u7eb8\\u540e\\u7684\\u5904\\u7406\\u65b9\\u5f0f\",\"ver\":0,\"pos\":0,\"fix-id\":34872,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":72,\"cur\":\"\\u4e22\\u5f03\\u56fe\\u50cf\\u5e76\\u505c\\u6b62\\u626b\\u63cf\",\"default\":\"\\u4e22\\u5f03\\u56fe\\u50cf\\u5e76\\u505c\\u6b62\\u626b\\u63cf\",\"range\":[\"\\u4e22\\u5f03\\u56fe\\u50cf\\u5e76\\u505c\\u6b62\\u626b\\u63cf\",\"\\u4e0a\\u4f20\\u56fe\\u50cf\\u5e76\\u505c\\u6b62\\u626b\\u63cf\"],\"depend\":\"is-ultrosonic==true\"},\"is-staple\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u88c5\\u8ba2\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u662f\\u5426\\u51fa\\u73b0\\u7c98\\u8fde\\u9001\\u5165\",\"ver\":0,\"pos\":0,\"fix-id\":34861,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"is-check-askew\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u6b6a\\u659c\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u662f\\u5426\\u51fa\\u73b0\\u6b6a\\u659c\\u9001\\u5165\",\"ver\":0,\"pos\":0,\"fix-id\":34868,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":true,\"default\":true},\"askew-range\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u6b6a\\u659c\\u5bb9\\u5fcd\\u5ea6\",\"desc\":\"\\u503c\\u8d8a\\u5c0f\\uff0c\\u80fd\\u5bb9\\u5fcd\\u5f97\\u9001\\u5165\\u6587\\u7a3f\\u6b6a\\u659c\\u89d2\\u5ea6\\u8d8a\\u5c0f\",\"ver\":0,\"pos\":0,\"fix-id\":34869,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":3,\"default\":3,\"range\":{\"min\":1,\"max\":5,\"step\":1},\"depend\":\"is-check-askew==true\"},\"is-check-dog-ear\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u6298\\u89d2\\u68c0\\u6d4b\",\"desc\":\"\\u68c0\\u6d4b\\u6587\\u7a3f\\u662f\\u5426\\u5b58\\u5728", + "\\u6298\\u89d2\",\"ver\":0,\"pos\":0,\"fix-id\":34866,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"dog-ear-size\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\" \\u6298\\u89d2\\u5927\\u5c0f\",\"desc\":\"\\u503c\\u8d8a\\u5c0f\\uff0c\\u80fd\\u68c0\\u6d4b\\u5230\\u7684\\u6298\\u89d2\\u8d8a\\u5c0f\",\"ver\":0,\"pos\":0,\"fix-id\":34867,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":70,\"default\":70,\"range\":{\"min\":10,\"max\":300,\"step\":1},\"depend\":\"is-check-dog-ear==true\"},\"is-auto-strength\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u81ea\\u52a8\\u5206\\u7eb8\\u5f3a\\u5ea6\",\"desc\":\"\\u626b\\u63cf\\u4eea\\u81ea\\u52a8\\u4fee\\u6b63\\u5206\\u7eb8\\u529b\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34876,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"size\":4,\"cur\":false,\"default\":false},\"feed-strength-value\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\" \\u8fdb\\u7eb8\\u5931\\u8d25\\u7387\",\"desc\":\"\\u9ad8\\u4e8e\\u8be5\\u503c\\u65f6\\u626b\\u63cf\\u4eea\\u5c06\\u8c03\\u6574\\u5206\\u7eb8\\u529b\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34877,\"type\":\"float\",\"unit\":\"none\",\"affect\":0,\"size\":8,\"cur\":0.100000,\"default\":0.100000,\"range\":{\"min\":0.100000,\"max\":0.900000,\"step\":0.080000},\"depend\":\"is-auto-strength==true\"},\"feed-strength\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u5206\\u7eb8\\u5f3a\\u5ea6\",\"desc\":\"\\u8bbe\\u7f6e\\u626b\\u63cf\\u4eea\\u7684\\u5206\\u7eb8\\u529b\\u5ea6\",\"ver\":0,\"pos\":0,\"fix-id\":34874,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":30,\"cur\":\"\\u4e00\\u822c\",\"default\":\"\\u4e00\\u822c\",\"range\":[\"\\u5f31\",\"\\u4e00\\u822c\",\"\\u5f3a\"],\"depend\":\"is-auto-strength!=true\"},\"time-to-sleep\":{\"cat\":\"base\",\"group\":\"feeder\",\"title\":\"\\u4f11\\u7720\\u65f6\\u95f4\",\"desc\":\"\\u8bbe\\u7f6e\\u626b\\u63cf\\u4eea\\u7684\\u4f11\\u7720\\u65f6\\u95f4\",\"ver\":0,\"pos\":0,\"fix-id\":34875,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":36,\"cur\":\"\\u4e0d\\u4f11\\u7720\",\"default\":\"\\u4e0d\\u4f11\\u7720\",\"range\":[\"\\u4e0d\\u4f11\\u7720\",\"\\u4e94\\u5206\\u949f\",\"\\u5341\\u5206\\u949f\",\"\\u534a\\u5c0f\\u65f6\",\"\\u4e00\\u5c0f\\u65f6\",\"\\u4e24\\u5c0f\\u65f6\",\"\\u56db\\u5c0f\\u65f6\"]},\"total-cnt\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u5386\\u53f2\\u6eda\\u8f74\\u8ba1\\u6570\",\"desc\":\"\\u626b\\u63cf\\u4eea\\u4f7f\\u7528\\u4ee5\\u6765\\u626b\\u63cf\\u7eb8\\u5f20\\u603b\\u6570\",\"ver\":0,\"pos\":0,\"fix-id\":34889,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"dev-vid\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u8bbe\\u5907ID\",\"desc\":\"\\u8bbe\\u5907\\u5927\\u7c7bID\",\"ver\":0,\"pos\":0,\"fix-id\":34898,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"dev-pid\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"USB-PID\",\"desc\":\"\\u8bbe\\u5907\\u5728USB\\u4e2d\\u7684\\u4ea7\\u54c1ID\",\"ver\":0,\"pos\":0,\"fix-id\":34899,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"dev-name\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u8bbe\\u5907\\u540d\\u79f0\",\"desc\":\"\\u8bbe\\u5907\\u540d\\u79f0\",\"ver\":0,\"pos\":0,\"fix-id\":34900,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"dev-model\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u4ea7\\u54c1\\u7cfb\\u5217\",\"desc\":\"\\u8bbe\\u5907\\u6240\\u5c5e\\u4ea7\\u54c1\\u7cfb\\u5217\\u540d\\u79f0\",\"ver\":0,\"pos\":0,\"fix-id\":34901,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"dev-sn\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u5e8f\\u5217\\u53f7\",\"desc\":\"\\u8bbe\\u5907\\u5e8f\\u5217\\u53f7\",\"ver\":0,\"pos\":0,\"fix-id\":34902,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"fmw-ver\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u56fa\\u4ef6\\u7248\\u672c\",\"desc\":\"\\u8bbe\\u5907\\u56fa\\u4ef6\\u7248\\u672c\\u53f7\",\"ver\":0,\"pos\":0,\"fix-id\":34903,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"ip-addr\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"IP\",\"desc\":\"\\u8bbe\\u5907\\u8054\\u7f51\\u65f6\\u6240\\u5206\\u914d\\u7684IP\\u5730\\u5740\",\"ver\":0,\"pos\":0,\"fix-id\":34904,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"mac-addr\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"MAC\",\"desc\":\"\\u8bbe\\u5907\\u7f51\\u5361\\u5730\\u5740\",\"ver\":0,\"pos\":0,\"fix-id\":34905,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":96,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"},\"roller-life\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u6eda\\u8f74\\u5bff\\u547d\",\"desc\":\"\\u8be5\\u8bbe\\u5907\\u6eda\\u8f74\\u8fc7\\u7eb8\\u7684\\u6700\\u5927\\u5f20\\u6570\",\"ver\":0,\"pos\":0,\"fix-id\":34907,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"paper-on\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u6709\\u7eb8\",\"desc\":\"\\u8bbe\\u5907\\u4e0a\\u662f\\u5426\\u6709\\u7eb8\",\"ver\":0,\"pos\":0,\"fix-id\":34912,\"type\":\"bool\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":false,\"default\":false},\"roll-cnt\":{\"cat\":\"base\",\"group\":\"\\u53ea\\u8bfb\\u5c5e\\u6027\",\"title\":\"\\u6eda\\u8f74\\u8ba1\\u6570\",\"desc\":\"\\u5f53\\u524d\\u6eda\\u8f74\\u5df2\\u7ecf\\u8fc7\\u7eb8\\u5f20\\u6570\",\"ver\":0,\"pos\":0,\"fix-id\":39170,\"type\":\"int\",\"unit\":\"none\",\"affect\":0,\"readonly\":true,\"size\":4,\"auto\":false,\"cur\":0,\"default\":0},\"devs-log\":{\"cat\":\"base\",\"group\":\"\\u9ad8\\u7ea7\\u8bbe\\u7f6e\",\"title\":\"\\u8bbe\\u5907\\u65e5\\u5fd7\",\"desc\":\"\\u8bbe\\u5907\\u5de5\\u4f5c\\u65e5\\u5fd7\",\"ver\":0,\"pos\":0,\"fix-id\":39172,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"size\":256,\"auto\":false,\"cur\":\"0\",\"default\":\"0\"}}" }; namespace settings diff --git a/hgdriver/hgdev/scanner_manager.cpp b/hgdriver/hgdev/scanner_manager.cpp index da6233f..70a3b86 100644 --- a/hgdriver/hgdev/scanner_manager.cpp +++ b/hgdriver/hgdev/scanner_manager.cpp @@ -7,6 +7,9 @@ #include "raw_src.h" #include "../../../sdk/include/huagao/brand.h" +#include "user-opt/user.h" +#include "user-opt/offline_opt.h" + #if !defined(WIN32) && !defined(_WIN64) #endif @@ -146,7 +149,7 @@ bool hg_scanner_mgr::read_over_with_eof_ = true; uint32_t hg_scanner_mgr::unique_img_id_ = 0;; std::mutex hg_scanner_mgr::mutex_img_id; -hg_scanner_mgr::hg_scanner_mgr() : same_ind_(1), user_(""), pwd_(""), cf_name("") +hg_scanner_mgr::hg_scanner_mgr() : same_ind_(1), cf_name("") { std::string cfgf(utils::get_local_data_path() + PATH_SEPARATOR + "config" + PATH_SEPARATOR + "debug.cfg"); char buf[260] = {0}; @@ -163,6 +166,9 @@ hg_scanner_mgr::hg_scanner_mgr() : same_ind_(1), user_(""), pwd_(""), cf_name("" url_en = BRAND_COMPANY_URL_EN; url_link_en = BRAND_URL_COMPANY_URL_EN; } + + user_ = new hguser(); + offline_ = new offline_opts(user_); } hg_scanner_mgr::~hg_scanner_mgr() { @@ -174,6 +180,8 @@ hg_scanner_mgr::~hg_scanner_mgr() online_devices_.clear(); } usb_manager::clear(); + offline_->release(); + delete user_; } int hg_scanner_mgr::ui_default_callback(scanner_handle h, int ev, void* data, unsigned int* len, void* param) @@ -226,6 +234,17 @@ void hg_scanner_mgr::set_version(int hh, int hl, int lh, int ll) hg_scanner_mgr::ver_build_ = lh; hg_scanner_mgr::ver_patch_ = ll; } +void hg_scanner_mgr::get_version(int* hh, int* hl, int* lh, int* ll) +{ + if(hh) + *hh = hg_scanner_mgr::ver_major_; + if(hl) + *hl = hg_scanner_mgr::ver_minor_; + if(lh) + *lh = hg_scanner_mgr::ver_build_; + if(ll) + *ll = hg_scanner_mgr::ver_patch_; +} void hg_scanner_mgr::set_exe_name(const char* path, const char* name) { std::string cfgf(utils::get_local_data_path() + PATH_SEPARATOR + "config" + PATH_SEPARATOR + "debug.cfg"); @@ -823,61 +842,43 @@ scanner_err hg_scanner_mgr::hg_scanner_close(scanner_handle h, bool force) } scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const char* name, char* data, long* len, int type) { + scanner_err err = SCANNER_ERR_OK; + if (!len) return SCANNER_ERR_INVALID_PARAMETER; if (!h) { - *len = 0; + if (name == PARAM_ALL) + { + std::string all(offline_->get_json_text()); + if (*len <= all.length()) + { + *len = all.length() + 1; - return SCANNER_ERR_OK; + err = SCANNER_ERR_INSUFFICIENT_MEMORY; + } + else + { + strcpy(data, all.c_str()); + *len = all.length(); + } + } + else + err = (scanner_err)offline_->get_value(name, data, (int*)len, type == OPT_VAL_CURRENT); + + return err; + } + else if (name && name != PARAM_ALL) + { + err = (scanner_err)offline_->get_value(name, data, (int*)len, type == OPT_VAL_CURRENT); + if (err != SCANNER_ERR_NO_DATA) + return err; } // global options ... if (!IS_PTR_NUMBER(name)) { - if (strcmp(name, SANE_STD_OPT_NAME_DRIVER_VERSION) == 0) - { - char buf[40] = { 0 }; - - sprintf(buf, "%d.%d.%d.%d", hg_scanner_mgr::ver_major_, hg_scanner_mgr::ver_minor_, hg_scanner_mgr::ver_build_, hg_scanner_mgr::ver_patch_); - if (*len <= strlen(buf)) - { - *len = strlen(buf) + 1; - - return SCANNER_ERR_INSUFFICIENT_MEMORY; - } - - strcpy(data, buf); - *len = strlen(buf); - - return SCANNER_ERR_OK; - } - -#define TRY_STR_OPT(n, optn) \ - if (strcmp(name, SANE_STD_OPT_NAME_##n) == 0) \ - { \ - std::string n(GET_LANG(optn, nullptr)); \ - if (*len <= n.length()) \ - { \ - *len = n.length() + 1; \ - \ - return SCANNER_ERR_INSUFFICIENT_MEMORY; \ - } \ - \ - strcpy(data, n.c_str()); \ - *len = n.length(); \ - \ - return SCANNER_ERR_OK; \ - } - - TRY_STR_OPT(MANUFACTURER, COMPANY_NAME); - TRY_STR_OPT(COPYRIGHT, BRAND_COPYRIGHT); - TRY_STR_OPT(CO_URL, url_link_en.c_str()); - TRY_STR_OPT(CO_TEL, BRAND_COMPANY_TEL); - TRY_STR_OPT(CO_ADDR, BRAND_COMPANY_ADDRESS); - TRY_STR_OPT(CO_GPS, BRAND_URL_GPS); - // following options getting operation is implemented in 'set' ... { if (strcmp(SANE_STD_OPT_NAME_DEVICE_VID, name) == 0 || @@ -894,24 +895,12 @@ scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const cha return (scanner_err)SCAN_PTR(h)->set_setting(name, data, false); } - if (strcmp(SANE_STD_OPT_NAME_DRIVER_LOG, name) == 0) + if (strcmp(SANE_STD_OPT_NAME_DEVICE_LOG, name) == 0) { if (!data) return SCANNER_ERR_INVALID_PARAMETER; - if (user_ == ADMIN_NAME && pwd_ == ADMIN_PWD) - { - return (scanner_err)utils::copy_log_file_to(data); - } - else - return SCANNER_ERR_ACCESS_DENIED; - } - else if (strcmp(SANE_STD_OPT_NAME_DEVICE_LOG, name) == 0) - { - if (!data) - return SCANNER_ERR_INVALID_PARAMETER; - - if (user_ == ADMIN_NAME && pwd_ == ADMIN_PWD) + if (user_->has_privilege(USER_PRIVILEGE_LOCAL_MGR)) { char path[300] = { 0 }; int l = LOG_FILE_DEVICE, @@ -934,9 +923,7 @@ scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const cha else if (strcmp(SANE_STD_OPT_NAME_CUSTOM_GAMMA, name) == 0) return (scanner_err)SCAN_PTR(h)->device_io_control(IO_CTRL_CODE_GET_CUSTOM_GAMMA, data, (unsigned int*)len); - if (strcmp(SANE_STD_OPT_NAME_LOGIN, name) == 0 || - strcmp(SANE_STD_OPT_NAME_LOGOUT, name) == 0 || - strcmp(SANE_STD_OPT_NAME_TRANSFORM_IMAGE_FORMAT, name) == 0 || + if (strcmp(SANE_STD_OPT_NAME_TRANSFORM_IMAGE_FORMAT, name) == 0 || strcmp(SANE_STD_OPT_NAME_FREE_BUFFER, name) == 0) return SCANNER_ERR_DEVICE_NOT_SUPPORT; @@ -955,63 +942,36 @@ scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const cha } } - int l = *len, - err = SCAN_PTR(h)->get_setting(name, data, &l, type); - + int l = *len; + + err = (scanner_err)SCAN_PTR(h)->get_setting(name, data, &l, type); *len = l; - return (scanner_err)err; + return err; } scanner_err hg_scanner_mgr::hg_scanner_set_parameter(scanner_handle h, const char* name, void* data, bool to_default) { + scanner_err err = SCANNER_ERR_INVALID_PARAMETER; + + if (!h) + { + if (name) + err = (scanner_err)offline_->set_value(name, data); + + return err; + } + else if (name) + { + err = (scanner_err)offline_->set_value(name, data); + if (err != SCANNER_ERR_NO_DATA) + return err; + } + if (!IS_PTR_NUMBER(name)) { - if (strcmp(SANE_STD_OPT_NAME_CO_GPS, name) == 0 || - strcmp(SANE_STD_OPT_NAME_CO_ADDR, name) == 0 || - strcmp(SANE_STD_OPT_NAME_CO_TEL, name) == 0 || - strcmp(SANE_STD_OPT_NAME_CO_URL, name) == 0 || - strcmp(SANE_STD_OPT_NAME_COPYRIGHT, name) == 0 || - strcmp(SANE_STD_OPT_NAME_MANUFACTURER, name) == 0 || - strcmp(SANE_STD_OPT_NAME_DRIVER_VERSION, name) == 0) - return SCANNER_ERR_DEVICE_NOT_SUPPORT; - - if (strcmp(SANE_STD_OPT_NAME_LOGIN, name) == 0) + if (strcmp(SANE_STD_OPT_NAME_DEVICE_LOG, name) == 0) { - // str32 + 32 - char* n = (char*)data, - * p = n + 32; - user_ = n; - pwd_ = p; - - return SCANNER_ERR_OK; SCANNER_ERR_ACCESS_DENIED; - } - else if (strcmp(SANE_STD_OPT_NAME_LOGOUT, name) == 0) - { - // str32 + 32 - char* n = (char*)data, - * p = n + 32; - if (user_ == n && pwd_ == p) - { - user_ = ""; - pwd_ = ""; - - return SCANNER_ERR_OK; - } - - return SCANNER_ERR_ACCESS_DENIED; - } - else if (strcmp(SANE_STD_OPT_NAME_DRIVER_LOG, name) == 0) - { - if (user_ == ADMIN_NAME && pwd_ == ADMIN_PWD) - { - return (scanner_err)utils::clear_log_file(); - } - - return SCANNER_ERR_ACCESS_DENIED; - } - else if (strcmp(SANE_STD_OPT_NAME_DEVICE_LOG, name) == 0) - { - if (user_ == ADMIN_NAME && pwd_ == ADMIN_PWD) + if (user_->has_privilege(USER_PRIVILEGE_LOCAL_MGR)) { return SCANNER_ERR_DEVICE_NOT_SUPPORT; } @@ -1020,7 +980,7 @@ scanner_err hg_scanner_mgr::hg_scanner_set_parameter(scanner_handle h, const cha } else if (strcmp(SANE_STD_OPT_NAME_ROLLER_COUNT, name) == 0) { - if (user_ == ADMIN_NAME && pwd_ == ADMIN_PWD) + if (user_->has_privilege(USER_PRIVILEGE_LOCAL_MGR)) { int* len = nullptr; return (scanner_err)SCAN_PTR(h)->device_io_control(IO_CTRL_CODE_SET_CLEAR_ROLLER_COUNT, data, (unsigned*)len); diff --git a/hgdriver/hgdev/scanner_manager.h b/hgdriver/hgdev/scanner_manager.h index c71df2b..d87b30d 100644 --- a/hgdriver/hgdev/scanner_manager.h +++ b/hgdriver/hgdev/scanner_manager.h @@ -37,6 +37,8 @@ //#define hg_scanner_mgr cts_scanner_mgr //#endif class hg_scanner; +class hguser; +class offline_opts; class hg_scanner_mgr { @@ -64,8 +66,8 @@ class hg_scanner_mgr std::mutex mutex_dev_; unsigned int same_ind_; - std::string user_; - std::string pwd_; + hguser* user_; + offline_opts* offline_; static sane_callback event_callback_; static bool async_io_enabled_; @@ -104,6 +106,7 @@ public: static hg_scanner_mgr* instance(sane_callback cb = NULL); static void clear(void); static void set_version(int hh, int hl, int lh, int ll); + static void get_version(int* hh, int* hl, int* lh, int* ll); static void set_exe_name(const char* path, const char* name); static std::string get_pe_name(std::string* path = nullptr); enum diff --git a/hgdriver/hgdev/user-opt/device_opt.cpp b/hgdriver/hgdev/user-opt/device_opt.cpp index 6f78908..d40aa71 100644 --- a/hgdriver/hgdev/user-opt/device_opt.cpp +++ b/hgdriver/hgdev/user-opt/device_opt.cpp @@ -1434,6 +1434,21 @@ int device_option::count(void) else return 0; } +bool device_option::is_auto_restore_default(const char* name) +{ + gb_json* jsn = now_ ? now_ : origin_, + * child = nullptr; + bool support = true; + + jsn->get_value(name, child); + if (child) + { + child->get_value("auto", support); + child->release(); + } + + return support; +} std::string device_option::get_name_by_sane_id(int sane_ind) { std::string value(""); @@ -1442,7 +1457,8 @@ std::string device_option::get_name_by_sane_id(int sane_ind) if (sane_ind > 0 && sane_ind - 1 < jsn->children()) { gb_json* child = now_->child(sane_ind - 1); - child->get_value("name", value); + //child->get_value("name", value); + value = child->key(); child->release(); } diff --git a/hgdriver/hgdev/user-opt/device_opt.h b/hgdriver/hgdev/user-opt/device_opt.h index 4da7d97..f91962e 100644 --- a/hgdriver/hgdev/user-opt/device_opt.h +++ b/hgdriver/hgdev/user-opt/device_opt.h @@ -215,6 +215,7 @@ public: int update_data(const char* name, void* value); // return scanner_err. name and value would be null if invoked for language changed int count(void); // return option count + bool is_auto_restore_default(const char* name); std::string get_name_by_sane_id(int sane_ind); std::string get_option_value_type(const char* name); std::string get_option_value(const char* name, int type/*OPT_VAL_xxx*/, int* size = nullptr); // return whole json-text if name was null diff --git a/hgdriver/hgdev/user-opt/user.cpp b/hgdriver/hgdev/user-opt/user.cpp index 82eb6bd..f37fe8c 100644 --- a/hgdriver/hgdev/user-opt/user.cpp +++ b/hgdriver/hgdev/user-opt/user.cpp @@ -6,9 +6,6 @@ -static std::string device_opt_json[] = { - "{\"login\":{\"cat\":\"base\",\"group\":\"\\u9ad8\\u7ea7\\u8bbe\\u7f6e\",\"title\":\"\\u7528\\u6237\\u767b\\u5f55\",\"desc\":\"\\u767b\\u5f55\\u7528\\u6237\\u8d26\\u53f7\",\"ver\":0,\"pos\":0,\"fix-id\":39168,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"visible\":false,\"enabled\":false,\"size\":64,\"cur\":\"\",\"default\":\"\"},\"logout\":{\"cat\":\"base\",\"group\":\"\\u9ad8\\u7ea7\\u8bbe\\u7f6e\",\"title\":\"\\u7528\\u6237\\u767b\\u51fa\",\"desc\":\"\\u9000\\u51fa\\u767b\\u5f55\\u7528\\u6237\\u8d26\\u53f7\",\"ver\":0,\"pos\":0,\"fix-id\":39169,\"type\":\"string\",\"unit\":\"none\",\"affect\":0,\"visible\":false,\"enabled\":false,\"size\":64,\"cur\":\"\",\"default\":\"\"}}" -}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // memory management ... @@ -30,7 +27,7 @@ int hguser::login(const char* name, const char* pwd) // higher privilege checks must be more complex, to be implementing ... } - return 0; + return SCANNER_ERR_OK; } int hguser::logout(const char* name, const char* pwd) { @@ -50,5 +47,5 @@ int hguser::logout(const char* name, const char* pwd) bool hguser::has_privilege(int priv) { - return priv & priv_ == priv; + return (priv & priv_) == priv; } diff --git a/hgdriver/hgdev/user-opt/user.h b/hgdriver/hgdev/user-opt/user.h index de3c303..404d27a 100644 --- a/hgdriver/hgdev/user-opt/user.h +++ b/hgdriver/hgdev/user-opt/user.h @@ -7,22 +7,6 @@ #include -class sane_opt_provider -{ -public: - sane_opt_provider(); - -protected: - virtual ~sane_opt_provider(); - -public: - virtual std::string get_json_text(void) = 0; - virtual int set_value(const char* name, void* value) = 0; - virtual void enable(const char* name, bool enabled) = 0; - virtual bool is_enable(const char* name) = 0; - virtual bool has(const char* name) = 0; -}; - class hguser { std::string name_; diff --git a/hgsane/sane_opt/sane_opts.cpp b/hgsane/sane_opt/sane_opts.cpp index 0bbe285..85abb13 100644 --- a/hgsane/sane_opt/sane_opts.cpp +++ b/hgsane/sane_opt/sane_opts.cpp @@ -398,7 +398,8 @@ SANE_Option_Descriptor* device_opts::get_opt_descriptor(const void* opt, int* fi if (IS_PTR_NUMBER(opt)) { int sn = (int)opt; - sn -= ind_base; + if(sn < SANE_OPT_ID_BASE) + sn -= ind_base; if (opts_.count(sn)) { if (fix_id) diff --git a/twain/ds/scanner.cpp b/twain/ds/scanner.cpp index facec23..7450df1 100644 --- a/twain/ds/scanner.cpp +++ b/twain/ds/scanner.cpp @@ -558,6 +558,7 @@ int scanner::open(void) scanner::get_scanner_name(model_.c_str(), que); + init_options_id(); scanner_name_ = ""; if (que.empty()) return SCANNER_ERR_DEVICE_NOT_FOUND;