diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index 7f4a427..5f61221 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -1,5 +1,6 @@ #include "hg_scanner.h" #include "../../sdk/hginclude/hg_log.h" +#include "sane/sane_option_definitions.h" #ifdef WIN32 #include "scanner_manager.h" @@ -26,6 +27,9 @@ hg_scanner::hg_scanner(ScannerSerial serial { custom_gamma_val_ = new SANE_Gamma; memset(custom_gamma_val_, 0, sizeof(SANE_Gamma)); +#ifdef MAPPING_FUNCTION_IN_BASE + init_setting_map(setting_map_, ARRAY_SIZE(setting_map_)); +#endif paper_size_mm_.cx = 210; paper_size_mm_.cy = 297; @@ -215,6 +219,124 @@ void hg_scanner::init_setting_map(int* setting_map, int count) for (int i = 0; i < count; ++i) setting_map[i] = -1; } +void hg_scanner::set_setting_map(int sn, const char* title) +{ + std::string val(title); + int empty = 0; + + while (empty < val.length() && val[empty] == ' ') + empty++; + val.erase(0, empty); + + HG_VLOG_MINI_2(HG_LOG_LEVEL_DEBUG_INFO, "title: '%s', val: '%s'\n", title, val.c_str()); + + if (val == OPTION_TITLE_HFMRSZ) + setting_map_[HG_BASE_SETTING_INDEX_RESTORE_DEFAULT_SETTINGS] = sn; + else if (val == OPTION_TITLE_BZ) + setting_map_[HG_BASE_SETTING_INDEX_HELP] = sn; + else if (val == OPTION_TITLE_YSMS) + setting_map_[HG_BASE_SETTING_INDEX_COLOR_MODE] = sn; + else if (val == OPTION_TITLE_DLSC) + setting_map_[HG_BASE_SETTING_INDEX_MULTI_OUT] = sn; + else if (val == OPTION_TITLE_HDHHBTX_CS) + setting_map_[HG_BASE_SETTING_INDEX_ERASE_COLOR] = sn; + else if (val == OPTION_TITLE_24WCSTX_DLSCCH) + setting_map_[HG_BASE_SETTING_INDEX_ERASE_MULTI_OUT_RED] = sn; + else if (val == OPTION_TITLE_24WCSTX_DTKCH) + setting_map_[HG_BASE_SETTING_INDEX_ERASE_ANSWER_RED] = sn; + else if (val == OPTION_TITLE_BJYC) + setting_map_[HG_BASE_SETTING_INDEX_ERASE_BACKGROUND] = sn; + else if (val == OPTION_TITLE_BJSCFDFW) + setting_map_[HG_BASE_SETTING_INDEX_ERASE_BACKGROUND_RANGE] = sn; + else if (val == OPTION_TITLE_HBTXZDYH) + setting_map_[HG_BASE_SETTING_INDEX_NOISE_OPTIMIZE] = sn; + else if (val == OPTION_TITLE_ZDYHCC) + setting_map_[HG_BASE_SETTING_INDEX_NOISE_OPTIMIZE_SIZE] = sn; + else if (val == OPTION_TITLE_ZZCC) + setting_map_[HG_BASE_SETTING_INDEX_PAPER] = sn; + else if (val == OPTION_TITLE_CCJC) + setting_map_[HG_BASE_SETTING_INDEX_PAPER_SIZE_CHECK] = sn; + else if (val == OPTION_TITLE_ZDYSMQY) + setting_map_[HG_BASE_SETTING_INDEX_IS_CUSTOM_AREA] = sn; + else if (val == OPTION_TITLE_SMQYZCmm) + setting_map_[HG_BASE_SETTING_INDEX_CUSTOM_AREA_LEFT] = sn; + else if (val == OPTION_TITLE_SMQYYCmm) + setting_map_[HG_BASE_SETTING_INDEX_CUSTOM_AREA_RIGHT] = sn; + else if (val == OPTION_TITLE_SMQYSCmm) + setting_map_[HG_BASE_SETTING_INDEX_CUSTOM_AREA_TOP] = sn; + else if (val == OPTION_TITLE_SMQYXCmm) + setting_map_[HG_BASE_SETTING_INDEX_CUSTOM_AREA_BOTTOM] = sn; + else if (val == OPTION_TITLE_SMYM) + setting_map_[HG_BASE_SETTING_INDEX_PAGE] = sn; + else if (val == OPTION_TITLE_TGKBYLMD) + setting_map_[HG_BASE_SETTING_INDEX_PAGE_OMIT_EMPTY_LEVEL] = sn; + else if (val == OPTION_TITLE_FBL) + setting_map_[HG_BASE_SETTING_INDEX_RESOLUTION] = sn; + else if (val == OPTION_TITLE_TXZL) + setting_map_[HG_BASE_SETTING_INDEX_IMG_QUALITY] = sn; + else if (val == OPTION_TITLE_JHZFM) + setting_map_[HG_BASE_SETTING_INDEX_EXCHANGE] = sn; + else if (val == OPTION_TITLE_TXCF) + setting_map_[HG_BASE_SETTING_INDEX_SPLIT] = sn; + else if (val == OPTION_TITLE_ZDJP) + setting_map_[HG_BASE_SETTING_INDEX_AUTO_CORRECT] = sn; + else if (val == OPTION_TITLE_CKYC) + setting_map_[HG_BASE_SETTING_INDEX_RID_HOLE] = sn; + else if (val == OPTION_TITLE_CKSSFWZFMBL) + setting_map_[HG_BASE_SETTING_INDEX_RID_HOLE_RANGE] = sn; + else if (val == OPTION_TITLE_QYSDQX) + setting_map_[HG_BASE_SETTING_INDEX_IS_CUSTOM_GAMMA] = sn; + else if (val == OPTION_TITLE_LDZ) + setting_map_[HG_BASE_SETTING_INDEX_BRIGHT] = sn; + else if (val == OPTION_TITLE_DBD) + setting_map_[HG_BASE_SETTING_INDEX_CONTRAST] = sn; + else if (val == OPTION_TITLE_GMZ) + setting_map_[HG_BASE_SETTING_INDEX_GAMMA] = sn; + else if (val == OPTION_TITLE_RHYMH) + setting_map_[HG_BASE_SETTING_INDEX_SHARPEN] = sn; + else if (val == OPTION_TITLE_SSYZ) + setting_map_[HG_BASE_SETTING_INDEX_DARK_SAMPLE] = sn; + else if (val == OPTION_TITLE_XCHK) + setting_map_[HG_BASE_SETTING_INDEX_ERASE_BLACK_FRAME] = sn; + else if (val == OPTION_TITLE_YZ) + setting_map_[HG_BASE_SETTING_INDEX_THRESHOLD] = sn; + else if (val == OPTION_TITLE_BJKZDJ) + setting_map_[HG_BASE_SETTING_INDEX_ANTI_NOISE_LEVEL] = sn; + else if (val == OPTION_TITLE_BYSJ) + setting_map_[HG_BASE_SETTING_INDEX_MARGIN] = sn; + else if (val == OPTION_TITLE_BJTCFS) + setting_map_[HG_BASE_SETTING_INDEX_FILL_BACKGROUND] = sn; + else if (val == OPTION_TITLE_FZST) + setting_map_[HG_BASE_SETTING_INDEX_PERMEATE] = sn; + else if (val == OPTION_TITLE_FZSTDJ) + setting_map_[HG_BASE_SETTING_INDEX_PERMEATE_LV] = sn; + else if (val == OPTION_TITLE_QCMW) + setting_map_[HG_BASE_SETTING_INDEX_REMOVE_MORR] = sn; + else if (val == OPTION_TITLE_CWKS) + setting_map_[HG_BASE_SETTING_INDEX_ERROR_EXTENTION] = sn; + else if (val == OPTION_TITLE_CWW) + setting_map_[HG_BASE_SETTING_INDEX_REMOVE_TXTTURE] = sn; + else if (val == OPTION_TITLE_CSBJC) + setting_map_[HG_BASE_SETTING_INDEX_ULTRASONIC_CHECK] = sn; + else if (val == OPTION_TITLE_ZDJC) + setting_map_[HG_BASE_SETTING_INDEX_STAPLE_CHECK] = sn; + else if (val == OPTION_TITLE_SMZS) + setting_map_[HG_BASE_SETTING_INDEX_SCAN_MODE] = sn; + else if (val == OPTION_TITLE_SMSL) + setting_map_[HG_BASE_SETTING_INDEX_SCAN_COUNT] = sn; + else if (val == OPTION_TITLE_WGFX) + setting_map_[HG_BASE_SETTING_INDEX_TEXT_DIRECTION] = sn; + else if (val == OPTION_TITLE_BMXZ180) + setting_map_[HG_BASE_SETTING_INDEX_ROTATE_BKG_180] = sn; + else if (val == OPTION_TITLE_ZJJC) + setting_map_[HG_BASE_SETTING_INDEX_FRACTATE_CHECK] = sn; + else if (val == OPTION_TITLE_ZJJCFZD) + setting_map_[HG_BASE_SETTING_INDEX_FRACTATE_CHECK_LEVEL] = sn; + else if (val == OPTION_TITLE_WXJC) + setting_map_[HG_BASE_SETTING_INDEX_SKEW_CHECK] = sn; + else if (val == OPTION_TITLE_WXJCFZD) + setting_map_[HG_BASE_SETTING_INDEX_SKEW_CHECK_LEVEL] = sn; +} void hg_scanner::thread_handle_usb(void) { while (run_) @@ -851,7 +973,7 @@ int hg_scanner::setting_multi_out(void *data) } std::string str((char*)data); - bool exact = check_range(setting_map_[HG_BASE_SETTING_MULTI_OUT], str); + bool exact = check_range(setting_map_[HG_BASE_SETTING_INDEX_MULTI_OUT], str); image_prc_param_.bits.multi_out = match_best_multi_out(str,NULL); HG_VLOG_MINI_3(HG_LOG_LEVEL_DEBUG_INFO, "set multi_out type from %s to %s = %s\n", multi_out_string(image_prc_param_.bits.multi_out).c_str(), (char*)data, hg_scanner::strerr((hg_err)ret).c_str()); @@ -1419,6 +1541,8 @@ int hg_scanner::setting_img_quality(void *data) is_quality_ = match_best_img_quality(str,NULL); on_resolution_changed(resolution_); + + return HG_ERR_OK; } int hg_scanner::on_color_mode_changed(int& color_mode) @@ -1488,6 +1612,12 @@ void hg_scanner::init_settings(const char* json_setting_text) setting_jsn_.at(key).at("name").get_to(val); if (val == KNOWN_OPT_NAME_CUSTOM_GAMMA) continue; + +#ifdef MAPPING_FUNCTION_IN_BASE + setting_jsn_.at(key).at("title").get_to(val); + set_setting_map(sn, val.c_str()); +#endif + setting_jsn_.at(key).at("type").get_to(val); if (val == "string") { diff --git a/hgdriver/hgdev/hg_scanner.h b/hgdriver/hgdev/hg_scanner.h index 64577d0..e297c41 100644 --- a/hgdriver/hgdev/hg_scanner.h +++ b/hgdriver/hgdev/hg_scanner.h @@ -30,7 +30,7 @@ enum HG_BASE_SETTING_INDEX_RESTORE_DEFAULT_SETTINGS = 0, // 恢复默认设置 HG_BASE_SETTING_INDEX_HELP, // 帮助 HG_BASE_SETTING_INDEX_COLOR_MODE, // 颜色模式 - HG_BASE_SETTING_MULTI_OUT, // 多流输出 + HG_BASE_SETTING_INDEX_MULTI_OUT, // 多流输出 HG_BASE_SETTING_INDEX_ERASE_COLOR, // 除色 HG_BASE_SETTING_INDEX_ERASE_MULTI_OUT_RED, // 多流输出除红 HG_BASE_SETTING_INDEX_ERASE_ANSWER_RED, // 答题卡除红 @@ -68,9 +68,9 @@ enum HG_BASE_SETTING_INDEX_FILL_BACKGROUND, // 背景填充方式 HG_BASE_SETTING_INDEX_PERMEATE, // 防止渗透 HG_BASE_SETTING_INDEX_PERMEATE_LV, // 防止渗透等级 - HG_BASE_SETTING_REMOVE_MORR, // 去除摩尔纹 - HG_BASE_SETTING_ERROR_EXTENTION, // 错误扩散 - HG_BASE_SETTING_REMOVE_TXTTURE, // 除网纹 + HG_BASE_SETTING_INDEX_REMOVE_MORR, // 去除摩尔纹 + HG_BASE_SETTING_INDEX_ERROR_EXTENTION, // 错误扩散 + HG_BASE_SETTING_INDEX_REMOVE_TXTTURE, // 除网纹 HG_BASE_SETTING_INDEX_ULTRASONIC_CHECK, // 超声波检测 HG_BASE_SETTING_INDEX_STAPLE_CHECK, // 装订检测 HG_BASE_SETTING_INDEX_SCAN_MODE, // 连续扫描或扫描指定张数 @@ -86,6 +86,8 @@ enum // 常规的功能索引声明必须在此之前 HG_BASE_SETTING_INDEX_MAX, }; +#define MAPPING_FUNCTION_IN_BASE // 定义该标志,各子类不必再初始化setting_map_数组 + class hg_scanner { @@ -118,12 +120,13 @@ class hg_scanner // 设置接口 protected: - // 配置序号映射数组,各子类必须重载“init_setting_map”方法以初始化该数组 + // 配置序号映射数组,各子类必须重载“init_setting_map”方法以初始化该数组 --> 2022-05-09:基类中以title自动匹配功能序号,子类不必再处理并屏蔽此项工作 // 比如: 某型设备的“颜色模式”功能号为1,则 setting_map_[HG_BASE_SETTING_INDEX_COLOR_MODE] = 1 // 如果设备的“颜色模式”配置逻辑与基类预定义的不同, // 则 setting_map_[HG_BASE_SETTING_INDEX_COLOR_MODE] = -1,在子类重载的set_setting_value方法中处理 int setting_map_[HG_BASE_SETTING_INDEX_MAX]; virtual void init_setting_map(int* setting_map, int count); + void set_setting_map(int sn, const char* title); int setting_restore(void* data); int setting_help(void* data); diff --git a/hgdriver/hgdev/hg_scanner_200.cpp b/hgdriver/hgdev/hg_scanner_200.cpp index e6604a0..4a26dce 100644 --- a/hgdriver/hgdev/hg_scanner_200.cpp +++ b/hgdriver/hgdev/hg_scanner_200.cpp @@ -213,8 +213,9 @@ hg_scanner_200::hg_scanner_200(const char* dev_name,int pid, usb_io* io) : hg_sc initdevice(); dsp_config_.value = 0; - +#ifndef MAPPING_FUNCTION_IN_BASE init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化 +#endif init_settings(jsontext.c_str()); printf_devconfig(); @@ -258,7 +259,7 @@ void hg_scanner_200::init_setting_map(int* setting_map, int count) setting_map[HG_BASE_SETTING_INDEX_HELP] = HG_239_SETTING_HELP; setting_map[HG_BASE_SETTING_INDEX_COLOR_MODE] = HG_239_SETTING_COLOR_MODE; - setting_map[HG_BASE_SETTING_MULTI_OUT] = HG_239_SETTING_MULTI_OUT; + setting_map[HG_BASE_SETTING_INDEX_MULTI_OUT] = HG_239_SETTING_MULTI_OUT; setting_map[HG_BASE_SETTING_INDEX_ERASE_COLOR] = HG_239_SETTING_ERASE_COLOR; setting_map[HG_BASE_SETTING_INDEX_ERASE_MULTI_OUT_RED] = HG_239_SETTING_ERASE_MULTI_RED; setting_map[HG_BASE_SETTING_INDEX_ERASE_ANSWER_RED] = HG_239_SETTING_ERASE_ANSWER_RED; @@ -298,9 +299,9 @@ void hg_scanner_200::init_setting_map(int* setting_map, int count) setting_map[HG_BASE_SETTING_INDEX_FILL_BACKGROUND] = HG_239_SETTING_FILLING; setting_map[HG_BASE_SETTING_INDEX_PERMEATE] = HG_239_SETTING_PERMEATE; setting_map[HG_BASE_SETTING_INDEX_PERMEATE_LV] = HG_239_SETTING_PERMEATE_lv; - setting_map[HG_BASE_SETTING_REMOVE_MORR] = HG_239_SETTING_REMOVE_MORR; - setting_map[HG_BASE_SETTING_ERROR_EXTENTION] = HG_239_SETTING_ERROR_EXTENTION; - setting_map[HG_BASE_SETTING_REMOVE_TXTTURE] = HG_239_SETTING_REMOVE_TXTTURE; + setting_map[HG_BASE_SETTING_INDEX_REMOVE_MORR] = HG_239_SETTING_REMOVE_MORR; + setting_map[HG_BASE_SETTING_INDEX_ERROR_EXTENTION] = HG_239_SETTING_ERROR_EXTENTION; + setting_map[HG_BASE_SETTING_INDEX_REMOVE_TXTTURE] = HG_239_SETTING_REMOVE_TXTTURE; setting_map[HG_BASE_SETTING_INDEX_ULTRASONIC_CHECK] = HG_239_SETTING_ULTRASONIC; setting_map[HG_BASE_SETTING_INDEX_STAPLE_CHECK] = HG_239_SETTING_STAPLE; @@ -638,7 +639,7 @@ void hg_scanner_200::image_process(std::shared_ptr>& buffer) tableLength = 768; int index=0; - int buffersize = 256; + const int buffersize = 256; unsigned char buf_01[buffersize]; memcpy(buf_01,custom_gamma_val_->table + index,buffersize); diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 6c1a2f2..f4c4a74 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -381,7 +381,9 @@ hg_scanner_239::hg_scanner_239(const char* dev_name, int pid,usb_io* io) : hg_sc { HG_VLOG_MINI_1(HG_LOG_LEVEL_DEBUG_INFO, "hg_scanner_239(%s) constructing ...\n", hg_log::format_ptr(this).c_str()); dev_conf_.value = 0; +#ifndef MAPPING_FUNCTION_IN_BASE init_setting_map(setting_map_, ARRAY_SIZE(setting_map_)); +#endif init_settings(jsontext.c_str()); writedown_device_configuration(); // initialize the hardware settings init_version(); @@ -1063,7 +1065,7 @@ void hg_scanner_239::init_setting_map(int* setting_map, int count) setting_map[HG_BASE_SETTING_INDEX_HELP] = HG_239_SETTING_HELP; setting_map[HG_BASE_SETTING_INDEX_COLOR_MODE] = HG_239_SETTING_COLOR_MODE; - setting_map[HG_BASE_SETTING_MULTI_OUT] = HG_239_SETTING_MULTI_OUT; + setting_map[HG_BASE_SETTING_INDEX_MULTI_OUT] = HG_239_SETTING_MULTI_OUT; setting_map[HG_BASE_SETTING_INDEX_ERASE_COLOR] = HG_239_SETTING_ERASE_COLOR; setting_map[HG_BASE_SETTING_INDEX_ERASE_MULTI_OUT_RED] = HG_239_SETTING_ERASE_MULTI_RED; setting_map[HG_BASE_SETTING_INDEX_ERASE_ANSWER_RED] = HG_239_SETTING_ERASE_ANSWER_RED; @@ -1104,9 +1106,9 @@ void hg_scanner_239::init_setting_map(int* setting_map, int count) setting_map[HG_BASE_SETTING_INDEX_FILL_BACKGROUND] = HG_239_SETTING_FILLING; setting_map[HG_BASE_SETTING_INDEX_PERMEATE] = HG_239_SETTING_PERMEATE; setting_map[HG_BASE_SETTING_INDEX_PERMEATE_LV] = HG_239_SETTING_PERMEATE_lv; - setting_map[HG_BASE_SETTING_REMOVE_MORR] = HG_239_SETTING_REMOVE_MORR; - setting_map[HG_BASE_SETTING_ERROR_EXTENTION] = HG_239_SETTING_ERROR_EXTENTION; - setting_map[HG_BASE_SETTING_REMOVE_TXTTURE] = HG_239_SETTING_REMOVE_TXTTURE; + setting_map[HG_BASE_SETTING_INDEX_REMOVE_MORR] = HG_239_SETTING_REMOVE_MORR; + setting_map[HG_BASE_SETTING_INDEX_ERROR_EXTENTION] = HG_239_SETTING_ERROR_EXTENTION; + setting_map[HG_BASE_SETTING_INDEX_REMOVE_TXTTURE] = HG_239_SETTING_REMOVE_TXTTURE; setting_map[HG_BASE_SETTING_INDEX_ULTRASONIC_CHECK] = HG_239_SETTING_ULTRASONIC; setting_map[HG_BASE_SETTING_INDEX_STAPLE_CHECK] = HG_239_SETTING_STAPLE; diff --git a/hgdriver/hgdev/hg_scanner_300.cpp b/hgdriver/hgdev/hg_scanner_300.cpp index 8ef73d7..9d63c36 100644 --- a/hgdriver/hgdev/hg_scanner_300.cpp +++ b/hgdriver/hgdev/hg_scanner_300.cpp @@ -192,7 +192,10 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) : hg_sc string fw = get_firmware_version(); initdevice(); +#ifndef MAPPING_FUNCTION_IN_BASE init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化 +#endif + init_settings(jsontext.c_str()); printf_devconfig(); @@ -207,7 +210,7 @@ void hg_scanner_300::init_setting_map(int* setting_map, int count) setting_map[HG_BASE_SETTING_INDEX_HELP] = HG_239_SETTING_HELP; setting_map[HG_BASE_SETTING_INDEX_COLOR_MODE] = HG_239_SETTING_COLOR_MODE; - setting_map[HG_BASE_SETTING_MULTI_OUT] = HG_239_SETTING_MULTI_OUT; + setting_map[HG_BASE_SETTING_INDEX_MULTI_OUT] = HG_239_SETTING_MULTI_OUT; setting_map[HG_BASE_SETTING_INDEX_ERASE_COLOR] = HG_239_SETTING_ERASE_COLOR; setting_map[HG_BASE_SETTING_INDEX_ERASE_MULTI_OUT_RED] = HG_239_SETTING_ERASE_MULTI_RED; setting_map[HG_BASE_SETTING_INDEX_ERASE_ANSWER_RED] = HG_239_SETTING_ERASE_ANSWER_RED; @@ -247,9 +250,9 @@ void hg_scanner_300::init_setting_map(int* setting_map, int count) setting_map[HG_BASE_SETTING_INDEX_FILL_BACKGROUND] = HG_239_SETTING_FILLING; setting_map[HG_BASE_SETTING_INDEX_PERMEATE] = HG_239_SETTING_PERMEATE; setting_map[HG_BASE_SETTING_INDEX_PERMEATE_LV] = HG_239_SETTING_PERMEATE_lv; - setting_map[HG_BASE_SETTING_REMOVE_MORR] = HG_239_SETTING_REMOVE_MORR; - setting_map[HG_BASE_SETTING_ERROR_EXTENTION] = HG_239_SETTING_ERROR_EXTENTION; - setting_map[HG_BASE_SETTING_REMOVE_TXTTURE] = HG_239_SETTING_REMOVE_TXTTURE; + setting_map[HG_BASE_SETTING_INDEX_REMOVE_MORR] = HG_239_SETTING_REMOVE_MORR; + setting_map[HG_BASE_SETTING_INDEX_ERROR_EXTENTION] = HG_239_SETTING_ERROR_EXTENTION; + setting_map[HG_BASE_SETTING_INDEX_REMOVE_TXTTURE] = HG_239_SETTING_REMOVE_TXTTURE; setting_map[HG_BASE_SETTING_INDEX_ULTRASONIC_CHECK] = HG_239_SETTING_ULTRASONIC; setting_map[HG_BASE_SETTING_INDEX_SCAN_MODE] = HG_239_SETTING_SCAN_METHOD; @@ -595,7 +598,7 @@ void hg_scanner_300::image_process(std::shared_ptr>& buffer) tableLength = 768; int index=0; - int buffersize = 256; + const int buffersize = 256; unsigned char buf_01[buffersize]; memcpy(buf_01,custom_gamma_val_->table + index,buffersize); diff --git a/hgdriver/hgdev/hg_scanner_400.cpp b/hgdriver/hgdev/hg_scanner_400.cpp index 93443eb..16cacfe 100644 --- a/hgdriver/hgdev/hg_scanner_400.cpp +++ b/hgdriver/hgdev/hg_scanner_400.cpp @@ -191,7 +191,9 @@ hg_scanner_400::hg_scanner_400(const char* dev_name,int pid, usb_io* io) : hg_sc string fw = get_firmware_version(); initdevice(); +#ifndef MAPPING_FUNCTION_IN_BASE init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化 +#endif init_settings(jsontext.c_str()); printf_devconfig(); @@ -206,7 +208,7 @@ void hg_scanner_400::init_setting_map(int* setting_map, int count) setting_map[HG_BASE_SETTING_INDEX_HELP] = HG_239_SETTING_HELP; setting_map[HG_BASE_SETTING_INDEX_COLOR_MODE] = HG_239_SETTING_COLOR_MODE; - setting_map[HG_BASE_SETTING_MULTI_OUT] = HG_239_SETTING_MULTI_OUT; + setting_map[HG_BASE_SETTING_INDEX_MULTI_OUT] = HG_239_SETTING_MULTI_OUT; setting_map[HG_BASE_SETTING_INDEX_ERASE_COLOR] = HG_239_SETTING_ERASE_COLOR; setting_map[HG_BASE_SETTING_INDEX_ERASE_MULTI_OUT_RED] = HG_239_SETTING_ERASE_MULTI_RED; setting_map[HG_BASE_SETTING_INDEX_ERASE_ANSWER_RED] = HG_239_SETTING_ERASE_ANSWER_RED; @@ -246,9 +248,9 @@ void hg_scanner_400::init_setting_map(int* setting_map, int count) setting_map[HG_BASE_SETTING_INDEX_FILL_BACKGROUND] = HG_239_SETTING_FILLING; setting_map[HG_BASE_SETTING_INDEX_PERMEATE] = HG_239_SETTING_PERMEATE; setting_map[HG_BASE_SETTING_INDEX_PERMEATE_LV] = HG_239_SETTING_PERMEATE_lv; - setting_map[HG_BASE_SETTING_REMOVE_MORR] = HG_239_SETTING_REMOVE_MORR; - setting_map[HG_BASE_SETTING_ERROR_EXTENTION] = HG_239_SETTING_ERROR_EXTENTION; - setting_map[HG_BASE_SETTING_REMOVE_TXTTURE] = HG_239_SETTING_REMOVE_TXTTURE; + setting_map[HG_BASE_SETTING_INDEX_REMOVE_MORR] = HG_239_SETTING_REMOVE_MORR; + setting_map[HG_BASE_SETTING_INDEX_ERROR_EXTENTION] = HG_239_SETTING_ERROR_EXTENTION; + setting_map[HG_BASE_SETTING_INDEX_REMOVE_TXTTURE] = HG_239_SETTING_REMOVE_TXTTURE; setting_map[HG_BASE_SETTING_INDEX_ULTRASONIC_CHECK] = HG_239_SETTING_ULTRASONIC; setting_map[HG_BASE_SETTING_INDEX_SCAN_MODE] = HG_239_SETTING_SCAN_METHOD; @@ -598,7 +600,7 @@ void hg_scanner_400::image_process(std::shared_ptr>& buffer) tableLength = 768; int index=0; - int buffersize = 256; + const int buffersize = 256; unsigned char buf_01[buffersize]; memcpy(buf_01,custom_gamma_val_->table + index,buffersize);