调整配置流程
This commit is contained in:
parent
709945d398
commit
2afc2dca7d
|
@ -98,7 +98,7 @@ hg_scanner::hg_scanner(ScannerSerial serial
|
||||||
, double_paper_handle_(0), keep_watermark_(false), save_feedmode_type_(false), feedmode_(1), sleeptime_(-1),split3399_(0)
|
, double_paper_handle_(0), keep_watermark_(false), save_feedmode_type_(false), feedmode_(1), sleeptime_(-1),split3399_(0)
|
||||||
, async_io_(false), is_white_0_(true), isremove_left_hole(false), isremove_right_hole(false), isremove_top_hole(false), isremove_low_hole(false)
|
, async_io_(false), is_white_0_(true), isremove_left_hole(false), isremove_right_hole(false), isremove_top_hole(false), isremove_low_hole(false)
|
||||||
, isremove_left_hole_threshold(0), isremove_right_hole_threshold(0), isremove_top_hole_threshold(0), isremove_low_hole_threshold(0)
|
, isremove_left_hole_threshold(0), isremove_right_hole_threshold(0), isremove_top_hole_threshold(0), isremove_low_hole_threshold(0)
|
||||||
, dump_usb_path_(""),is_kernelsnap_211209_(false), pid_(0), dump_img_(&hg_scanner::dump_image_empty), is_kernelsnap_220830_(false)
|
, dump_usb_path_(""),is_kernelsnap_211209_(false), pid_(0), dump_img_(&hg_scanner::dump_image_empty), is_kernelsnap_220830_(false),is_kernelsnap3288_221106_(false)
|
||||||
{
|
{
|
||||||
init_setting_func_map();
|
init_setting_func_map();
|
||||||
final_path_ = hg_log::ini_get("paths", "final_img");
|
final_path_ = hg_log::ini_get("paths", "final_img");
|
||||||
|
@ -996,192 +996,188 @@ int hg_scanner::hgpaper_to_devspaper(Paper_Map papermap[], int len, int& paper,
|
||||||
return ind;
|
return ind;
|
||||||
}
|
}
|
||||||
|
|
||||||
//暂时放着
|
int hg_scanner::image_configuration(SCANCONF &ic)
|
||||||
int hg_scanner::image_configuration(LPSCANCONF ic)
|
|
||||||
{
|
{
|
||||||
int len = sizeof(ic),
|
int ret = 0;
|
||||||
ret = SCANNER_ERR_OK;
|
ic.papertype = paper_size_;
|
||||||
bzero(ic, len);
|
|
||||||
|
|
||||||
ic->papertype = paper_size_;
|
|
||||||
|
|
||||||
if (is_lateral(image_prc_param_.bits.paper))
|
if (is_lateral(image_prc_param_.bits.paper))
|
||||||
ic->paperAlign = Rot270;
|
ic.paperAlign = Rot270;
|
||||||
// else if (image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO)
|
|
||||||
// ic->paperAlign = AutoTextOrientation;
|
|
||||||
else
|
else
|
||||||
ic->paperAlign = Rot0;
|
ic.paperAlign = Rot0;
|
||||||
|
|
||||||
ic->en_sizecheck = size_check;
|
//ic.en_sizecheck = dev_conf_.params_3399.enable_sizecheck; 子类处理
|
||||||
|
|
||||||
|
|
||||||
if (image_prc_param_.bits.text_direction != TEXT_DIRECTION_AUTO)
|
if (image_prc_param_.bits.text_direction != TEXT_DIRECTION_AUTO)
|
||||||
ic->imageRotateDegree = (float)image_prc_param_.bits.text_direction;
|
ic.imageRotateDegree = (float)image_prc_param_.bits.text_direction;
|
||||||
else
|
else
|
||||||
ic->imageRotateDegree = 0;
|
ic.imageRotateDegree = 0;
|
||||||
|
|
||||||
ic->imageRotateDegree *= 90.0f;
|
ic.imageRotateDegree *= 90.0f;
|
||||||
|
ic.is_duplex = (image_prc_param_.bits.page == PAGE_DOUBLE
|
||||||
ic->is_duplex = (image_prc_param_.bits.page == PAGE_DOUBLE
|
|
||||||
|| image_prc_param_.bits.page == PAGE_OMIT_EMPTY
|
|| image_prc_param_.bits.page == PAGE_OMIT_EMPTY
|
||||||
|| image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT
|
|| image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT
|
||||||
|| image_prc_param_.bits.page == PAGE_FOLIO);
|
|| image_prc_param_.bits.page == PAGE_FOLIO);
|
||||||
|
|
||||||
if (image_prc_param_.bits.page == PAGE_FOLIO)
|
ic.en_fold = (image_prc_param_.bits.page == PAGE_FOLIO);
|
||||||
|
ic.pixtype = image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH ? 2 : image_prc_param_.bits.color_mode;
|
||||||
|
ic.automaticcolor = is_auto_matic_color;
|
||||||
|
ic.automaticcolortype = 1;// ic.pixtype; //存疑
|
||||||
|
|
||||||
|
ic.resolution_dst = (resolution_ >= 300) ? (is_quality_ == IMG_SPEED ? 200 : resolution_) : resolution_;
|
||||||
|
|
||||||
|
//if (resolution_ >= 300)
|
||||||
|
//{
|
||||||
|
// if (is_quality_ == IMG_SPEED)
|
||||||
|
// ic.resolution_dst = 200;
|
||||||
|
// else
|
||||||
|
// ic.resolution_dst = resolution_;
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
// ic.resolution_dst = resolution_;
|
||||||
|
|
||||||
|
ic.resolution_native = 200.0f;
|
||||||
|
ic.gamma = (float)gamma_;
|
||||||
{
|
{
|
||||||
ic->en_fold = fold_type_;
|
//子类处理
|
||||||
}
|
/*ic.contrast = (contrast_ - 4) * 333.0;
|
||||||
else
|
ic.brightness = (bright_ - 128) * (2000.0 / 254.0);*/
|
||||||
{
|
|
||||||
ic->en_fold = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ic->pixtype = image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH ? 2 : image_prc_param_.bits.color_mode;
|
ic.threshold = threshold_;
|
||||||
ic->automaticcolor = is_auto_matic_color;
|
ic.is_autocontrast = 0; //无参数
|
||||||
|
ic.is_autocrop = (ic.papertype == TwSS::None || ic.papertype == TwSS::USStatement);
|
||||||
ic->automaticcolortype = 1;// ic->pixtype; //存疑
|
ic.is_autodiscradblank_normal = image_prc_param_.bits.page == PAGE_OMIT_EMPTY;
|
||||||
if (resolution_ >= 300)
|
ic.discardblank_percent = omit_empty_level_ >= 70 ? 70 : omit_empty_level_;
|
||||||
{
|
ic.is_autodiscradblank_vince = image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT;
|
||||||
if (is_quality_ == IMG_SPEED)
|
ic.is_switchfrontback = image_prc_param_.bits.exchange;
|
||||||
{
|
ic.autodescrew = image_prc_param_.bits.automatic_skew;
|
||||||
ic->resolution_dst = 200;
|
//ic.multi_output_red = image_prc_param_.bits.rid_red; //必须屏蔽,否则超时,未知错误不可描述。
|
||||||
}
|
ic.hsvcorrect = image_prc_param_.bits.rid_answer_red;
|
||||||
else if (is_quality_ == IMG_QUALITY)
|
ic.sharpen = image_prc_param_.bits.sharpen;
|
||||||
{
|
//ic.enhance_color = image_prc_param_.bits.rid_color; //加这个会有问题
|
||||||
ic->resolution_dst = resolution_;
|
ic.fillbackground = image_prc_param_.bits.erase_black_frame;
|
||||||
}
|
ic.is_convex = (image_prc_param_.bits.fill_background == FILL_BKG_CONVEX_POLYGON);
|
||||||
}
|
if (ic.resolution_dst == 300)
|
||||||
|
ic.noise = anti_noise_ * 1.5;
|
||||||
|
else if (ic.resolution_dst == 600)
|
||||||
|
ic.noise = anti_noise_ * 3;
|
||||||
else
|
else
|
||||||
|
ic.noise = anti_noise_;
|
||||||
|
|
||||||
|
ic.indent = margin_;
|
||||||
|
ic.AutoCrop_threshold = threshold_;
|
||||||
{
|
{
|
||||||
ic->resolution_dst = resolution_;
|
//子类处理
|
||||||
|
//if (test_1_paper_)
|
||||||
|
//{
|
||||||
|
// LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
|
// ic.scannum = ic.is_duplex ? 2 : 1;
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// if (scan_count_ == -1)
|
||||||
|
// ic.scannum = -1;
|
||||||
|
// else
|
||||||
|
// ic.scannum = (ic.is_duplex ? scan_count_ * 2 : scan_count_);
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
ic.is_backrotate180 = image_prc_param_.bits.rotate_back_180;
|
||||||
ic->resolution_native = 200.0f;
|
ic.is_dogeardetection = image_prc_param_.bits.fractate_check;
|
||||||
ic->gamma = (float)gamma_;
|
|
||||||
ic->contrast = (contrast_ - 4) * 333.0;
|
|
||||||
ic->brightness = (bright_ - 128) * (2000.0 / 254.0);
|
|
||||||
ic->threshold = threshold_;
|
|
||||||
ic->is_autocontrast = 0; //无参数
|
|
||||||
ic->is_autocrop = (ic->papertype == TwSS::None || ic->papertype == TwSS::USStatement);
|
|
||||||
ic->is_autodiscradblank_normal = image_prc_param_.bits.page == PAGE_OMIT_EMPTY;
|
|
||||||
ic->discardblank_percent = omit_empty_level_ >= 70 ? 70 : omit_empty_level_;
|
|
||||||
ic->is_autodiscradblank_vince = image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT;
|
|
||||||
ic->is_switchfrontback = image_prc_param_.bits.exchange;
|
|
||||||
ic->autodescrew = image_prc_param_.bits.automatic_skew;
|
|
||||||
//ic->multi_output_red = image_prc_param_.bits.rid_red; //必须屏蔽,否则超时,未知错误不可描述。
|
|
||||||
ic->hsvcorrect = image_prc_param_.bits.rid_answer_red;
|
|
||||||
ic->sharpen = image_prc_param_.bits.sharpen;
|
|
||||||
//ic->enhance_color = image_prc_param_.bits.rid_color; //加这个会有问题
|
|
||||||
ic->fillbackground = image_prc_param_.bits.erase_black_frame;
|
|
||||||
ic->is_convex = (image_prc_param_.bits.fill_background == FILL_BKG_CONVEX_POLYGON);
|
|
||||||
if (ic->resolution_dst == 300)
|
|
||||||
ic->noise = anti_noise_ * 1.5;
|
|
||||||
else if (ic->resolution_dst == 600)
|
|
||||||
ic->noise = anti_noise_ * 3;
|
|
||||||
else
|
|
||||||
ic->noise = anti_noise_;
|
|
||||||
|
|
||||||
ic->indent = margin_;
|
|
||||||
ic->AutoCrop_threshold = threshold_;
|
|
||||||
if (test_1_paper_)
|
|
||||||
{
|
{
|
||||||
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
//子类处理
|
||||||
ic->scannum = ic->is_duplex ? 2 : 1;
|
//ic.hardwarecaps.en_skrewdetect = dev_conf_.params_3399.screw_detect_enable;
|
||||||
|
//ic.hardwarecaps.en_doublefeed = dev_conf_.params_3399.ultrasonic_enable;
|
||||||
|
//ic.hardwarecaps.en_stapledetect = dev_conf_.params_3399.staple_enbale;
|
||||||
|
//ic.hardwarecaps.skrewdetectlevel = dev_conf_.params_3399.screw_detect_level;
|
||||||
|
//ic.hardwarecaps.is_autopaper = dev_conf_.params_3399.is_autopaper;
|
||||||
}
|
}
|
||||||
else
|
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
|
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
||||||
|
ic.fillhole.is_fillhole = image_prc_param_.bits.rid_hole;
|
||||||
|
ic.fillhole.fillholeratio = rid_hole_range_;
|
||||||
|
ic.detachnoise.is_detachnoise = image_prc_param_.bits.noise_optimize;
|
||||||
|
ic.detachnoise.detachnoise = noise_range_;
|
||||||
|
ic.is_autotext = image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO ? 1 : 0;
|
||||||
|
ic.isfillcolor = is_color_fill;
|
||||||
|
ic.refuseInflow = image_prc_param_.bits.is_permeate;
|
||||||
|
ic.colorCorrection = 0;
|
||||||
|
ic.removeMorr = image_prc_param_.bits.remove_morr;
|
||||||
|
ic.errorExtention = image_prc_param_.bits.error_extention;//
|
||||||
|
ic.textureRemove = image_prc_param_.bits.remove_txtture;//
|
||||||
|
ic.splitImage = image_prc_param_.bits.split;
|
||||||
{
|
{
|
||||||
if (scan_count_ == -1)
|
ic.cropRect.enable = custom_area_;
|
||||||
ic->scannum = -1;
|
int height = (custom_area_br_y_ * ic.resolution_dst) / 25.4 - (custom_area_lt_y_ * ic.resolution_dst / 25.4);
|
||||||
else
|
int width = (custom_area_br_x_ * ic.resolution_dst) / 25.4 - (custom_area_lt_x_ * ic.resolution_dst / 25.4);
|
||||||
ic->scannum = (ic->is_duplex ? scan_count_ * 2 : scan_count_);
|
ic.cropRect.height = height;
|
||||||
}
|
ic.cropRect.width = width;
|
||||||
ic->is_backrotate180 = image_prc_param_.bits.rotate_back_180;
|
ic.cropRect.x = custom_area_lt_x_ * ic.resolution_dst / 25.4;
|
||||||
ic->is_dogeardetection = image_prc_param_.bits.fractate_check;
|
ic.cropRect.y = custom_area_lt_y_ * ic.resolution_dst / 25.4;
|
||||||
|
|
||||||
//ic->hardwarecaps.en_skrewdetect = dev_conf_.params_3399.screw_detect_enable;
|
|
||||||
//ic->hardwarecaps.en_doublefeed = dev_conf_.params_3399.ultrasonic_enable;
|
|
||||||
//ic->hardwarecaps.en_stapledetect = dev_conf_.params_3399.staple_enbale;
|
|
||||||
//ic->hardwarecaps.skrewdetectlevel = dev_conf_.params_3399.screw_detect_level;
|
|
||||||
// ic->hardwarecaps.is_autopaper = dev_conf_.params_3399.is_autopaper;
|
|
||||||
|
|
||||||
ic->hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
|
||||||
ic->hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
|
||||||
ic->fillhole.is_fillhole = image_prc_param_.bits.rid_hole;
|
|
||||||
ic->fillhole.fillholeratio = rid_hole_range_;
|
|
||||||
ic->detachnoise.is_detachnoise = image_prc_param_.bits.noise_optimize;
|
|
||||||
ic->detachnoise.detachnoise = noise_range_;
|
|
||||||
ic->is_autotext = image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO ? 1 : 0;
|
|
||||||
ic->isfillcolor = is_color_fill;
|
|
||||||
ic->refuseInflow = image_prc_param_.bits.is_permeate;
|
|
||||||
ic->colorCorrection = 0;
|
|
||||||
ic->removeMorr = image_prc_param_.bits.remove_morr;
|
|
||||||
ic->errorExtention = image_prc_param_.bits.error_extention;//
|
|
||||||
ic->textureRemove = image_prc_param_.bits.remove_txtture;//
|
|
||||||
ic->splitImage = image_prc_param_.bits.split;
|
|
||||||
{
|
|
||||||
ic->cropRect.enable = custom_area_;
|
|
||||||
int height = (custom_area_br_y_ * ic->resolution_dst) / 25.4 - (custom_area_lt_y_ * ic->resolution_dst / 25.4);
|
|
||||||
int width = (custom_area_br_x_ * ic->resolution_dst) / 25.4 - (custom_area_lt_x_ * ic->resolution_dst / 25.4);
|
|
||||||
ic->cropRect.height = height;
|
|
||||||
ic->cropRect.width = width;
|
|
||||||
ic->cropRect.x = custom_area_lt_x_ * ic->resolution_dst / 25.4;
|
|
||||||
ic->cropRect.y = custom_area_lt_y_ * ic->resolution_dst / 25.4;
|
|
||||||
}
|
|
||||||
ic->multiOutput = (MultiOutput)image_prc_param_.bits.multi_out;
|
|
||||||
ic->normalCrop = image_prc_param_.bits.dark_sample;
|
|
||||||
ic->dogeardistabce = fractate_level_;
|
|
||||||
ic->fadeback = image_prc_param_.bits.erase_bakground;
|
|
||||||
ic->fadebackrange = erase_bkg_range_;
|
|
||||||
ic->isuoloadexceptionimage = (double_paper_handle_ & DOUBLE_PAPER_SAVE_IMG) == DOUBLE_PAPER_SAVE_IMG;
|
|
||||||
adjust_filling_hole(ic);
|
|
||||||
|
|
||||||
|
|
||||||
int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
|
||||||
if (image_prc_param_.bits.color_mode == COLOR_MODE_24_BITS || image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH)
|
|
||||||
ic->filter = 3;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ic->filter = filter_clr[image_prc_param_.bits.rid_color];
|
|
||||||
// if(ic->filter != 3)
|
|
||||||
// ic->pixtype = 2;
|
|
||||||
|
|
||||||
ic->hsvcorrect = 0;
|
|
||||||
ic->multi_output_red = 0;
|
|
||||||
ic->multiOutput = MultiOutput::Unused;
|
|
||||||
|
|
||||||
}
|
|
||||||
//多留输出的处理
|
|
||||||
if (image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW && is_multiout)
|
|
||||||
{
|
|
||||||
ic->pixtype = 1;
|
|
||||||
}
|
|
||||||
else if ((image_prc_param_.bits.multi_out == MULTI_OUT_ALL || image_prc_param_.bits.multi_out == MULTI_COLOR_AND_GRAY || image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW) && is_multiout)
|
|
||||||
{
|
|
||||||
ic->pixtype = 2;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
ic.multiOutput = (MultiOutput)image_prc_param_.bits.multi_out;
|
||||||
|
ic.normalCrop = image_prc_param_.bits.dark_sample;
|
||||||
|
ic.dogeardistabce = fractate_level_;
|
||||||
|
ic.fadeback = image_prc_param_.bits.erase_bakground;
|
||||||
|
ic.fadebackrange = erase_bkg_range_;
|
||||||
|
ic.isuoloadexceptionimage = (double_paper_handle_ & DOUBLE_PAPER_SAVE_IMG) == DOUBLE_PAPER_SAVE_IMG;
|
||||||
|
adjust_filling_hole(&ic);
|
||||||
|
ic.fold_concatmode = fold_type_;
|
||||||
|
//多流输出优先级最高
|
||||||
if (is_multiout)
|
if (is_multiout)
|
||||||
{
|
{
|
||||||
ic->hsvcorrect = 0;
|
ic.pixtype = image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW ? COLOR_MODE_256_GRAY : COLOR_MODE_24_BITS;
|
||||||
ic->multi_output_red = 0;
|
ic.filter = 3;
|
||||||
ic->fadeback = false;
|
ic.hsvcorrect = 0;
|
||||||
ic->sharpen = 0;
|
ic.multi_output_red = 0;
|
||||||
ic->removeMorr = 0;
|
ic.fadeback = false;
|
||||||
ic->textureRemove = 0;
|
ic.sharpen = 0;
|
||||||
|
ic.removeMorr = 0;
|
||||||
ic->errorExtention = 0;
|
ic.textureRemove = 0;
|
||||||
ic->detachnoise.is_detachnoise = 0;
|
ic.errorExtention = 0;
|
||||||
|
ic.detachnoise.is_detachnoise = 0;
|
||||||
}
|
}
|
||||||
if (ic->pixtype == 0)
|
else if (image_prc_param_.bits.multi_out == COLOR_MODE_24_BITS)
|
||||||
{
|
{
|
||||||
ic->hsvcorrect = 0;
|
ic.filter = 3;
|
||||||
ic->multi_output_red = 0;
|
ic.errorExtention = 0;
|
||||||
ic->fadeback = false;
|
ic.detachnoise.is_detachnoise = 0;
|
||||||
ic->sharpen = 0;
|
|
||||||
ic->removeMorr = 0;
|
|
||||||
ic->textureRemove = 0;
|
|
||||||
}
|
}
|
||||||
|
else if (image_prc_param_.bits.multi_out == COLOR_MODE_256_GRAY)
|
||||||
|
{
|
||||||
|
int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
||||||
|
ic.filter = filter_clr[image_prc_param_.bits.rid_color];
|
||||||
|
ic.multi_output_red = 0;
|
||||||
|
ic.hsvcorrect = 0;
|
||||||
|
ic.fadeback = false;
|
||||||
|
ic.errorExtention = 0;
|
||||||
|
ic.detachnoise.is_detachnoise = 0;
|
||||||
|
}
|
||||||
|
else if (image_prc_param_.bits.multi_out == COLOR_MODE_BLACK_WHITE)
|
||||||
|
{
|
||||||
|
int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
||||||
|
ic.filter = filter_clr[image_prc_param_.bits.rid_color];
|
||||||
|
ic.multi_output_red = 0;
|
||||||
|
ic.hsvcorrect = 0;
|
||||||
|
ic.fadeback = false;
|
||||||
|
ic.sharpen = 0;
|
||||||
|
ic.removeMorr = 0;
|
||||||
|
ic.textureRemove = 0;
|
||||||
|
}
|
||||||
|
else if (image_prc_param_.bits.multi_out == COLOR_MODE_AUTO_MATCH)
|
||||||
|
{
|
||||||
|
ic.pixtype = 2;
|
||||||
|
ic.filter = 3;
|
||||||
|
ic.hsvcorrect = 0;
|
||||||
|
ic.multi_output_red = 0;
|
||||||
|
ic.fadeback = false;
|
||||||
|
ic.sharpen = 0;
|
||||||
|
ic.removeMorr = 0;
|
||||||
|
ic.textureRemove = 0;
|
||||||
|
ic.errorExtention = 0;
|
||||||
|
ic.detachnoise.is_detachnoise = 0;
|
||||||
|
|
||||||
|
}
|
||||||
//自定义裁切
|
//自定义裁切
|
||||||
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
||||||
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||||||
|
@ -1189,72 +1185,61 @@ int hg_scanner::image_configuration(LPSCANCONF ic)
|
||||||
|| image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
|| image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ic->cropRect.enable = false;
|
ic.cropRect.enable = false;
|
||||||
}
|
}
|
||||||
|
img_conf_ = ic;
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.pixtype=%d", ic.pixtype);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.papertype=%d", ic.papertype);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.AutoCrop_threshold=%d", ic.AutoCrop_threshold);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.autodescrew=%d", ic.autodescrew);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.automaticcolor=%d", ic.automaticcolor);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.brightness=%f", ic.brightness);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.contrast=%f", ic.contrast);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.en_fold=%d", ic.en_fold);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.en_sizecheck=%d", ic.en_sizecheck);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.enhance_color=%d", ic.enhance_color);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.fillbackground=%d", ic.fillbackground);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.filter=%d", ic.filter);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.gamma=%f", ic.gamma);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.hardwarecaps.capturepixtype=%d", ic.hardwarecaps.capturepixtype);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.hardwarecaps.en_doublefeed=%d", ic.hardwarecaps.en_doublefeed);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.hsvcorrect=%d", ic.hsvcorrect);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.imageRotateDegree=%f", ic.imageRotateDegree);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.indent=%d", 5);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_autocontrast=%d", ic.is_autocontrast);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_autocrop=%d", ic.is_autocrop);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_autodiscradblank_normal=%d", ic.is_autodiscradblank_normal);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_autodiscradblank_vince=%d", ic.is_autodiscradblank_vince);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_autotext=%d", ic.is_autotext);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_backrotate180=%d", ic.is_backrotate180);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_convex=%d", ic.is_convex);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_duplex=%d", ic.is_duplex);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_switchfrontback=%d", ic.is_switchfrontback);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.is_dogeardetection=%d", ic.is_dogeardetection);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.fillhole.multi_output_red=%d", ic.multi_output_red);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.noise=%d", ic.noise);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.pixtype=%d", ic.pixtype);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.resolution_dst=%f", ic.resolution_dst);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.resolution_native=%f", ic.resolution_native);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.scannum=%d", ic.scannum);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.sharpen=%d", ic.sharpen);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.discardblank_percent=%d", ic.discardblank_percent);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.detachnoise.is_detachnoise=%d", ic.detachnoise.is_detachnoise);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.detachnoise.detachnoise=%d\r ", ic.detachnoise.detachnoise);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.detachnoise.refuseInflow=%d\r ", ic.refuseInflow);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.detachnoise.refuseInflow=%d\r ", ic.refuseInflow);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.removeMorr=%d\r ", ic.removeMorr);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.errorExtention=%d\r ", ic.errorExtention);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.textureRemove=%d\r\n ", ic.refuseInflow);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.fillhole.is_fillhole=%d\r\n ", ic.fillhole.is_fillhole);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.ic.fillhole.fillholeratio=%d\r\n ", ic.fillhole.fillholeratio);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.fadeback=%d\r\n ", ic.fadeback);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.cropRect.enable=%d\r ", ic.cropRect.enable);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.cropRect.width=%d\r\n ", ic.cropRect.width);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.cropRect.height=%d\r\n ", ic.cropRect.height);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.cropRect.x=%d\r\n ", ic.cropRect.x);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic.cropRect.y=%d\r\n ", ic.cropRect.y);
|
||||||
|
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lock(io_lock_);
|
|
||||||
|
|
||||||
ret = io_->write_bulk(&ic, &len);
|
|
||||||
|
|
||||||
this_thread::sleep_for(chrono::milliseconds(500));
|
|
||||||
io_->set_timeout(2000);//必要延时
|
|
||||||
}
|
|
||||||
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Write-down 0x%x bytes image process parameters\n", len);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->pixtype=%d", ic->pixtype);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->papertype=%d", ic->papertype);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->AutoCrop_threshold=%d", ic->AutoCrop_threshold);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->autodescrew=%d", ic->autodescrew);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->automaticcolor=%d", ic->automaticcolor);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->brightness=%f", ic->brightness);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->contrast=%f", ic->contrast);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->en_fold=%d", ic->en_fold);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->en_sizecheck=%d", ic->en_sizecheck);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->enhance_color=%d", ic->enhance_color);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->fillbackground=%d", ic->fillbackground);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->filter=%d", ic->filter);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->gamma=%f", ic->gamma);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->hardwarecaps.capturepixtype=%d", ic->hardwarecaps.capturepixtype);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->hardwarecaps.en_doublefeed=%d", ic->hardwarecaps.en_doublefeed);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->hsvcorrect=%d", ic->hsvcorrect);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->imageRotateDegree=%f", ic->imageRotateDegree);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->indent=%d", 5);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_autocontrast=%d", ic->is_autocontrast);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_autocrop=%d", ic->is_autocrop);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_autodiscradblank_normal=%d", ic->is_autodiscradblank_normal);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_autodiscradblank_vince=%d", ic->is_autodiscradblank_vince);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_autotext=%d", ic->is_autotext);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_backrotate180=%d", ic->is_backrotate180);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_convex=%d", ic->is_convex);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_duplex=%d", ic->is_duplex);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_switchfrontback=%d", ic->is_switchfrontback);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->is_dogeardetection=%d", ic->is_dogeardetection);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->fillhole.multi_output_red=%d", ic->multi_output_red);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->noise=%d", ic->noise);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->pixtype=%d", ic->pixtype);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->resolution_dst=%f", ic->resolution_dst);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->resolution_native=%f", ic->resolution_native);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->scannum=%d", ic->scannum);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->sharpen=%d", ic->sharpen);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->discardblank_percent=%d", ic->discardblank_percent);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->detachnoise.is_detachnoise=%d", ic->detachnoise.is_detachnoise);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->detachnoise.detachnoise=%d\r ", ic->detachnoise.detachnoise);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->detachnoise.refuseInflow=%d\r ", ic->refuseInflow);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->detachnoise.refuseInflow=%d\r ", ic->refuseInflow);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->removeMorr=%d\r ", ic->removeMorr);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->errorExtention=%d\r ", ic->errorExtention);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->textureRemove=%d\r\n ", ic->refuseInflow);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->fillhole.is_fillhole=%d\r\n ", ic->fillhole.is_fillhole);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->ic->fillhole.fillholeratio=%d\r\n ", ic->fillhole.fillholeratio);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->fadeback=%d\r\n ", ic->fadeback);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->cropRect.enable=%d\r ", ic->cropRect.enable);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->cropRect.width=%d\r\n ", ic->cropRect.width);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->cropRect.height=%d\r\n ", ic->cropRect.height);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->cropRect.x=%d\r\n ", ic->cropRect.x);
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "\n ic->cropRect.y=%d\r\n ", ic->cropRect.y);
|
|
||||||
|
|
||||||
img_conf_ = *ic;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
int hg_scanner::invoke_setting_xxx(int(hg_scanner::*func)(void*), void* data)
|
int hg_scanner::invoke_setting_xxx(int(hg_scanner::*func)(void*), void* data)
|
||||||
|
@ -1370,14 +1355,14 @@ int hg_scanner::setting_multi_out(void* data)
|
||||||
int val = image_prc_param_.bits.color_mode;
|
int val = image_prc_param_.bits.color_mode;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "image_prc_param_.bits.multi_out %d\n", image_prc_param_.bits.multi_out);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "image_prc_param_.bits.multi_out %d\n", image_prc_param_.bits.multi_out);
|
||||||
|
|
||||||
if (is_multiout)
|
//if (is_multiout)
|
||||||
{
|
//{
|
||||||
if (image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW)
|
// if (image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW)
|
||||||
val = COLOR_MODE_256_GRAY;
|
// val = COLOR_MODE_256_GRAY;
|
||||||
else
|
// else
|
||||||
val = COLOR_MODE_24_BITS;
|
// val = COLOR_MODE_24_BITS;
|
||||||
}
|
//}
|
||||||
on_color_mode_changed(val);
|
//on_color_mode_changed(val);
|
||||||
|
|
||||||
return SCANNER_ERR_OK;
|
return SCANNER_ERR_OK;
|
||||||
}
|
}
|
||||||
|
@ -1394,26 +1379,25 @@ int hg_scanner::setting_multi_out_type(void* data)
|
||||||
save_multiout = str;
|
save_multiout = str;
|
||||||
VLOG_MINI_3(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_err_name(ret));
|
VLOG_MINI_3(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_err_name(ret));
|
||||||
|
|
||||||
if (image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW)
|
/*if (image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW)
|
||||||
color = COLOR_MODE_256_GRAY;
|
color = COLOR_MODE_256_GRAY;
|
||||||
else
|
else
|
||||||
color = COLOR_MODE_24_BITS;
|
color = COLOR_MODE_24_BITS;
|
||||||
|
|
||||||
on_color_mode_changed(color);
|
on_color_mode_changed(color);*/
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
int hg_scanner::setting_rid_color(void* data)
|
int hg_scanner::setting_rid_color(void* data)
|
||||||
{
|
{
|
||||||
std::string str((char*)data);
|
std::string str((char*)data);
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
color = -1,
|
|
||||||
old = image_prc_param_.bits.rid_color;
|
old = image_prc_param_.bits.rid_color;
|
||||||
bool exact = check_range(SANE_STD_OPT_NAME_FILTER, str);
|
bool exact = check_range(SANE_STD_OPT_NAME_FILTER, str);
|
||||||
|
|
||||||
image_prc_param_.bits.rid_color = match_best_rid_color(str, NULL);
|
image_prc_param_.bits.rid_color = match_best_rid_color(str, NULL);
|
||||||
|
|
||||||
|
|
||||||
on_color_mode_changed(color);
|
//on_color_mode_changed(color);
|
||||||
|
|
||||||
if (!exact)
|
if (!exact)
|
||||||
{
|
{
|
||||||
|
|
|
@ -281,6 +281,8 @@ protected:
|
||||||
bool is_kernelsnap_220830_; //此版本支持待纸扫描,手动睡眠唤醒,分纸强度
|
bool is_kernelsnap_220830_; //此版本支持待纸扫描,手动睡眠唤醒,分纸强度
|
||||||
bool is_kernelsnap_211209_; //获取固件版本号是否是新旧版本
|
bool is_kernelsnap_211209_; //获取固件版本号是否是新旧版本
|
||||||
|
|
||||||
|
bool is_kernelsnap3288_221106_; //G300 3288 在221106版本支持真实dpi
|
||||||
|
|
||||||
SCANCONF img_conf_; //此参数外部不做任何改变,请在writedown_image_configuration做修改
|
SCANCONF img_conf_; //此参数外部不做任何改变,请在writedown_image_configuration做修改
|
||||||
std::string img_type_;
|
std::string img_type_;
|
||||||
|
|
||||||
|
@ -347,7 +349,7 @@ public:
|
||||||
int set_setting(const char* name, void* data, int len);
|
int set_setting(const char* name, void* data, int len);
|
||||||
int get_setting(const char* name, char* json_txt_buf, int* len);
|
int get_setting(const char* name, char* json_txt_buf, int* len);
|
||||||
int hgpaper_to_devspaper(Paper_Map papermap[], int len, int& paper, bool* exact, TwSS* type);
|
int hgpaper_to_devspaper(Paper_Map papermap[], int len, int& paper, bool* exact, TwSS* type);
|
||||||
int image_configuration(LPSCANCONF ic);
|
int image_configuration(SCANCONF &ic);
|
||||||
std::string name(void);
|
std::string name(void);
|
||||||
int status(void);
|
int status(void);
|
||||||
bool is_online(void);
|
bool is_online(void);
|
||||||
|
|
|
@ -223,7 +223,7 @@ int hg_scanner_200::start(void)
|
||||||
|
|
||||||
//discard_prev();
|
//discard_prev();
|
||||||
user_cancel_ = false;
|
user_cancel_ = false;
|
||||||
//ret = writedown_device_configuration(true);
|
ret = writedown_device_configuration(true);
|
||||||
if (ret == SCANNER_ERR_OK)
|
if (ret == SCANNER_ERR_OK)
|
||||||
writedown_image_configuration();
|
writedown_image_configuration();
|
||||||
else
|
else
|
||||||
|
@ -417,6 +417,16 @@ int hg_scanner_200::writedown_device_configuration(bool type,setting_hardware::H
|
||||||
|
|
||||||
if (!d)
|
if (!d)
|
||||||
d = &dsp_config_;
|
d = &dsp_config_;
|
||||||
|
if (is_multiout)
|
||||||
|
{
|
||||||
|
d->params_dsp.color = image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW ? 0 : 1;
|
||||||
|
}
|
||||||
|
else if ((image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY
|
||||||
|
|| image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||||
|
&& image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
||||||
|
{
|
||||||
|
d->params_dsp.color = 1;
|
||||||
|
}
|
||||||
|
|
||||||
USBCB usbcb = { setting3288dsp::CONFIGURED_DATA, d->value, 0 };
|
USBCB usbcb = { setting3288dsp::CONFIGURED_DATA, d->value, 0 };
|
||||||
len = sizeof(USBCB);
|
len = sizeof(USBCB);
|
||||||
|
@ -429,18 +439,8 @@ int hg_scanner_200::writedown_device_configuration(bool type,setting_hardware::H
|
||||||
|
|
||||||
int hg_scanner_200::on_color_mode_changed(int& color_mode)
|
int hg_scanner_200::on_color_mode_changed(int& color_mode)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
dsp_config_.params_dsp.color = (color_mode == COLOR_MODE_BLACK_WHITE || color_mode == COLOR_MODE_256_GRAY) ? 0 : 1;
|
||||||
|
return SCANNER_ERR_OK;
|
||||||
if (color_mode == COLOR_MODE_BLACK_WHITE || color_mode == COLOR_MODE_256_GRAY)
|
|
||||||
{
|
|
||||||
dsp_config_.params_dsp.color = 0;
|
|
||||||
}
|
|
||||||
else if(color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH)
|
|
||||||
{
|
|
||||||
dsp_config_.params_dsp.color = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
int hg_scanner_200::on_paper_changed(int& paper)
|
int hg_scanner_200::on_paper_changed(int& paper)
|
||||||
{
|
{
|
||||||
|
@ -611,71 +611,20 @@ int hg_scanner_200::initdevice()
|
||||||
void hg_scanner_200::writedown_image_configuration(void)
|
void hg_scanner_200::writedown_image_configuration(void)
|
||||||
{
|
{
|
||||||
SCANCONF ic;
|
SCANCONF ic;
|
||||||
|
int len = sizeof(ic);
|
||||||
|
|
||||||
ic.papertype = paper_size_;
|
bzero(&ic, len);
|
||||||
|
|
||||||
if (is_lateral(image_prc_param_.bits.paper))
|
|
||||||
ic.paperAlign = Rot270;
|
|
||||||
// else if (image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO)
|
|
||||||
// ic.paperAlign = AutoTextOrientation;
|
|
||||||
else
|
|
||||||
ic.paperAlign = Rot0;
|
|
||||||
|
|
||||||
ic.en_sizecheck = dsp_config_.params_dsp.enable_sizecheck;
|
|
||||||
|
|
||||||
if (image_prc_param_.bits.text_direction != TEXT_DIRECTION_AUTO)
|
|
||||||
ic.imageRotateDegree = image_prc_param_.bits.text_direction;
|
|
||||||
else
|
|
||||||
ic.imageRotateDegree = 0;
|
|
||||||
|
|
||||||
ic.is_duplex = (image_prc_param_.bits.page == PAGE_DOUBLE || image_prc_param_.bits.page == PAGE_OMIT_EMPTY ||
|
|
||||||
image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT || image_prc_param_.bits.page ==PAGE_FOLIO);
|
|
||||||
|
|
||||||
ic.en_fold = (image_prc_param_.bits.page == PAGE_FOLIO);
|
|
||||||
|
|
||||||
ic.pixtype = image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH ? 2 : image_prc_param_.bits.color_mode;
|
|
||||||
|
|
||||||
ic.automaticcolor = is_auto_matic_color;
|
|
||||||
ic.automaticcolortype = 1;// ic.pixtype; //存疑
|
|
||||||
ic.resolution_dst = resolution_;
|
|
||||||
ic.resolution_native = 200;
|
|
||||||
|
|
||||||
ic.gamma = (float)gamma_;
|
|
||||||
ic.contrast = contrast_ ;
|
|
||||||
ic.brightness = bright_ ;
|
|
||||||
ic.threshold = threshold_;
|
|
||||||
ic.is_autocontrast = 0; //无参数
|
|
||||||
ic.is_autocrop = (ic.papertype == TwSS::None || ic.papertype ==TwSS::USStatement);
|
|
||||||
ic.is_autodiscradblank_normal = image_prc_param_.bits.page == PAGE_OMIT_EMPTY;
|
|
||||||
ic.discardblank_percent = omit_empty_level_; //默认20
|
|
||||||
ic.is_autodiscradblank_vince = image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT;
|
|
||||||
ic.is_switchfrontback = image_prc_param_.bits.exchange;
|
|
||||||
ic.autodescrew = image_prc_param_.bits.automatic_skew;
|
|
||||||
ic.multi_output_red = image_prc_param_.bits.rid_red;
|
|
||||||
ic.hsvcorrect = image_prc_param_.bits.rid_answer_red;
|
|
||||||
|
|
||||||
ic.sharpen = image_prc_param_.bits.sharpen;
|
|
||||||
//ic.enhance_color = image_prc_param_.bits.rid_color;
|
|
||||||
ic.fillbackground = image_prc_param_.bits.erase_black_frame;
|
|
||||||
ic.is_convex = (image_prc_param_.bits.fill_background == FILL_BKG_CONVEX_POLYGON);
|
|
||||||
ic.noise = image_prc_param_.bits.noise_optimize;
|
|
||||||
ic.indent = margin_;
|
|
||||||
ic.AutoCrop_threshold = threshold_;
|
|
||||||
|
|
||||||
|
ic.contrast = contrast_;
|
||||||
|
ic.brightness = bright_;
|
||||||
if (test_1_paper_)
|
if (test_1_paper_)
|
||||||
{
|
{
|
||||||
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
ic.scannum = 1;
|
ic.scannum = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
ic.scannum = scan_count_;
|
||||||
ic.scannum = scan_count_;
|
ic.en_sizecheck = dsp_config_.params_dsp.enable_sizecheck;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ic.is_backrotate180 = image_prc_param_.bits.rotate_back_180;
|
|
||||||
ic.is_dogeardetection = image_prc_param_.bits.fractate_check;
|
|
||||||
|
|
||||||
ic.hardwarecaps.en_skrewdetect = dsp_config_.params_dsp.screw_detect_enable;
|
ic.hardwarecaps.en_skrewdetect = dsp_config_.params_dsp.screw_detect_enable;
|
||||||
ic.hardwarecaps.en_doublefeed = dsp_config_.params_dsp.double_feed_enbale;
|
ic.hardwarecaps.en_doublefeed = dsp_config_.params_dsp.double_feed_enbale;
|
||||||
ic.hardwarecaps.en_stapledetect = dsp_config_.params_dsp.stable_enbale;
|
ic.hardwarecaps.en_stapledetect = dsp_config_.params_dsp.stable_enbale;
|
||||||
|
@ -684,153 +633,225 @@ else
|
||||||
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
||||||
|
|
||||||
ic.fillhole.is_fillhole = image_prc_param_.bits.rid_hole;
|
image_configuration(ic);
|
||||||
ic.fillhole.fillholeratio = rid_hole_range_;
|
|
||||||
adjust_filling_hole(&ic);
|
|
||||||
|
|
||||||
ic.detachnoise.is_detachnoise = image_prc_param_.bits.noise_optimize;
|
|
||||||
ic.detachnoise.detachnoise = noise_range_;
|
|
||||||
|
|
||||||
|
|
||||||
ic.is_autotext = image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO ? 1 :0;
|
|
||||||
ic.isfillcolor = is_color_fill;
|
|
||||||
ic.refuseInflow = image_prc_param_.bits.is_permeate;
|
|
||||||
ic.colorCorrection = 0;
|
|
||||||
ic.removeMorr = image_prc_param_.bits.remove_morr;
|
|
||||||
ic.errorExtention = image_prc_param_.bits.error_extention ;//暂无参数
|
|
||||||
ic.textureRemove = image_prc_param_.bits.remove_txtture;//暂无参数
|
|
||||||
ic.splitImage = image_prc_param_.bits.split;
|
|
||||||
|
|
||||||
//custom_area_br_x_ *ic.resolution_dst /25.4;
|
|
||||||
//custom_area_br_y_ *ic.resolution_dst /25.4;
|
|
||||||
|
|
||||||
ic.cropRect.enable = custom_area_;
|
|
||||||
|
|
||||||
int height = (custom_area_br_y_ *ic.resolution_dst) /25.4 - (custom_area_lt_y_ *ic.resolution_dst /25.4);
|
|
||||||
int width = (custom_area_br_x_ *ic.resolution_dst) /25.4 - (custom_area_lt_x_ *ic.resolution_dst /25.4);
|
|
||||||
ic.cropRect.height = height;
|
|
||||||
ic.cropRect.width = width;
|
|
||||||
ic.cropRect.x = custom_area_lt_x_ *ic.resolution_dst /25.4;
|
|
||||||
ic.cropRect.y = custom_area_lt_y_ *ic.resolution_dst /25.4;
|
|
||||||
|
|
||||||
ic.multiOutput = (MultiOutput)image_prc_param_.bits.multi_out;
|
|
||||||
if (!is_multiout)
|
|
||||||
{
|
|
||||||
ic.multiOutput = MultiOutput::Unused;
|
|
||||||
}
|
|
||||||
ic.normalCrop = image_prc_param_.bits.dark_sample;
|
|
||||||
ic.dogeardistabce = fractate_level_;
|
|
||||||
ic.fadeback = image_prc_param_.bits.erase_bakground;
|
|
||||||
ic.fadebackrange = erase_bkg_range_;
|
|
||||||
ic.isuoloadexceptionimage = (double_paper_handle_ & DOUBLE_PAPER_SAVE_IMG) == DOUBLE_PAPER_SAVE_IMG;
|
|
||||||
ic.fold_concatmode = fold_type_;
|
|
||||||
int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
|
||||||
if(image_prc_param_.bits.color_mode == COLOR_MODE_24_BITS || image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH)
|
|
||||||
ic.filter = 3;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ic.filter = filter_clr[image_prc_param_.bits.rid_color];
|
|
||||||
// if(ic.filter != 3)
|
|
||||||
// ic.pixtype = 2;
|
|
||||||
|
|
||||||
ic.hsvcorrect = 0;
|
|
||||||
ic.multi_output_red = 0;
|
|
||||||
ic.multiOutput = MultiOutput::Unused;
|
|
||||||
ic.fadeback = false;
|
|
||||||
}
|
|
||||||
//多留输出的处理
|
|
||||||
if (image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW && is_multiout)
|
|
||||||
{
|
|
||||||
ic.pixtype = 1;
|
|
||||||
}
|
|
||||||
else if ((image_prc_param_.bits.multi_out == MULTI_OUT_ALL ||image_prc_param_.bits.multi_out == MULTI_COLOR_AND_GRAY||image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW) && is_multiout)
|
|
||||||
{
|
|
||||||
ic.pixtype = 2;
|
|
||||||
}
|
|
||||||
if (is_multiout)
|
|
||||||
{
|
|
||||||
ic.hsvcorrect = 0;
|
|
||||||
ic.multi_output_red = 0;
|
|
||||||
ic.fadeback = false;
|
|
||||||
ic.sharpen = 0;
|
|
||||||
ic.removeMorr = 0;
|
|
||||||
ic.textureRemove = 0;
|
|
||||||
|
|
||||||
ic.errorExtention = 0;
|
|
||||||
ic.detachnoise.is_detachnoise = 0;
|
|
||||||
}
|
|
||||||
if (ic.pixtype == 0)
|
|
||||||
{
|
|
||||||
ic.hsvcorrect = 0;
|
|
||||||
ic.multi_output_red = 0;
|
|
||||||
ic.fadeback = false;
|
|
||||||
ic.sharpen = 0;
|
|
||||||
ic.removeMorr = 0;
|
|
||||||
ic.textureRemove = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//自定义裁切
|
|
||||||
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
|
||||||
||image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
|
||||||
||image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
|
||||||
||image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
|
||||||
)
|
|
||||||
{
|
|
||||||
ic.cropRect.enable = false;
|
|
||||||
}
|
|
||||||
img_conf_ = ic;
|
|
||||||
|
|
||||||
agreement();
|
agreement();
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.pixtype=%d", ic.pixtype);
|
// ic.papertype = paper_size_;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.papertype=%d", ic.papertype);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.AutoCrop_threshold=%d", ic.AutoCrop_threshold);
|
// if (is_lateral(image_prc_param_.bits.paper))
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.autodescrew=%d", ic.autodescrew);
|
// ic.paperAlign = Rot270;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.automaticcolor=%d", ic.automaticcolor);
|
// else
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.brightness=%f", ic.brightness);
|
// ic.paperAlign = Rot0;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.contrast=%f", ic.contrast);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.en_fold=%d", ic.en_fold);
|
// ic.en_sizecheck = dsp_config_.params_dsp.enable_sizecheck;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.en_sizecheck=%d", ic.en_sizecheck);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.enhance_color=%d", ic.enhance_color);
|
//if (image_prc_param_.bits.text_direction != TEXT_DIRECTION_AUTO)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.fillbackground=%d", ic.fillbackground);
|
// ic.imageRotateDegree = image_prc_param_.bits.text_direction;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.filter=%d", ic.filter);
|
//else
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.gamma=%f", ic.gamma);
|
// ic.imageRotateDegree = 0;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.hardwarecaps.capturepixtype=%d", ic.hardwarecaps.capturepixtype);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.hardwarecaps.en_doublefeed=%d", ic.hardwarecaps.en_doublefeed);
|
// ic.is_duplex = (image_prc_param_.bits.page == PAGE_DOUBLE || image_prc_param_.bits.page == PAGE_OMIT_EMPTY ||
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.hsvcorrect=%d", ic.hsvcorrect);
|
// image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT || image_prc_param_.bits.page ==PAGE_FOLIO);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.imageRotateDegree=%f", ic.imageRotateDegree);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.indent=%d", 5);
|
// ic.en_fold = (image_prc_param_.bits.page == PAGE_FOLIO);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autocontrast=%d", ic.is_autocontrast);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autocrop=%d", ic.is_autocrop);
|
// ic.pixtype = image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH ? 2 : image_prc_param_.bits.color_mode;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autodiscradblank_normal=%d", ic.is_autodiscradblank_normal);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autodiscradblank_vince=%d", ic.is_autodiscradblank_vince);
|
// ic.automaticcolor = is_auto_matic_color;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autotext=%d", ic.is_autotext);
|
// ic.automaticcolortype = 1;// ic.pixtype; //存疑
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_backrotate180=%d", ic.is_backrotate180);
|
// ic.resolution_dst = resolution_;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_convex=%d", ic.is_convex);
|
// ic.resolution_native = 200;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_duplex=%d", ic.is_duplex);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_switchfrontback=%d", ic.is_switchfrontback);
|
// ic.gamma = (float)gamma_;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_dogeardetection=%d", ic.is_dogeardetection);
|
// ic.contrast = contrast_ ;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.fillhole.multi_output_red=%d", ic.multi_output_red);
|
// ic.brightness = bright_ ;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.noise=%d", 8);
|
// ic.threshold = threshold_;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.resolution_dst=%f", ic.resolution_dst);
|
// ic.is_autocontrast = 0; //无参数
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.resolution_native=%f", ic.resolution_native);
|
// ic.is_autocrop = (ic.papertype == TwSS::None || ic.papertype ==TwSS::USStatement);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.scannum=%d", ic.scannum);
|
// ic.is_autodiscradblank_normal = image_prc_param_.bits.page == PAGE_OMIT_EMPTY;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.sharpen=%d", ic.sharpen);
|
// ic.discardblank_percent = omit_empty_level_; //默认20
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.discardblank_percent=%d", ic.discardblank_percent);
|
// ic.is_autodiscradblank_vince = image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.detachnoise.is_detachnoise=%d", ic.detachnoise.is_detachnoise);
|
// ic.is_switchfrontback = image_prc_param_.bits.exchange;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.detachnoise.detachnoise=%d\r ", ic.detachnoise.detachnoise);
|
// ic.autodescrew = image_prc_param_.bits.automatic_skew;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.detachnoise.refuseInflow=%d\r ", ic.refuseInflow);
|
// ic.multi_output_red = image_prc_param_.bits.rid_red;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.refuseInflow=%d\r ", ic.refuseInflow);
|
// ic.hsvcorrect = image_prc_param_.bits.rid_answer_red;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.removeMorr=%d\r ", ic.removeMorr);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.errorExtention=%d\r ", ic.errorExtention);
|
// ic.sharpen = image_prc_param_.bits.sharpen;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.textureRemove=%d\r\n ", ic.textureRemove);
|
// //ic.enhance_color = image_prc_param_.bits.rid_color;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.fillhole.is_fillhole=%d\r\n ", ic.fillhole.is_fillhole);
|
// ic.fillbackground = image_prc_param_.bits.erase_black_frame;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.ic.fillhole.fillholeratio=%f\r\n ", ic.fillhole.fillholeratio);
|
// ic.is_convex = (image_prc_param_.bits.fill_background == FILL_BKG_CONVEX_POLYGON);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.fadeback=%d\r\n ",ic.fadeback);
|
// ic.noise = image_prc_param_.bits.noise_optimize;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.enable=%d\r\n ",ic.cropRect.enable);
|
// ic.indent = margin_;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.height=%d\r\n ",ic.cropRect.height);
|
// ic.AutoCrop_threshold = threshold_;
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.width=%d\r\n ",ic.cropRect.width);
|
//
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%d\r\n ",ic.cropRect.x);
|
// if (test_1_paper_)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
// {
|
||||||
|
// LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
|
// ic.scannum = 1;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// ic.scannum = scan_count_;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// ic.is_backrotate180 = image_prc_param_.bits.rotate_back_180;
|
||||||
|
// ic.is_dogeardetection = image_prc_param_.bits.fractate_check;
|
||||||
|
//
|
||||||
|
// ic.hardwarecaps.en_skrewdetect = dsp_config_.params_dsp.screw_detect_enable;
|
||||||
|
// ic.hardwarecaps.en_doublefeed = dsp_config_.params_dsp.double_feed_enbale;
|
||||||
|
// ic.hardwarecaps.en_stapledetect = dsp_config_.params_dsp.stable_enbale;
|
||||||
|
// ic.hardwarecaps.skrewdetectlevel = dsp_config_.params_dsp.screw_detect_level;
|
||||||
|
// // ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
||||||
|
// ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
|
// ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
||||||
|
//
|
||||||
|
// ic.fillhole.is_fillhole = image_prc_param_.bits.rid_hole;
|
||||||
|
// ic.fillhole.fillholeratio = rid_hole_range_;
|
||||||
|
// adjust_filling_hole(&ic);
|
||||||
|
//
|
||||||
|
// ic.detachnoise.is_detachnoise = image_prc_param_.bits.noise_optimize;
|
||||||
|
// ic.detachnoise.detachnoise = noise_range_;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// ic.is_autotext = image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO ? 1 :0;
|
||||||
|
// ic.isfillcolor = is_color_fill;
|
||||||
|
// ic.refuseInflow = image_prc_param_.bits.is_permeate;
|
||||||
|
// ic.colorCorrection = 0;
|
||||||
|
// ic.removeMorr = image_prc_param_.bits.remove_morr;
|
||||||
|
// ic.errorExtention = image_prc_param_.bits.error_extention ;//暂无参数
|
||||||
|
// ic.textureRemove = image_prc_param_.bits.remove_txtture;//暂无参数
|
||||||
|
// ic.splitImage = image_prc_param_.bits.split;
|
||||||
|
//
|
||||||
|
// //custom_area_br_x_ *ic.resolution_dst /25.4;
|
||||||
|
// //custom_area_br_y_ *ic.resolution_dst /25.4;
|
||||||
|
//
|
||||||
|
// ic.cropRect.enable = custom_area_;
|
||||||
|
//
|
||||||
|
// int height = (custom_area_br_y_ *ic.resolution_dst) /25.4 - (custom_area_lt_y_ *ic.resolution_dst /25.4);
|
||||||
|
// int width = (custom_area_br_x_ *ic.resolution_dst) /25.4 - (custom_area_lt_x_ *ic.resolution_dst /25.4);
|
||||||
|
// ic.cropRect.height = height;
|
||||||
|
// ic.cropRect.width = width;
|
||||||
|
// ic.cropRect.x = custom_area_lt_x_ *ic.resolution_dst /25.4;
|
||||||
|
// ic.cropRect.y = custom_area_lt_y_ *ic.resolution_dst /25.4;
|
||||||
|
//
|
||||||
|
// ic.multiOutput = (MultiOutput)image_prc_param_.bits.multi_out;
|
||||||
|
// if (!is_multiout)
|
||||||
|
// {
|
||||||
|
// ic.multiOutput = MultiOutput::Unused;
|
||||||
|
// }
|
||||||
|
// ic.normalCrop = image_prc_param_.bits.dark_sample;
|
||||||
|
// ic.dogeardistabce = fractate_level_;
|
||||||
|
// ic.fadeback = image_prc_param_.bits.erase_bakground;
|
||||||
|
// ic.fadebackrange = erase_bkg_range_;
|
||||||
|
// ic.isuoloadexceptionimage = (double_paper_handle_ & DOUBLE_PAPER_SAVE_IMG) == DOUBLE_PAPER_SAVE_IMG;
|
||||||
|
// ic.fold_concatmode = fold_type_;
|
||||||
|
// int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
||||||
|
// if(image_prc_param_.bits.color_mode == COLOR_MODE_24_BITS || image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH)
|
||||||
|
// ic.filter = 3;
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// ic.filter = filter_clr[image_prc_param_.bits.rid_color];
|
||||||
|
// // if(ic.filter != 3)
|
||||||
|
// // ic.pixtype = 2;
|
||||||
|
//
|
||||||
|
// ic.hsvcorrect = 0;
|
||||||
|
// ic.multi_output_red = 0;
|
||||||
|
// ic.multiOutput = MultiOutput::Unused;
|
||||||
|
// ic.fadeback = false;
|
||||||
|
// }
|
||||||
|
// //多留输出的处理
|
||||||
|
// if (image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW && is_multiout)
|
||||||
|
// {
|
||||||
|
// ic.pixtype = 1;
|
||||||
|
// }
|
||||||
|
// else if ((image_prc_param_.bits.multi_out == MULTI_OUT_ALL ||image_prc_param_.bits.multi_out == MULTI_COLOR_AND_GRAY||image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW) && is_multiout)
|
||||||
|
// {
|
||||||
|
// ic.pixtype = 2;
|
||||||
|
// }
|
||||||
|
// if (is_multiout)
|
||||||
|
// {
|
||||||
|
// ic.hsvcorrect = 0;
|
||||||
|
// ic.multi_output_red = 0;
|
||||||
|
// ic.fadeback = false;
|
||||||
|
// ic.sharpen = 0;
|
||||||
|
// ic.removeMorr = 0;
|
||||||
|
// ic.textureRemove = 0;
|
||||||
|
//
|
||||||
|
// ic.errorExtention = 0;
|
||||||
|
// ic.detachnoise.is_detachnoise = 0;
|
||||||
|
// }
|
||||||
|
// if (ic.pixtype == 0)
|
||||||
|
// {
|
||||||
|
// ic.hsvcorrect = 0;
|
||||||
|
// ic.multi_output_red = 0;
|
||||||
|
// ic.fadeback = false;
|
||||||
|
// ic.sharpen = 0;
|
||||||
|
// ic.removeMorr = 0;
|
||||||
|
// ic.textureRemove = 0;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// //自定义裁切
|
||||||
|
// if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
||||||
|
// ||image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||||||
|
// ||image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
||||||
|
// ||image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// ic.cropRect.enable = false;
|
||||||
|
// }
|
||||||
|
// img_conf_ = ic;
|
||||||
|
//
|
||||||
|
// agreement();
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.pixtype=%d", ic.pixtype);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.papertype=%d", ic.papertype);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.AutoCrop_threshold=%d", ic.AutoCrop_threshold);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.autodescrew=%d", ic.autodescrew);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.automaticcolor=%d", ic.automaticcolor);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.brightness=%f", ic.brightness);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.contrast=%f", ic.contrast);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.en_fold=%d", ic.en_fold);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.en_sizecheck=%d", ic.en_sizecheck);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.enhance_color=%d", ic.enhance_color);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.fillbackground=%d", ic.fillbackground);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.filter=%d", ic.filter);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.gamma=%f", ic.gamma);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.hardwarecaps.capturepixtype=%d", ic.hardwarecaps.capturepixtype);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.hardwarecaps.en_doublefeed=%d", ic.hardwarecaps.en_doublefeed);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.hsvcorrect=%d", ic.hsvcorrect);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.imageRotateDegree=%f", ic.imageRotateDegree);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.indent=%d", 5);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autocontrast=%d", ic.is_autocontrast);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autocrop=%d", ic.is_autocrop);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autodiscradblank_normal=%d", ic.is_autodiscradblank_normal);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autodiscradblank_vince=%d", ic.is_autodiscradblank_vince);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_autotext=%d", ic.is_autotext);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_backrotate180=%d", ic.is_backrotate180);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_convex=%d", ic.is_convex);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_duplex=%d", ic.is_duplex);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_switchfrontback=%d", ic.is_switchfrontback);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.is_dogeardetection=%d", ic.is_dogeardetection);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.fillhole.multi_output_red=%d", ic.multi_output_red);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.noise=%d", 8);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.resolution_dst=%f", ic.resolution_dst);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.resolution_native=%f", ic.resolution_native);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.scannum=%d", ic.scannum);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.sharpen=%d", ic.sharpen);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.discardblank_percent=%d", ic.discardblank_percent);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.detachnoise.is_detachnoise=%d", ic.detachnoise.is_detachnoise);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.detachnoise.detachnoise=%d\r ", ic.detachnoise.detachnoise);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.detachnoise.refuseInflow=%d\r ", ic.refuseInflow);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.refuseInflow=%d\r ", ic.refuseInflow);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.removeMorr=%d\r ", ic.removeMorr);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.errorExtention=%d\r ", ic.errorExtention);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.textureRemove=%d\r\n ", ic.textureRemove);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.fillhole.is_fillhole=%d\r\n ", ic.fillhole.is_fillhole);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.ic.fillhole.fillholeratio=%f\r\n ", ic.fillhole.fillholeratio);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.fadeback=%d\r\n ",ic.fadeback);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.enable=%d\r\n ",ic.cropRect.enable);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.height=%d\r\n ",ic.cropRect.height);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.width=%d\r\n ",ic.cropRect.width);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%d\r\n ",ic.cropRect.x);
|
||||||
|
// VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
||||||
|
|
||||||
}
|
}
|
||||||
void hg_scanner_200::printf_devconfig(setting_hardware::HGSCANCONF_DSP *d)
|
void hg_scanner_200::printf_devconfig(setting_hardware::HGSCANCONF_DSP *d)
|
||||||
|
@ -892,13 +913,13 @@ int hg_scanner_200::agreement()
|
||||||
int ret = SCANNER_ERR_OK;
|
int ret = SCANNER_ERR_OK;
|
||||||
|
|
||||||
|
|
||||||
if (image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
//if (image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
||||||
{
|
//{
|
||||||
dsp_config_.params_dsp.color = 1;
|
// dsp_config_.params_dsp.color = 1;
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
ret = writedown_device_configuration(true);
|
ret = writedown_device_configuration(true);
|
||||||
io_->set_timeout(200);
|
//io_->set_timeout(200);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -336,25 +336,25 @@ void hg_scanner_239::init_version(void)
|
||||||
is_kernelsnap_220830_ = false;
|
is_kernelsnap_220830_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hg_scanner_239::writedown_device_configuration(setting_hardware::HGSCANCONF_3399 *dev_conf)
|
int hg_scanner_239::writedown_device_configuration(bool type, setting_hardware::HGSCANCONF_3399* dev_conf)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
int ret = SCANNER_ERR_OK;
|
||||||
|
if (!type)
|
||||||
|
return ret;
|
||||||
if (!dev_conf)
|
if (!dev_conf)
|
||||||
{
|
|
||||||
dev_conf = &dev_conf_;
|
dev_conf = &dev_conf_;
|
||||||
|
|
||||||
|
if (is_multiout)
|
||||||
|
{
|
||||||
|
dev_conf->params_3399.color = image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW ? 0 : 1;
|
||||||
}
|
}
|
||||||
if (image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
else if ((image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY
|
||||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE))
|
|| image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||||
|
&& image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
||||||
{
|
{
|
||||||
dev_conf->params_3399.color = 1;
|
dev_conf->params_3399.color = 1;
|
||||||
}
|
}
|
||||||
else if (image_prc_param_.bits.rid_color == RID_COLOR_NONE
|
|
||||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE))
|
|
||||||
{
|
|
||||||
dev_conf->params_3399.color = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
||||||
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||||||
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
||||||
|
@ -382,74 +382,11 @@ int hg_scanner_239::writedown_image_configuration(void)
|
||||||
int len = sizeof(ic);
|
int len = sizeof(ic);
|
||||||
|
|
||||||
bzero(&ic, len);
|
bzero(&ic, len);
|
||||||
|
ic.en_sizecheck = dev_conf_.params_3399.enable_sizecheck;
|
||||||
ic.papertype = paper_size_;
|
ic.hardwarecaps.en_skrewdetect = dev_conf_.params_3399.screw_detect_enable;
|
||||||
|
ic.hardwarecaps.en_doublefeed = dev_conf_.params_3399.ultrasonic_enable;
|
||||||
if (is_lateral(image_prc_param_.bits.paper))
|
ic.hardwarecaps.en_stapledetect = dev_conf_.params_3399.staple_enbale;
|
||||||
ic.paperAlign = Rot270;
|
ic.hardwarecaps.skrewdetectlevel = dev_conf_.params_3399.screw_detect_level;
|
||||||
else
|
|
||||||
ic.paperAlign = Rot0;
|
|
||||||
|
|
||||||
ic.en_sizecheck = dev_conf_.params_3399.enable_sizecheck;
|
|
||||||
|
|
||||||
if (image_prc_param_.bits.text_direction != TEXT_DIRECTION_AUTO)
|
|
||||||
ic.imageRotateDegree = (float)image_prc_param_.bits.text_direction;
|
|
||||||
else
|
|
||||||
ic.imageRotateDegree = 0;
|
|
||||||
|
|
||||||
ic.imageRotateDegree *= 90.0f;
|
|
||||||
ic.is_duplex = (image_prc_param_.bits.page == PAGE_DOUBLE
|
|
||||||
|| image_prc_param_.bits.page == PAGE_OMIT_EMPTY
|
|
||||||
|| image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT
|
|
||||||
|| image_prc_param_.bits.page ==PAGE_FOLIO);
|
|
||||||
|
|
||||||
ic.en_fold = (image_prc_param_.bits.page == PAGE_FOLIO);
|
|
||||||
ic.pixtype = image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH ? 2 : image_prc_param_.bits.color_mode;
|
|
||||||
ic.automaticcolor = is_auto_matic_color;
|
|
||||||
ic.automaticcolortype = 1;// ic.pixtype; //存疑
|
|
||||||
if (resolution_ >= 300)
|
|
||||||
{
|
|
||||||
if(is_quality_ == IMG_SPEED)
|
|
||||||
{
|
|
||||||
ic.resolution_dst = 200;
|
|
||||||
}
|
|
||||||
else if(is_quality_ ==IMG_QUALITY)
|
|
||||||
{
|
|
||||||
ic.resolution_dst = resolution_;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ic.resolution_dst = resolution_;
|
|
||||||
}
|
|
||||||
|
|
||||||
ic.resolution_native = 200.0f;
|
|
||||||
ic.gamma = (float)gamma_;
|
|
||||||
ic.contrast = (contrast_ - 4) * 333.0;
|
|
||||||
ic.brightness = (bright_ - 128) * (2000.0 / 254.0);
|
|
||||||
ic.threshold = threshold_;
|
|
||||||
ic.is_autocontrast = 0; //无参数
|
|
||||||
ic.is_autocrop = (ic.papertype == TwSS::None || ic.papertype ==TwSS::USStatement);
|
|
||||||
ic.is_autodiscradblank_normal = image_prc_param_.bits.page == PAGE_OMIT_EMPTY;
|
|
||||||
ic.discardblank_percent = omit_empty_level_ >= 70 ? 70 : omit_empty_level_;
|
|
||||||
ic.is_autodiscradblank_vince = image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT;
|
|
||||||
ic.is_switchfrontback = image_prc_param_.bits.exchange;
|
|
||||||
ic.autodescrew = image_prc_param_.bits.automatic_skew;
|
|
||||||
//ic.multi_output_red = image_prc_param_.bits.rid_red; //必须屏蔽,否则超时,未知错误不可描述。
|
|
||||||
ic.hsvcorrect = image_prc_param_.bits.rid_answer_red;
|
|
||||||
ic.sharpen = image_prc_param_.bits.sharpen;
|
|
||||||
//ic.enhance_color = image_prc_param_.bits.rid_color; //加这个会有问题
|
|
||||||
ic.fillbackground = image_prc_param_.bits.erase_black_frame;
|
|
||||||
ic.is_convex = (image_prc_param_.bits.fill_background == FILL_BKG_CONVEX_POLYGON);
|
|
||||||
if (ic.resolution_dst == 300)
|
|
||||||
ic.noise = anti_noise_ * 1.5;
|
|
||||||
else if(ic.resolution_dst == 600)
|
|
||||||
ic.noise = anti_noise_ * 3;
|
|
||||||
else
|
|
||||||
ic.noise = anti_noise_;
|
|
||||||
|
|
||||||
ic.indent = margin_;
|
|
||||||
ic.AutoCrop_threshold = threshold_;
|
|
||||||
if (test_1_paper_)
|
if (test_1_paper_)
|
||||||
{
|
{
|
||||||
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
|
@ -462,100 +399,191 @@ int hg_scanner_239::writedown_image_configuration(void)
|
||||||
else
|
else
|
||||||
ic.scannum = (ic.is_duplex ? scan_count_ * 2 : scan_count_);
|
ic.scannum = (ic.is_duplex ? scan_count_ * 2 : scan_count_);
|
||||||
}
|
}
|
||||||
ic.is_backrotate180 = image_prc_param_.bits.rotate_back_180;
|
ic.contrast = (contrast_ - 4) * 333.0;
|
||||||
ic.is_dogeardetection = image_prc_param_.bits.fractate_check;
|
ic.brightness = (bright_ - 128) * (2000.0 / 254.0);
|
||||||
ic.hardwarecaps.en_skrewdetect = dev_conf_.params_3399.screw_detect_enable;
|
image_configuration(ic);
|
||||||
ic.hardwarecaps.en_doublefeed = dev_conf_.params_3399.ultrasonic_enable;
|
|
||||||
ic.hardwarecaps.en_stapledetect = dev_conf_.params_3399.staple_enbale;
|
|
||||||
ic.hardwarecaps.skrewdetectlevel = dev_conf_.params_3399.screw_detect_level;
|
|
||||||
// ic.hardwarecaps.is_autopaper = dev_conf_.params_3399.is_autopaper;
|
|
||||||
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
|
||||||
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
|
||||||
ic.fillhole.is_fillhole = image_prc_param_.bits.rid_hole;
|
|
||||||
ic.fillhole.fillholeratio = rid_hole_range_;
|
|
||||||
ic.detachnoise.is_detachnoise = image_prc_param_.bits.noise_optimize;
|
|
||||||
ic.detachnoise.detachnoise = noise_range_;
|
|
||||||
ic.is_autotext = image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO ? 1 :0;
|
|
||||||
ic.isfillcolor = is_color_fill;
|
|
||||||
ic.refuseInflow = image_prc_param_.bits.is_permeate;
|
|
||||||
ic.colorCorrection = 0;
|
|
||||||
ic.removeMorr = image_prc_param_.bits.remove_morr;
|
|
||||||
ic.errorExtention = image_prc_param_.bits.error_extention ;//
|
|
||||||
ic.textureRemove = image_prc_param_.bits.remove_txtture;//
|
|
||||||
ic.splitImage = image_prc_param_.bits.split;
|
|
||||||
{
|
|
||||||
ic.cropRect.enable = custom_area_;
|
|
||||||
int height = (custom_area_br_y_ *ic.resolution_dst) /25.4 - (custom_area_lt_y_ *ic.resolution_dst /25.4);
|
|
||||||
int width = (custom_area_br_x_ *ic.resolution_dst) /25.4 - (custom_area_lt_x_ *ic.resolution_dst /25.4);
|
|
||||||
ic.cropRect.height = height;
|
|
||||||
ic.cropRect.width = width;
|
|
||||||
ic.cropRect.x = custom_area_lt_x_ *ic.resolution_dst /25.4;
|
|
||||||
ic.cropRect.y = custom_area_lt_y_ *ic.resolution_dst /25.4;
|
|
||||||
}
|
|
||||||
ic.multiOutput = (MultiOutput)image_prc_param_.bits.multi_out;
|
|
||||||
ic.normalCrop = image_prc_param_.bits.dark_sample;
|
|
||||||
ic.dogeardistabce = fractate_level_;
|
|
||||||
ic.fadeback = image_prc_param_.bits.erase_bakground;
|
|
||||||
ic.fadebackrange = erase_bkg_range_;
|
|
||||||
ic.isuoloadexceptionimage = (double_paper_handle_ & DOUBLE_PAPER_SAVE_IMG) == DOUBLE_PAPER_SAVE_IMG;
|
|
||||||
adjust_filling_hole(&ic);
|
|
||||||
ic.fold_concatmode = fold_type_;
|
|
||||||
//多流输出优先级最高
|
|
||||||
if (is_multiout)
|
|
||||||
{
|
|
||||||
ic.pixtype = image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW ? COLOR_MODE_256_GRAY : COLOR_MODE_24_BITS;
|
|
||||||
ic.filter = 3;
|
|
||||||
ic.hsvcorrect = 0;
|
|
||||||
ic.multi_output_red = 0;
|
|
||||||
ic.fadeback = false;
|
|
||||||
ic.sharpen = 0;
|
|
||||||
ic.removeMorr = 0;
|
|
||||||
ic.textureRemove = 0;
|
|
||||||
ic.errorExtention = 0;
|
|
||||||
ic.detachnoise.is_detachnoise = 0;
|
|
||||||
}
|
|
||||||
else if(image_prc_param_.bits.multi_out == COLOR_MODE_24_BITS)
|
|
||||||
{
|
|
||||||
ic.filter = 3;
|
|
||||||
ic.errorExtention = 0;
|
|
||||||
ic.detachnoise.is_detachnoise = 0;
|
|
||||||
}
|
|
||||||
else if (image_prc_param_.bits.multi_out == COLOR_MODE_256_GRAY)
|
|
||||||
{
|
|
||||||
int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
|
||||||
ic.filter = filter_clr[image_prc_param_.bits.rid_color];
|
|
||||||
ic.multi_output_red = 0;
|
|
||||||
ic.hsvcorrect = 0;
|
|
||||||
ic.fadeback = false;
|
|
||||||
ic.errorExtention = 0;
|
|
||||||
ic.detachnoise.is_detachnoise = 0;
|
|
||||||
}
|
|
||||||
else if (image_prc_param_.bits.multi_out == COLOR_MODE_BLACK_WHITE)
|
|
||||||
{
|
|
||||||
int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
|
||||||
ic.filter = filter_clr[image_prc_param_.bits.rid_color];
|
|
||||||
ic.multi_output_red = 0;
|
|
||||||
ic.hsvcorrect = 0;
|
|
||||||
ic.fadeback = false;
|
|
||||||
ic.sharpen = 0;
|
|
||||||
ic.removeMorr = 0;
|
|
||||||
ic.textureRemove = 0;
|
|
||||||
}
|
|
||||||
else if (image_prc_param_.bits.multi_out == COLOR_MODE_AUTO_MATCH)
|
|
||||||
{
|
|
||||||
ic.pixtype = 2;
|
|
||||||
ic.filter = 3;
|
|
||||||
ic.hsvcorrect = 0;
|
|
||||||
ic.multi_output_red = 0;
|
|
||||||
ic.fadeback = false;
|
|
||||||
ic.sharpen = 0;
|
|
||||||
ic.removeMorr = 0;
|
|
||||||
ic.textureRemove = 0;
|
|
||||||
ic.errorExtention = 0;
|
|
||||||
ic.detachnoise.is_detachnoise = 0;
|
|
||||||
|
|
||||||
}
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(io_lock_);
|
||||||
|
|
||||||
|
ret = io_->write_bulk(&ic, &len);
|
||||||
|
|
||||||
|
this_thread::sleep_for(chrono::milliseconds(500));
|
||||||
|
io_->set_timeout(2000);//必要延时
|
||||||
|
}
|
||||||
|
// ic.papertype = paper_size_;
|
||||||
|
//
|
||||||
|
// if (is_lateral(image_prc_param_.bits.paper))
|
||||||
|
// ic.paperAlign = Rot270;
|
||||||
|
// else
|
||||||
|
// ic.paperAlign = Rot0;
|
||||||
|
//
|
||||||
|
// ic.en_sizecheck = dev_conf_.params_3399.enable_sizecheck;
|
||||||
|
//
|
||||||
|
// if (image_prc_param_.bits.text_direction != TEXT_DIRECTION_AUTO)
|
||||||
|
// ic.imageRotateDegree = (float)image_prc_param_.bits.text_direction;
|
||||||
|
// else
|
||||||
|
// ic.imageRotateDegree = 0;
|
||||||
|
//
|
||||||
|
// ic.imageRotateDegree *= 90.0f;
|
||||||
|
// ic.is_duplex = (image_prc_param_.bits.page == PAGE_DOUBLE
|
||||||
|
// || image_prc_param_.bits.page == PAGE_OMIT_EMPTY
|
||||||
|
// || image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT
|
||||||
|
// || image_prc_param_.bits.page ==PAGE_FOLIO);
|
||||||
|
//
|
||||||
|
// ic.en_fold = (image_prc_param_.bits.page == PAGE_FOLIO);
|
||||||
|
// ic.pixtype = image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH ? 2 : image_prc_param_.bits.color_mode;
|
||||||
|
// ic.automaticcolor = is_auto_matic_color;
|
||||||
|
// ic.automaticcolortype = 1;// ic.pixtype; //存疑
|
||||||
|
// if (resolution_ >= 300)
|
||||||
|
// {
|
||||||
|
// if(is_quality_ == IMG_SPEED)
|
||||||
|
// {
|
||||||
|
// ic.resolution_dst = 200;
|
||||||
|
// }
|
||||||
|
// else if(is_quality_ ==IMG_QUALITY)
|
||||||
|
// {
|
||||||
|
// ic.resolution_dst = resolution_;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// ic.resolution_dst = resolution_;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// ic.resolution_native = 200.0f;
|
||||||
|
// ic.gamma = (float)gamma_;
|
||||||
|
// ic.contrast = (contrast_ - 4) * 333.0;
|
||||||
|
// ic.brightness = (bright_ - 128) * (2000.0 / 254.0);
|
||||||
|
// ic.threshold = threshold_;
|
||||||
|
// ic.is_autocontrast = 0; //无参数
|
||||||
|
// ic.is_autocrop = (ic.papertype == TwSS::None || ic.papertype ==TwSS::USStatement);
|
||||||
|
// ic.is_autodiscradblank_normal = image_prc_param_.bits.page == PAGE_OMIT_EMPTY;
|
||||||
|
// ic.discardblank_percent = omit_empty_level_ >= 70 ? 70 : omit_empty_level_;
|
||||||
|
// ic.is_autodiscradblank_vince = image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT;
|
||||||
|
// ic.is_switchfrontback = image_prc_param_.bits.exchange;
|
||||||
|
// ic.autodescrew = image_prc_param_.bits.automatic_skew;
|
||||||
|
// //ic.multi_output_red = image_prc_param_.bits.rid_red; //必须屏蔽,否则超时,未知错误不可描述。
|
||||||
|
// ic.hsvcorrect = image_prc_param_.bits.rid_answer_red;
|
||||||
|
// ic.sharpen = image_prc_param_.bits.sharpen;
|
||||||
|
// //ic.enhance_color = image_prc_param_.bits.rid_color; //加这个会有问题
|
||||||
|
// ic.fillbackground = image_prc_param_.bits.erase_black_frame;
|
||||||
|
// ic.is_convex = (image_prc_param_.bits.fill_background == FILL_BKG_CONVEX_POLYGON);
|
||||||
|
// if (ic.resolution_dst == 300)
|
||||||
|
// ic.noise = anti_noise_ * 1.5;
|
||||||
|
// else if(ic.resolution_dst == 600)
|
||||||
|
// ic.noise = anti_noise_ * 3;
|
||||||
|
// else
|
||||||
|
// ic.noise = anti_noise_;
|
||||||
|
//
|
||||||
|
// ic.indent = margin_;
|
||||||
|
// ic.AutoCrop_threshold = threshold_;
|
||||||
|
// if (test_1_paper_)
|
||||||
|
// {
|
||||||
|
// LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
|
// ic.scannum = ic.is_duplex ? 2 : 1;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// if (scan_count_ == -1)
|
||||||
|
// ic.scannum = -1;
|
||||||
|
// else
|
||||||
|
// ic.scannum = (ic.is_duplex ? scan_count_ * 2 : scan_count_);
|
||||||
|
// }
|
||||||
|
// ic.is_backrotate180 = image_prc_param_.bits.rotate_back_180;
|
||||||
|
// ic.is_dogeardetection = image_prc_param_.bits.fractate_check;
|
||||||
|
// ic.hardwarecaps.en_skrewdetect = dev_conf_.params_3399.screw_detect_enable;
|
||||||
|
// ic.hardwarecaps.en_doublefeed = dev_conf_.params_3399.ultrasonic_enable;
|
||||||
|
// ic.hardwarecaps.en_stapledetect = dev_conf_.params_3399.staple_enbale;
|
||||||
|
// ic.hardwarecaps.skrewdetectlevel = dev_conf_.params_3399.screw_detect_level;
|
||||||
|
// // ic.hardwarecaps.is_autopaper = dev_conf_.params_3399.is_autopaper;
|
||||||
|
// ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
|
// ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
||||||
|
// ic.fillhole.is_fillhole = image_prc_param_.bits.rid_hole;
|
||||||
|
// ic.fillhole.fillholeratio = rid_hole_range_;
|
||||||
|
// ic.detachnoise.is_detachnoise = image_prc_param_.bits.noise_optimize;
|
||||||
|
// ic.detachnoise.detachnoise = noise_range_;
|
||||||
|
// ic.is_autotext = image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO ? 1 :0;
|
||||||
|
// ic.isfillcolor = is_color_fill;
|
||||||
|
// ic.refuseInflow = image_prc_param_.bits.is_permeate;
|
||||||
|
// ic.colorCorrection = 0;
|
||||||
|
// ic.removeMorr = image_prc_param_.bits.remove_morr;
|
||||||
|
// ic.errorExtention = image_prc_param_.bits.error_extention ;//
|
||||||
|
// ic.textureRemove = image_prc_param_.bits.remove_txtture;//
|
||||||
|
// ic.splitImage = image_prc_param_.bits.split;
|
||||||
|
//{
|
||||||
|
// ic.cropRect.enable = custom_area_;
|
||||||
|
// int height = (custom_area_br_y_ *ic.resolution_dst) /25.4 - (custom_area_lt_y_ *ic.resolution_dst /25.4);
|
||||||
|
// int width = (custom_area_br_x_ *ic.resolution_dst) /25.4 - (custom_area_lt_x_ *ic.resolution_dst /25.4);
|
||||||
|
// ic.cropRect.height = height;
|
||||||
|
// ic.cropRect.width = width;
|
||||||
|
// ic.cropRect.x = custom_area_lt_x_ *ic.resolution_dst /25.4;
|
||||||
|
// ic.cropRect.y = custom_area_lt_y_ *ic.resolution_dst /25.4;
|
||||||
|
//}
|
||||||
|
// ic.multiOutput = (MultiOutput)image_prc_param_.bits.multi_out;
|
||||||
|
// ic.normalCrop = image_prc_param_.bits.dark_sample;
|
||||||
|
// ic.dogeardistabce = fractate_level_;
|
||||||
|
// ic.fadeback = image_prc_param_.bits.erase_bakground;
|
||||||
|
// ic.fadebackrange = erase_bkg_range_;
|
||||||
|
// ic.isuoloadexceptionimage = (double_paper_handle_ & DOUBLE_PAPER_SAVE_IMG) == DOUBLE_PAPER_SAVE_IMG;
|
||||||
|
// adjust_filling_hole(&ic);
|
||||||
|
// ic.fold_concatmode = fold_type_;
|
||||||
|
////多流输出优先级最高
|
||||||
|
// if (is_multiout)
|
||||||
|
// {
|
||||||
|
// ic.pixtype = image_prc_param_.bits.multi_out == MULTI_GRAY_AND_BW ? COLOR_MODE_256_GRAY : COLOR_MODE_24_BITS;
|
||||||
|
// ic.filter = 3;
|
||||||
|
// ic.hsvcorrect = 0;
|
||||||
|
// ic.multi_output_red = 0;
|
||||||
|
// ic.fadeback = false;
|
||||||
|
// ic.sharpen = 0;
|
||||||
|
// ic.removeMorr = 0;
|
||||||
|
// ic.textureRemove = 0;
|
||||||
|
// ic.errorExtention = 0;
|
||||||
|
// ic.detachnoise.is_detachnoise = 0;
|
||||||
|
// }
|
||||||
|
// else if(image_prc_param_.bits.multi_out == COLOR_MODE_24_BITS)
|
||||||
|
// {
|
||||||
|
// ic.filter = 3;
|
||||||
|
// ic.errorExtention = 0;
|
||||||
|
// ic.detachnoise.is_detachnoise = 0;
|
||||||
|
// }
|
||||||
|
// else if (image_prc_param_.bits.multi_out == COLOR_MODE_256_GRAY)
|
||||||
|
// {
|
||||||
|
// int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
||||||
|
// ic.filter = filter_clr[image_prc_param_.bits.rid_color];
|
||||||
|
// ic.multi_output_red = 0;
|
||||||
|
// ic.hsvcorrect = 0;
|
||||||
|
// ic.fadeback = false;
|
||||||
|
// ic.errorExtention = 0;
|
||||||
|
// ic.detachnoise.is_detachnoise = 0;
|
||||||
|
// }
|
||||||
|
// else if (image_prc_param_.bits.multi_out == COLOR_MODE_BLACK_WHITE)
|
||||||
|
// {
|
||||||
|
// int filter_clr[] = { 3, 0, 1, 2, 5, 6, 7 };
|
||||||
|
// ic.filter = filter_clr[image_prc_param_.bits.rid_color];
|
||||||
|
// ic.multi_output_red = 0;
|
||||||
|
// ic.hsvcorrect = 0;
|
||||||
|
// ic.fadeback = false;
|
||||||
|
// ic.sharpen = 0;
|
||||||
|
// ic.removeMorr = 0;
|
||||||
|
// ic.textureRemove = 0;
|
||||||
|
// }
|
||||||
|
// else if (image_prc_param_.bits.multi_out == COLOR_MODE_AUTO_MATCH)
|
||||||
|
// {
|
||||||
|
// ic.pixtype = 2;
|
||||||
|
// ic.filter = 3;
|
||||||
|
// ic.hsvcorrect = 0;
|
||||||
|
// ic.multi_output_red = 0;
|
||||||
|
// ic.fadeback = false;
|
||||||
|
// ic.sharpen = 0;
|
||||||
|
// ic.removeMorr = 0;
|
||||||
|
// ic.textureRemove = 0;
|
||||||
|
// ic.errorExtention = 0;
|
||||||
|
// ic.detachnoise.is_detachnoise = 0;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
/*if (ic.filter != 3 && (image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE || image_prc_param_.bits.color_mode != COLOR_MODE_256_GRAY))
|
/*if (ic.filter != 3 && (image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE || image_prc_param_.bits.color_mode != COLOR_MODE_256_GRAY))
|
||||||
|
@ -598,25 +626,18 @@ int hg_scanner_239::writedown_image_configuration(void)
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
//自定义裁切
|
//自定义裁切
|
||||||
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
/*if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
||||||
||image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||||||
||image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
||image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
||||||
||image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
||image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ic.cropRect.enable = false;
|
ic.cropRect.enable = false;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
{
|
|
||||||
std::lock_guard<std::mutex> lock(io_lock_);
|
|
||||||
|
|
||||||
ret = io_->write_bulk(&ic, &len);
|
|
||||||
|
|
||||||
this_thread::sleep_for(chrono::milliseconds(500));
|
|
||||||
io_->set_timeout(2000);//必要延时
|
|
||||||
}
|
|
||||||
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Write-down 0x%x bytes image process parameters\n", len);
|
/*VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Write-down 0x%x bytes image process parameters\n", len);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.pixtype=%d", ic.pixtype);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.pixtype=%d", ic.pixtype);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.papertype=%d", ic.papertype);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.papertype=%d", ic.papertype);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.AutoCrop_threshold=%d", ic.AutoCrop_threshold);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.AutoCrop_threshold=%d", ic.AutoCrop_threshold);
|
||||||
|
@ -669,7 +690,7 @@ int hg_scanner_239::writedown_image_configuration(void)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%d\r\n ", ic.cropRect.x);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%d\r\n ", ic.cropRect.x);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
||||||
|
|
||||||
img_conf_ = ic;
|
img_conf_ = ic;*/
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -813,7 +834,12 @@ void hg_scanner_239::discard_all_images(void)
|
||||||
//color_mode =-1 除色选项
|
//color_mode =-1 除色选项
|
||||||
int hg_scanner_239::on_color_mode_changed(int& color_mode)
|
int hg_scanner_239::on_color_mode_changed(int& color_mode)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
|
||||||
|
dev_conf_.params_3399.color = (color_mode == COLOR_MODE_BLACK_WHITE || color_mode == COLOR_MODE_256_GRAY) ? 0 : 1;
|
||||||
|
|
||||||
|
return SCANNER_ERR_OK;
|
||||||
|
|
||||||
|
/*int ret = SCANNER_ERR_OK;
|
||||||
|
|
||||||
if ((((color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH) && !dev_conf_.params_3399.color) ||
|
if ((((color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH) && !dev_conf_.params_3399.color) ||
|
||||||
((color_mode != COLOR_MODE_24_BITS && color_mode != COLOR_MODE_AUTO_MATCH) && dev_conf_.params_3399.color)) && color_mode != -1)
|
((color_mode != COLOR_MODE_24_BITS && color_mode != COLOR_MODE_AUTO_MATCH) && dev_conf_.params_3399.color)) && color_mode != -1)
|
||||||
|
@ -827,33 +853,7 @@ int hg_scanner_239::on_color_mode_changed(int& color_mode)
|
||||||
{
|
{
|
||||||
dev_conf_.params_3399.color = 1;
|
dev_conf_.params_3399.color = 1;
|
||||||
}
|
}
|
||||||
|
return ret;*/
|
||||||
//setting_hardware::HGSCANCONF_3399 d = dev_conf_;
|
|
||||||
|
|
||||||
/*if (image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
|
||||||
&&(image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
d.params_3399.color = 1;
|
|
||||||
ret = writedown_device_configuration(&d);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
//if(image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
|
||||||
//&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
|
||||||
//&& color_mode == -1)
|
|
||||||
//{
|
|
||||||
// d.params_3399.color = 1;
|
|
||||||
//}
|
|
||||||
//else if (image_prc_param_.bits.rid_color == RID_COLOR_NONE
|
|
||||||
//&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
|
||||||
//&& color_mode == -1)
|
|
||||||
//{
|
|
||||||
// d.params_3399.color = 0;
|
|
||||||
//}
|
|
||||||
//if(color_mode == -1)
|
|
||||||
//ret = writedown_device_configuration(&d);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
int hg_scanner_239::on_paper_changed(int& paper)
|
int hg_scanner_239::on_paper_changed(int& paper)
|
||||||
{
|
{
|
||||||
|
@ -900,45 +900,10 @@ int hg_scanner_239::on_paper_check_changed(bool& check)
|
||||||
check = dev_conf_.params_3399.enable_sizecheck;
|
check = dev_conf_.params_3399.enable_sizecheck;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
|
||||||
// || image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
|
||||||
// || image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
|
||||||
// || image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
|
||||||
// || image_prc_param_.bits.paper == PAPER_16K
|
|
||||||
// || image_prc_param_.bits.paper == PAPER_8K
|
|
||||||
// || image_prc_param_.bits.paper == PAPER_16K_LATERAL
|
|
||||||
// )
|
|
||||||
//{
|
|
||||||
// setting_hardware::HGSCANCONF_3399* d = &dev_conf_;
|
|
||||||
// d->params_3399.enable_sizecheck = false;
|
|
||||||
// ret = writedown_device_configuration(d);
|
|
||||||
//}
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
int hg_scanner_239::on_resolution_changed(int& dpi)
|
int hg_scanner_239::on_resolution_changed(int& dpi)
|
||||||
{
|
{
|
||||||
//bool exact = true;
|
|
||||||
//int ind = settings::match_best_resolution(dpi, &exact),
|
|
||||||
// ret = exact ? SCANNER_ERR_OK : SCANNER_ERR_NOT_EXACT;
|
|
||||||
|
|
||||||
//if (dev_conf_.params_3399.dpi != settings::resolution_map[ind].dev_value)
|
|
||||||
//{
|
|
||||||
// int old = dev_conf_.params_3399.dpi;
|
|
||||||
// dev_conf_.params_3399.dpi = settings::resolution_map[ind].dev_value;
|
|
||||||
// dev_conf_.params_3399.dpi = 1;
|
|
||||||
// ret = writedown_device_configuration();
|
|
||||||
// if (ret)
|
|
||||||
// {
|
|
||||||
// dev_conf_.params_3399.dpi = old;
|
|
||||||
// }
|
|
||||||
// else if (!exact)
|
|
||||||
// ret = SCANNER_ERR_NOT_EXACT;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//if (ret == SCANNER_ERR_NOT_EXACT)
|
|
||||||
// dpi = settings::resolution_map[ind].resolution;
|
|
||||||
//return ret;
|
|
||||||
|
|
||||||
dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认发1无需改变
|
dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认发1无需改变
|
||||||
int ret = writedown_device_configuration();
|
int ret = writedown_device_configuration();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1373,7 +1338,7 @@ int hg_scanner_239::start(void)
|
||||||
notify_ui_working_status(STATU_DESC_REWRITE_CONFIGURATION);
|
notify_ui_working_status(STATU_DESC_REWRITE_CONFIGURATION);
|
||||||
if(ret == SCANNER_ERR_OK)
|
if(ret == SCANNER_ERR_OK)
|
||||||
{
|
{
|
||||||
ret = writedown_device_configuration();
|
ret = writedown_device_configuration(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ret == SCANNER_ERR_OK)
|
if(ret == SCANNER_ERR_OK)
|
||||||
|
|
|
@ -37,7 +37,7 @@ class hg_scanner_239 : public hg_scanner
|
||||||
int read_register(int addr, int* val);
|
int read_register(int addr, int* val);
|
||||||
int write_register(int addr, int val);
|
int write_register(int addr, int val);
|
||||||
int write_command(int cmd);
|
int write_command(int cmd);
|
||||||
int writedown_device_configuration(setting_hardware::HGSCANCONF_3399* dev_conf = NULL);
|
int writedown_device_configuration(bool type = false, setting_hardware::HGSCANCONF_3399* dev_conf = NULL);//false 在start再把type置为true,其他做设置时不发
|
||||||
int writedown_image_configuration(void);
|
int writedown_image_configuration(void);
|
||||||
int pop_first_image(void);
|
int pop_first_image(void);
|
||||||
int read_one_image_from_usb(SANE_Image_Statu statu = SANE_Image_Statu_OK);
|
int read_one_image_from_usb(SANE_Image_Statu statu = SANE_Image_Statu_OK);
|
||||||
|
|
|
@ -71,6 +71,10 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) : hg_sc
|
||||||
pid_ = pid;
|
pid_ = pid;
|
||||||
string fw = get_firmware_version();
|
string fw = get_firmware_version();
|
||||||
|
|
||||||
|
if (atoi(fw.substr(4, 9).c_str()) >= 221106)
|
||||||
|
is_kernelsnap3288_221106_ = true;
|
||||||
|
else
|
||||||
|
is_kernelsnap3288_221106_ = false;
|
||||||
initdevice();
|
initdevice();
|
||||||
#ifndef MAPPING_FUNCTION_IN_BASE
|
#ifndef MAPPING_FUNCTION_IN_BASE
|
||||||
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化
|
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化
|
||||||
|
@ -380,12 +384,28 @@ int hg_scanner_300::writedown_device_configuration(bool type,setting_hardware::H
|
||||||
|
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 0;
|
len = 0;
|
||||||
|
SIZE size;
|
||||||
if (!d)
|
if (!d)
|
||||||
{
|
{
|
||||||
dsp_config.params_3288.lutmode = keep_watermark_;
|
dsp_config.params_3288.lutmode = keep_watermark_;
|
||||||
d = &dsp_config;
|
d = &dsp_config;
|
||||||
}
|
}
|
||||||
|
if (is_multiout)
|
||||||
|
{
|
||||||
|
d->params_3288.isColor = image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW ? 0 : 1;
|
||||||
|
}
|
||||||
|
else if ((image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY
|
||||||
|
|| image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||||
|
&& image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
||||||
|
{
|
||||||
|
d->params_3288.isColor = 1;
|
||||||
|
}
|
||||||
|
if (img_conf_.is_autocrop)
|
||||||
|
{
|
||||||
|
d->params_3288.pageSize = setting3288dsp::G400_AUTO;
|
||||||
|
}
|
||||||
|
size = papersize.GetPaperSize(TwSS::A4, 200, img_conf_.paperAlign);
|
||||||
|
dsp_config.params_3288.dstHeight = (int)((size.cy + 200) / 100);
|
||||||
|
|
||||||
USBCB usbcb = { setting3288dsp::CONFIGURED_DATA, d->value, 0};
|
USBCB usbcb = { setting3288dsp::CONFIGURED_DATA, d->value, 0};
|
||||||
len = sizeof(USBCB);
|
len = sizeof(USBCB);
|
||||||
|
@ -398,42 +418,8 @@ int hg_scanner_300::writedown_device_configuration(bool type,setting_hardware::H
|
||||||
|
|
||||||
int hg_scanner_300::on_color_mode_changed(int& color_mode)
|
int hg_scanner_300::on_color_mode_changed(int& color_mode)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
dsp_config.params_3288.isColor = (color_mode == COLOR_MODE_BLACK_WHITE || color_mode == COLOR_MODE_256_GRAY) ? 0 : 1;
|
||||||
// if ((((color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH) && !dsp_config.params_3288.color) ||
|
return SCANNER_ERR_OK;
|
||||||
// ((color_mode != COLOR_MODE_24_BITS && color_mode != COLOR_MODE_AUTO_MATCH) && dsp_config.params_3288.color)) && color_mode != -1)
|
|
||||||
// {
|
|
||||||
// printf("color_mode111111111111111111111 =%d\r\n",color_mode);
|
|
||||||
// dsp_config.params_3288.color ^= 1;
|
|
||||||
|
|
||||||
// //ret = writedown_device_configuration();
|
|
||||||
// printf("on_color_mode_changed ret =%d\r\n",ret);
|
|
||||||
// if(ret)
|
|
||||||
// dsp_config.params_3288.color ^= 1;
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (color_mode == COLOR_MODE_BLACK_WHITE || color_mode == COLOR_MODE_256_GRAY)
|
|
||||||
{
|
|
||||||
dsp_config.params_3288.isColor = 0;
|
|
||||||
}
|
|
||||||
else if(color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH)
|
|
||||||
{
|
|
||||||
dsp_config.params_3288.isColor = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
setting_hardware::HGSCANCONF_3288 d = dsp_config;
|
|
||||||
if(image_prc_param_.bits.rid_color != RID_COLOR_NONE && image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY && color_mode == -1)
|
|
||||||
{
|
|
||||||
d.params_3288.isColor = 1;
|
|
||||||
}
|
|
||||||
else if (image_prc_param_.bits.rid_color == RID_COLOR_NONE && image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY && color_mode == -1)
|
|
||||||
{
|
|
||||||
d.params_3288.isColor = 0;
|
|
||||||
}
|
|
||||||
if(color_mode == -1)
|
|
||||||
ret = writedown_device_configuration(false,&d);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
int hg_scanner_300::on_paper_changed(int& paper)
|
int hg_scanner_300::on_paper_changed(int& paper)
|
||||||
{
|
{
|
||||||
|
@ -483,7 +469,8 @@ int hg_scanner_300::on_paper_check_changed(bool& check)
|
||||||
int hg_scanner_300::on_resolution_changed(int& dpi)
|
int hg_scanner_300::on_resolution_changed(int& dpi)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
int ret = SCANNER_ERR_OK;
|
||||||
dsp_config.params_3288.dpi = 1;
|
dsp_config.params_3288.dpi = is_kernelsnap3288_221106_ ? (dsp_config.params_3288.dpi = (dpi > 200) ? 2 : 1) : dsp_config.params_3288.dpi = 1;//暂时还未有固件支持
|
||||||
|
|
||||||
ret = writedown_device_configuration();
|
ret = writedown_device_configuration();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -512,17 +499,7 @@ int hg_scanner_300::agreement(TwSS tw,int align)
|
||||||
setting_hardware::HGSCANCONF_3288 d = dsp_config;
|
setting_hardware::HGSCANCONF_3288 d = dsp_config;
|
||||||
size = papersize.GetPaperSize(TwSS::A4,200,align);
|
size = papersize.GetPaperSize(TwSS::A4,200,align);
|
||||||
dsp_config.params_3288.dstHeight = (int)((size.cy + 200)/100);
|
dsp_config.params_3288.dstHeight = (int)((size.cy + 200)/100);
|
||||||
if (img_conf_.is_autocrop)
|
|
||||||
{
|
|
||||||
dsp_config.params_3288.pageSize = setting3288dsp::G400_AUTO;
|
|
||||||
}
|
|
||||||
if (img_conf_.filter != 3)
|
|
||||||
{
|
|
||||||
d.params_3288.isColor = 1;
|
|
||||||
}
|
|
||||||
ret = writedown_device_configuration(true,&d);
|
ret = writedown_device_configuration(true,&d);
|
||||||
//io_->set_timeout(200);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
int hg_scanner_300::initdevice()
|
int hg_scanner_300::initdevice()
|
||||||
|
@ -542,6 +519,35 @@ int hg_scanner_300::initdevice()
|
||||||
void hg_scanner_300::writedown_image_configuration(void)
|
void hg_scanner_300::writedown_image_configuration(void)
|
||||||
{
|
{
|
||||||
SCANCONF ic;
|
SCANCONF ic;
|
||||||
|
int len = sizeof(ic);
|
||||||
|
|
||||||
|
bzero(&ic, len);
|
||||||
|
|
||||||
|
ic.contrast = contrast_;
|
||||||
|
ic.brightness = bright_;
|
||||||
|
if (test_1_paper_)
|
||||||
|
{
|
||||||
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
|
ic.scannum = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ic.scannum = scan_count_;
|
||||||
|
ic.en_sizecheck = dsp_config.params_3288.enableSizeDetect;
|
||||||
|
ic.hardwarecaps.en_skrewdetect = 0;
|
||||||
|
ic.hardwarecaps.en_doublefeed = dsp_config.params_3288.doubleFeeded;
|
||||||
|
ic.hardwarecaps.en_stapledetect = 0;
|
||||||
|
ic.hardwarecaps.skrewdetectlevel = 0;
|
||||||
|
|
||||||
|
// ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
||||||
|
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
|
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
||||||
|
|
||||||
|
|
||||||
|
image_configuration(ic);
|
||||||
|
//int ret = agreement((TwSS)img_conf_.papertype, img_conf_.paperAlign);
|
||||||
|
|
||||||
|
|
||||||
|
/*SCANCONF ic;
|
||||||
|
|
||||||
ic.papertype = paper_size_;
|
ic.papertype = paper_size_;
|
||||||
|
|
||||||
|
@ -754,6 +760,7 @@ void hg_scanner_300::writedown_image_configuration(void)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.width=%d\r\n ",ic.cropRect.width);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.width=%d\r\n ",ic.cropRect.width);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%d\r\n ",ic.cropRect.x);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%d\r\n ",ic.cropRect.x);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void hg_scanner_300::printf_devconfig(setting_hardware::HGSCANCONF_3288 *d)
|
void hg_scanner_300::printf_devconfig(setting_hardware::HGSCANCONF_3288 *d)
|
||||||
|
@ -993,20 +1000,6 @@ int hg_scanner_300::on_skew_check_level_changed(int& check)
|
||||||
return SCANNER_ERR_OK;
|
return SCANNER_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hg_scanner_300::agreement()
|
|
||||||
{
|
|
||||||
int ret = SCANNER_ERR_OK;
|
|
||||||
|
|
||||||
if (image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
|
||||||
{
|
|
||||||
dsp_config.params_3288.isColor = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = writedown_device_configuration(true);
|
|
||||||
//io_->set_timeout(200);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int hg_scanner_300::on_set_feedmode(int feedmode)
|
int hg_scanner_300::on_set_feedmode(int feedmode)
|
||||||
{
|
{
|
||||||
|
|
|
@ -47,7 +47,6 @@ public:
|
||||||
virtual int stop(void)override;
|
virtual int stop(void)override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int agreement();
|
|
||||||
int agreement(TwSS tw,int align);
|
int agreement(TwSS tw,int align);
|
||||||
int initdevice();
|
int initdevice();
|
||||||
int writeusb(USBCB &usb);
|
int writeusb(USBCB &usb);
|
||||||
|
@ -66,6 +65,7 @@ private:
|
||||||
setting_hardware::HGSCANCONF_3288 dsp_config;
|
setting_hardware::HGSCANCONF_3288 dsp_config;
|
||||||
Device::PaperSize papersize;
|
Device::PaperSize papersize;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual int set_leaflet_scan(void);//单张扫描
|
virtual int set_leaflet_scan(void);//单张扫描
|
||||||
virtual int get_abuot_info(void);//获取软件关于信息
|
virtual int get_abuot_info(void);//获取软件关于信息
|
||||||
|
|
|
@ -442,16 +442,37 @@ int hg_scanner_302::get_device_paperon_stautus(void)
|
||||||
// return ret;
|
// return ret;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
int hg_scanner_302::writedown_device_configuration(setting_hardware::HGSCANCONF_3399 *dev_conf)
|
int hg_scanner_302::writedown_device_configuration(bool type,setting_hardware::HGSCANCONF_3399 *dev_conf)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
int ret = SCANNER_ERR_OK;
|
||||||
|
if (!type)
|
||||||
|
return ret;
|
||||||
if (!dev_conf)
|
if (!dev_conf)
|
||||||
{
|
{
|
||||||
dev_conf_.params_3399.is_textcorrect = !keep_watermark_;
|
dev_conf_.params_3399.is_textcorrect = !keep_watermark_;
|
||||||
dev_conf = &dev_conf_;
|
dev_conf = &dev_conf_;
|
||||||
}
|
}
|
||||||
|
if (is_multiout)
|
||||||
|
{
|
||||||
|
dev_conf->params_3399.color = image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW ? 0 : 1;
|
||||||
|
}
|
||||||
|
else if ((image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY
|
||||||
|
|| image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||||
|
&& image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
||||||
|
{
|
||||||
|
dev_conf->params_3399.color = 1;
|
||||||
|
}
|
||||||
|
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
||||||
|
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||||||
|
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
||||||
|
|| image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
||||||
|
|| image_prc_param_.bits.paper == PAPER_16K
|
||||||
|
|| image_prc_param_.bits.paper == PAPER_8K
|
||||||
|
|| image_prc_param_.bits.paper == PAPER_16K_LATERAL
|
||||||
|
)
|
||||||
|
{
|
||||||
|
dev_conf->params_3399.enable_sizecheck = false;
|
||||||
|
}
|
||||||
ret = write_register(setting3399::SR_CONFIG_SCAN_PARAM, dev_conf->value);
|
ret = write_register(setting3399::SR_CONFIG_SCAN_PARAM, dev_conf->value);
|
||||||
|
|
||||||
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "Writedown scanner configuration(0x%x) = %s\n", dev_conf->value, hg_scanner_err_name(ret));
|
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "Writedown scanner configuration(0x%x) = %s\n", dev_conf->value, hg_scanner_err_name(ret));
|
||||||
|
@ -460,16 +481,47 @@ int hg_scanner_302::writedown_device_configuration(setting_hardware::HGSCANCONF_
|
||||||
|
|
||||||
int hg_scanner_302::writedown_image_configuration(void)
|
int hg_scanner_302::writedown_image_configuration(void)
|
||||||
{
|
{
|
||||||
//int ret = write_register(SR_CONFIF_IMGPROCPARAM, sizeof(SCANCONF));
|
|
||||||
//if (ret != SCANNER_ERR_OK)
|
|
||||||
// return ret;
|
|
||||||
|
|
||||||
int ret = SCANNER_ERR_OK;
|
int ret = SCANNER_ERR_OK;
|
||||||
SCANCONF ic;
|
SCANCONF ic;
|
||||||
int len = sizeof(ic);
|
int len = sizeof(ic);
|
||||||
|
|
||||||
bzero(&ic, len);
|
bzero(&ic, len);
|
||||||
|
|
||||||
|
ic.en_sizecheck = dev_conf_.params_3399.enable_sizecheck;
|
||||||
|
ic.hardwarecaps.en_skrewdetect = dev_conf_.params_3399.screw_detect_enable;
|
||||||
|
ic.hardwarecaps.en_doublefeed = dev_conf_.params_3399.ultrasonic_enable;
|
||||||
|
ic.hardwarecaps.en_stapledetect = dev_conf_.params_3399.staple_enbale;
|
||||||
|
ic.hardwarecaps.skrewdetectlevel = dev_conf_.params_3399.screw_detect_level;
|
||||||
|
if (test_1_paper_)
|
||||||
|
{
|
||||||
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
|
ic.scannum = /*ic.is_duplex ? 2 :*/ 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (scan_count_ == -1)
|
||||||
|
ic.scannum = -1;
|
||||||
|
else
|
||||||
|
ic.scannum = (ic.is_duplex ? scan_count_ * 2 : scan_count_);
|
||||||
|
}
|
||||||
|
ic.contrast = (contrast_ - 4) * 333.0;
|
||||||
|
ic.brightness = (bright_ - 128) * (2000.0 / 254.0);
|
||||||
|
image_configuration(ic);
|
||||||
|
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(io_lock_);
|
||||||
|
|
||||||
|
ret = io_->write_bulk(&ic, &len);
|
||||||
|
|
||||||
|
this_thread::sleep_for(chrono::milliseconds(500));
|
||||||
|
io_->set_timeout(2000);//必要延时
|
||||||
|
}
|
||||||
|
/*int ret = SCANNER_ERR_OK;
|
||||||
|
SCANCONF ic;
|
||||||
|
int len = sizeof(ic);
|
||||||
|
|
||||||
|
bzero(&ic, len);
|
||||||
|
|
||||||
ic.papertype = paper_size_;
|
ic.papertype = paper_size_;
|
||||||
|
|
||||||
if (is_lateral(image_prc_param_.bits.paper))
|
if (is_lateral(image_prc_param_.bits.paper))
|
||||||
|
@ -540,7 +592,7 @@ int hg_scanner_302::writedown_image_configuration(void)
|
||||||
if (test_1_paper_)
|
if (test_1_paper_)
|
||||||
{
|
{
|
||||||
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
ic.scannum = /*ic.is_duplex ? 2 :*/ 1;
|
ic.scannum = 1//ic.is_duplex ? 2 : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -709,7 +761,7 @@ int hg_scanner_302::writedown_image_configuration(void)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%f\r\n ", ic.cropRect.x);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%f\r\n ", ic.cropRect.x);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
||||||
|
|
||||||
img_conf_ = ic;
|
img_conf_ = ic*/
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -850,47 +902,26 @@ void hg_scanner_302::discard_all_images(void)
|
||||||
//color_mode =-1 除色选项
|
//color_mode =-1 除色选项
|
||||||
int hg_scanner_302::on_color_mode_changed(int& color_mode)
|
int hg_scanner_302::on_color_mode_changed(int& color_mode)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
|
||||||
|
dev_conf_.params_3399.color = (color_mode == COLOR_MODE_BLACK_WHITE || color_mode == COLOR_MODE_256_GRAY) ? 0 : 1;
|
||||||
|
|
||||||
|
return SCANNER_ERR_OK;
|
||||||
|
|
||||||
|
/*int ret = SCANNER_ERR_OK;
|
||||||
|
|
||||||
if ((((color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH) && !dev_conf_.params_3399.color) ||
|
if ((((color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH) && !dev_conf_.params_3399.color) ||
|
||||||
((color_mode != COLOR_MODE_24_BITS && color_mode != COLOR_MODE_AUTO_MATCH) && dev_conf_.params_3399.color)) && color_mode != -1)
|
((color_mode != COLOR_MODE_24_BITS && color_mode != COLOR_MODE_AUTO_MATCH) && dev_conf_.params_3399.color)) && color_mode != -1)
|
||||||
{
|
{
|
||||||
dev_conf_.params_3399.color ^= 1;
|
dev_conf_.params_3399.color ^= 1;
|
||||||
ret = writedown_device_configuration();
|
ret = writedown_device_configuration();
|
||||||
if(ret)
|
if (ret)
|
||||||
dev_conf_.params_3399.color ^= 1;
|
dev_conf_.params_3399.color ^= 1;
|
||||||
}
|
}
|
||||||
if(color_mode == COLOR_MODE_AUTO_MATCH)
|
if (color_mode == COLOR_MODE_AUTO_MATCH)
|
||||||
{
|
{
|
||||||
dev_conf_.params_3399.color = 1;
|
dev_conf_.params_3399.color = 1;
|
||||||
}
|
|
||||||
|
|
||||||
setting_hardware::HGSCANCONF_3399 d = dev_conf_;
|
|
||||||
|
|
||||||
if (image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
|
||||||
&&(image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
d.params_3399.color = 1;
|
|
||||||
ret = writedown_device_configuration(&d);
|
|
||||||
}
|
}
|
||||||
|
return ret;*/
|
||||||
if(image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
|
||||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
|
||||||
&& color_mode == -1)
|
|
||||||
{
|
|
||||||
d.params_3399.color = 1;
|
|
||||||
}
|
|
||||||
else if (image_prc_param_.bits.rid_color == RID_COLOR_NONE
|
|
||||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
|
||||||
&& color_mode == -1)
|
|
||||||
{
|
|
||||||
d.params_3399.color = 0;
|
|
||||||
}
|
|
||||||
if(color_mode == -1)
|
|
||||||
ret = writedown_device_configuration(&d);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
int hg_scanner_302::on_paper_changed(int& paper)
|
int hg_scanner_302::on_paper_changed(int& paper)
|
||||||
{
|
{
|
||||||
|
@ -1262,8 +1293,14 @@ int hg_scanner_302::start(void)
|
||||||
return SCANNER_ERR_DEVICE_NO_PAPER;
|
return SCANNER_ERR_DEVICE_NO_PAPER;
|
||||||
}
|
}
|
||||||
notify_ui_working_status(STATU_DESC_REWRITE_CONFIGURATION);
|
notify_ui_working_status(STATU_DESC_REWRITE_CONFIGURATION);
|
||||||
writedown_device_configuration();
|
ret = writedown_device_configuration(true);
|
||||||
writedown_image_configuration();
|
if (ret == SCANNER_ERR_OK)
|
||||||
|
writedown_image_configuration();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
status_ = ret;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
val = 0;
|
val = 0;
|
||||||
ret = read_register(/*SR_GET_ANDROID_STATE*/0x1001, &val);
|
ret = read_register(/*SR_GET_ANDROID_STATE*/0x1001, &val);
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ class hg_scanner_302 : public hg_scanner
|
||||||
int get_device_sleep_stautus(void);
|
int get_device_sleep_stautus(void);
|
||||||
int get_device_paperon_stautus(void);
|
int get_device_paperon_stautus(void);
|
||||||
|
|
||||||
int writedown_device_configuration(setting_hardware::HGSCANCONF_3399 *dev_conf = NULL);
|
int writedown_device_configuration(bool type =false,setting_hardware::HGSCANCONF_3399 *dev_conf = NULL);
|
||||||
int writedown_image_configuration(void);
|
int writedown_image_configuration(void);
|
||||||
int pop_first_image(void);
|
int pop_first_image(void);
|
||||||
|
|
||||||
|
|
|
@ -377,20 +377,36 @@ int hg_scanner_400::writedown_device_configuration(bool type,setting_hardware::H
|
||||||
{
|
{
|
||||||
if (!type)
|
if (!type)
|
||||||
return SCANNER_ERR_OK;
|
return SCANNER_ERR_OK;
|
||||||
|
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 0;
|
len = 0;
|
||||||
|
SIZE size;
|
||||||
if (!d)
|
if (!d)
|
||||||
{
|
{
|
||||||
d = &dsp_config;
|
|
||||||
dsp_config.params_3288.lutmode = keep_watermark_;
|
dsp_config.params_3288.lutmode = keep_watermark_;
|
||||||
|
d = &dsp_config;
|
||||||
}
|
}
|
||||||
|
if (is_multiout)
|
||||||
|
{
|
||||||
|
d->params_3288.isColor = image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW ? 0 : 1;
|
||||||
|
}
|
||||||
|
else if ((image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY
|
||||||
|
|| image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||||
|
&& image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
||||||
|
{
|
||||||
|
d->params_3288.isColor = 1;
|
||||||
|
}
|
||||||
|
if (img_conf_.is_autocrop)
|
||||||
|
{
|
||||||
|
d->params_3288.pageSize = setting3288dsp::G400_AUTO;
|
||||||
|
}
|
||||||
|
size = papersize.GetPaperSize(TwSS::A4, 200, img_conf_.paperAlign);
|
||||||
|
dsp_config.params_3288.dstHeight = (int)((size.cy + 200) / 100);
|
||||||
|
|
||||||
USBCB usbcb = { setting3288dsp::CONFIGURED_DATA, d->value, 0};
|
USBCB usbcb = { setting3288dsp::CONFIGURED_DATA, d->value, 0 };
|
||||||
len = sizeof(USBCB);
|
len = sizeof(USBCB);
|
||||||
ret = io_->write_bulk(&usbcb,&len);
|
ret = io_->write_bulk(&usbcb, &len);
|
||||||
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_WARNING, "writedown_device_configuration is .(%s)\n", hg_scanner_err_name(ret));
|
VLOG_MINI_1(LOG_LEVEL_WARNING, "writedown_device_configuration is .(%s)\n", hg_scanner_err_name(ret));
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -398,43 +414,8 @@ int hg_scanner_400::writedown_device_configuration(bool type,setting_hardware::H
|
||||||
|
|
||||||
int hg_scanner_400::on_color_mode_changed(int& color_mode)
|
int hg_scanner_400::on_color_mode_changed(int& color_mode)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
dsp_config.params_3288.isColor = (color_mode == COLOR_MODE_BLACK_WHITE || color_mode == COLOR_MODE_256_GRAY) ? 0 : 1;
|
||||||
//printf("color_mode =%d\r\n",color_mode);
|
return SCANNER_ERR_OK;
|
||||||
// if ((((color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH) && !dsp_config.params_3288.color) ||
|
|
||||||
// ((color_mode != COLOR_MODE_24_BITS && color_mode != COLOR_MODE_AUTO_MATCH) && dsp_config.params_3288.color)) && color_mode != -1)
|
|
||||||
// {
|
|
||||||
// printf("color_mode111111111111111111111 =%d\r\n",color_mode);
|
|
||||||
// dsp_config.params_3288.color ^= 1;
|
|
||||||
|
|
||||||
// //ret = writedown_device_configuration();
|
|
||||||
// printf("on_color_mode_changed ret =%d\r\n",ret);
|
|
||||||
// if(ret)
|
|
||||||
// dsp_config.params_3288.color ^= 1;
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (color_mode == COLOR_MODE_BLACK_WHITE || color_mode == COLOR_MODE_256_GRAY)
|
|
||||||
{
|
|
||||||
dsp_config.params_3288.isColor = 0;
|
|
||||||
}
|
|
||||||
else if(color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH)
|
|
||||||
{
|
|
||||||
dsp_config.params_3288.isColor = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
setting_hardware::HGSCANCONF_3288 d = dsp_config;
|
|
||||||
if(image_prc_param_.bits.rid_color != RID_COLOR_NONE && image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY && color_mode == -1)
|
|
||||||
{
|
|
||||||
dsp_config.params_3288.isColor = 1;
|
|
||||||
}
|
|
||||||
else if (image_prc_param_.bits.rid_color == RID_COLOR_NONE && image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY && color_mode == -1)
|
|
||||||
{
|
|
||||||
dsp_config.params_3288.isColor = 0;
|
|
||||||
}
|
|
||||||
if(color_mode == -1)
|
|
||||||
ret = writedown_device_configuration(true);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
int hg_scanner_400::on_paper_changed(int& paper)
|
int hg_scanner_400::on_paper_changed(int& paper)
|
||||||
{
|
{
|
||||||
|
@ -547,6 +528,35 @@ int hg_scanner_400::initdevice()
|
||||||
void hg_scanner_400::writedown_image_configuration(void)
|
void hg_scanner_400::writedown_image_configuration(void)
|
||||||
{
|
{
|
||||||
SCANCONF ic;
|
SCANCONF ic;
|
||||||
|
int len = sizeof(ic);
|
||||||
|
|
||||||
|
bzero(&ic, len);
|
||||||
|
|
||||||
|
ic.contrast = contrast_;
|
||||||
|
ic.brightness = bright_;
|
||||||
|
if (test_1_paper_)
|
||||||
|
{
|
||||||
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
|
ic.scannum = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ic.scannum = scan_count_;
|
||||||
|
ic.en_sizecheck = dsp_config.params_3288.enableSizeDetect;
|
||||||
|
ic.hardwarecaps.en_skrewdetect = 0;
|
||||||
|
ic.hardwarecaps.en_doublefeed = dsp_config.params_3288.doubleFeeded;
|
||||||
|
ic.hardwarecaps.en_stapledetect = 0;
|
||||||
|
ic.hardwarecaps.skrewdetectlevel = 0;
|
||||||
|
|
||||||
|
// ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
||||||
|
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
|
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
||||||
|
|
||||||
|
|
||||||
|
image_configuration(ic);
|
||||||
|
//int ret = agreement((TwSS)img_conf_.papertype, img_conf_.paperAlign);
|
||||||
|
|
||||||
|
|
||||||
|
/*SCANCONF ic;
|
||||||
|
|
||||||
ic.papertype = paper_size_;
|
ic.papertype = paper_size_;
|
||||||
|
|
||||||
|
@ -774,7 +784,7 @@ void hg_scanner_400::writedown_image_configuration(void)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.height=%d\r\n ", ic.cropRect.height);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.height=%d\r\n ", ic.cropRect.height);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%f\r\n ", ic.cropRect.x);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.x=%f\r\n ", ic.cropRect.x);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void hg_scanner_400::printf_devconfig(setting_hardware::HGSCANCONF_3288 *d)
|
void hg_scanner_400::printf_devconfig(setting_hardware::HGSCANCONF_3288 *d)
|
||||||
|
|
|
@ -415,19 +415,26 @@ int hg_scanner_402::get_device_paperon_stautus(void)
|
||||||
// return ret;
|
// return ret;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
int hg_scanner_402::writedown_device_configuration(setting_hardware::HGSCANCONF_3399 *dev_conf)
|
int hg_scanner_402::writedown_device_configuration(bool type, setting_hardware::HGSCANCONF_3399* dev_conf)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK;
|
int ret = SCANNER_ERR_OK;
|
||||||
|
if (!type)
|
||||||
|
return ret;
|
||||||
if (!dev_conf)
|
if (!dev_conf)
|
||||||
|
{
|
||||||
|
dev_conf_.params_3399.is_textcorrect = !keep_watermark_;
|
||||||
dev_conf = &dev_conf_;
|
dev_conf = &dev_conf_;
|
||||||
|
}
|
||||||
if (image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
if (is_multiout)
|
||||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE))
|
{
|
||||||
|
dev_conf->params_3399.color = image_prc_param_.bits.multi_out == MULTI_COLOR_AND_BW ? 0 : 1;
|
||||||
|
}
|
||||||
|
else if ((image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY
|
||||||
|
|| image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||||
|
&& image_prc_param_.bits.rid_color != RID_COLOR_NONE)
|
||||||
{
|
{
|
||||||
dev_conf->params_3399.color = 1;
|
dev_conf->params_3399.color = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
||||||
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||||||
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
||||||
|
@ -457,6 +464,42 @@ int hg_scanner_402::writedown_image_configuration(void)
|
||||||
|
|
||||||
bzero(&ic, len);
|
bzero(&ic, len);
|
||||||
|
|
||||||
|
ic.en_sizecheck = dev_conf_.params_3399.enable_sizecheck;
|
||||||
|
ic.hardwarecaps.en_skrewdetect = dev_conf_.params_3399.screw_detect_enable;
|
||||||
|
ic.hardwarecaps.en_doublefeed = dev_conf_.params_3399.ultrasonic_enable;
|
||||||
|
ic.hardwarecaps.en_stapledetect = dev_conf_.params_3399.staple_enbale;
|
||||||
|
ic.hardwarecaps.skrewdetectlevel = dev_conf_.params_3399.screw_detect_level;
|
||||||
|
if (test_1_paper_)
|
||||||
|
{
|
||||||
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
|
ic.scannum = /*ic.is_duplex ? 2 :*/ 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (scan_count_ == -1)
|
||||||
|
ic.scannum = -1;
|
||||||
|
else
|
||||||
|
ic.scannum = (ic.is_duplex ? scan_count_ * 2 : scan_count_);
|
||||||
|
}
|
||||||
|
ic.contrast = (contrast_ - 4) * 333.0;
|
||||||
|
ic.brightness = (bright_ - 128) * (2000.0 / 254.0);
|
||||||
|
image_configuration(ic);
|
||||||
|
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(io_lock_);
|
||||||
|
|
||||||
|
ret = io_->write_bulk(&ic, &len);
|
||||||
|
|
||||||
|
this_thread::sleep_for(chrono::milliseconds(500));
|
||||||
|
io_->set_timeout(2000);//必要延时
|
||||||
|
}
|
||||||
|
|
||||||
|
/*int ret = SCANNER_ERR_OK;
|
||||||
|
SCANCONF ic;
|
||||||
|
int len = sizeof(ic);
|
||||||
|
|
||||||
|
bzero(&ic, len);
|
||||||
|
|
||||||
ic.papertype = paper_size_;
|
ic.papertype = paper_size_;
|
||||||
|
|
||||||
if (is_lateral(image_prc_param_.bits.paper))
|
if (is_lateral(image_prc_param_.bits.paper))
|
||||||
|
@ -527,7 +570,7 @@ int hg_scanner_402::writedown_image_configuration(void)
|
||||||
if (test_1_paper_)
|
if (test_1_paper_)
|
||||||
{
|
{
|
||||||
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "scanning mode: testing ONE paper ...\n");
|
||||||
ic.scannum = /*ic.is_duplex ? 2 :*/ 1;
|
ic.scannum = //ic.is_duplex ? 2 :// 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -698,6 +741,7 @@ int hg_scanner_402::writedown_image_configuration(void)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"\n ic.cropRect.y=%d\r\n ",ic.cropRect.y);
|
||||||
|
|
||||||
img_conf_ = ic;
|
img_conf_ = ic;
|
||||||
|
*/
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1225,8 +1269,14 @@ int hg_scanner_402::start(void)
|
||||||
return SCANNER_ERR_DEVICE_NO_PAPER;
|
return SCANNER_ERR_DEVICE_NO_PAPER;
|
||||||
}
|
}
|
||||||
notify_ui_working_status(STATU_DESC_REWRITE_CONFIGURATION);
|
notify_ui_working_status(STATU_DESC_REWRITE_CONFIGURATION);
|
||||||
writedown_device_configuration();
|
ret = writedown_device_configuration(true);
|
||||||
writedown_image_configuration();
|
if (ret == SCANNER_ERR_OK)
|
||||||
|
writedown_image_configuration();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
status_ = ret;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
val = 0;
|
val = 0;
|
||||||
ret = read_register(/*SR_GET_ANDROID_STATE*/0x1001, &val);
|
ret = read_register(/*SR_GET_ANDROID_STATE*/0x1001, &val);
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ class hg_scanner_402 : public hg_scanner
|
||||||
int get_device_sleep_stautus(void);
|
int get_device_sleep_stautus(void);
|
||||||
int get_device_paperon_stautus(void);
|
int get_device_paperon_stautus(void);
|
||||||
|
|
||||||
int writedown_device_configuration(setting_hardware::HGSCANCONF_3399 *dev_conf = NULL);
|
int writedown_device_configuration(bool type = false, setting_hardware::HGSCANCONF_3399* dev_conf = NULL);
|
||||||
int writedown_image_configuration(void);
|
int writedown_image_configuration(void);
|
||||||
int pop_first_image(void);
|
int pop_first_image(void);
|
||||||
|
|
||||||
|
|
|
@ -783,9 +783,9 @@ namespace hg_imgproc
|
||||||
std::vector<cv::Mat> mats(mats_);
|
std::vector<cv::Mat> mats(mats_);
|
||||||
mats_.clear();
|
mats_.clear();
|
||||||
|
|
||||||
SIZE temp_Size = papersize_.GetPaperSize(img_conf_.papertype,200,img_conf_.paperAlign);
|
SIZE temp_Size = papersize_.GetPaperSize(img_conf_.papertype, img_conf_.resolution_dst,img_conf_.paperAlign);
|
||||||
cv::Size cvSize(temp_Size.cx, temp_Size.cy);
|
cv::Size cvSize(temp_Size.cx, temp_Size.cy);
|
||||||
CImageApplyAutoCrop crop(img_conf_.is_autocrop,img_conf_.autodescrew,img_conf_.fillbackground,cvSize,img_conf_.is_convex,img_conf_.isfillcolor);
|
CImageApplyAutoCrop crop(img_conf_.is_autocrop, img_conf_.autodescrew, img_conf_.fillbackground, cvSize, true, false, 40, 8, 5, false, false);
|
||||||
|
|
||||||
crop.apply(mats,img_conf_.is_duplex);
|
crop.apply(mats,img_conf_.is_duplex);
|
||||||
mats_ = mats;
|
mats_ = mats;
|
||||||
|
|
Loading…
Reference in New Issue