功能号数组初始化工作转移到基类处理,各子类不必再处理

This commit is contained in:
gb 2022-05-09 16:59:22 +08:00
parent 39f818a339
commit 14bd4dc0df
6 changed files with 167 additions and 26 deletions

View File

@ -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")
{

View File

@ -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);

View File

@ -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<std::vector<char>>& 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);

View File

@ -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;

View File

@ -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<std::vector<char>>& 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);

View File

@ -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<std::vector<char>>& 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);