调整校正流程

This commit is contained in:
13038267101 2022-12-30 18:16:40 +08:00
parent 79b5b1f8a4
commit ae4dea8533
5 changed files with 12 additions and 7 deletions

View File

@ -156,7 +156,7 @@ hg_scanner::hg_scanner(ScannerSerial serial
, dump_usb_path_(""),is_kernelsnap_211209_(false), pid_(0), dump_img_(&hg_scanner::dump_image_empty), is_kernelsnap_220830_(false),is_kernelsnap3288_221106_(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)
, is_kernelsnap_221027_(false), memory_size_(1024/*USB+JPEG压缩及图像处理图队列总共1GB*/), isx86_Advan_(true), stop_fatal_(SCANNER_ERR_OK), is_auto_paper_scan(false) , is_kernelsnap_221027_(false), memory_size_(1024/*USB+JPEG压缩及图像处理图队列总共1GB*/), isx86_Advan_(true), stop_fatal_(SCANNER_ERR_OK), is_auto_paper_scan(false)
, size_check(false), save_sleeptime_type_(false), is_kernelsnap_devsislock(false), is_checksum_strat_scan(false), is_cis_image(false) , size_check(false), save_sleeptime_type_(false), is_kernelsnap_devsislock(false), is_checksum_strat_scan(false), is_cis_image(false)
, is_dpi_color_check(false),save_dpi_color_check_val(0.0f) , is_dpi_color_check(false),save_dpi_color_check_val(0.0f), is_auto_falt(false)
{ {
#if !defined(_WIN32) && !defined(_WIN64) &&defined(x86_64) #if !defined(_WIN32) && !defined(_WIN64) &&defined(x86_64)
isx86_Advan_ = false; isx86_Advan_ = false;
@ -3389,7 +3389,7 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
} }
else if (code == IO_CTRL_CODE_SET_AUTO_FALT) else if (code == IO_CTRL_CODE_SET_AUTO_FALT)
{ {
is_auto_falt = true;
return set_auto_flat(); return set_auto_flat();
} }
return SCANNER_ERR_DEVICE_NOT_SUPPORT; return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -3487,7 +3487,7 @@ int hg_scanner::set_dpi_color_check_val(void)
} }
int hg_scanner::set_auto_flat(void) int hg_scanner::set_auto_flat(void)
{ {
return 0; return SCANNER_ERR_DEVICE_NOT_SUPPORT;
} }
////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////
int hg_scanner::set_leaflet_scan(void) int hg_scanner::set_leaflet_scan(void)

View File

@ -336,7 +336,7 @@ protected:
bool is_cis_image; //设置cis获取原图 bool is_cis_image; //设置cis获取原图
bool is_dpi_color_check; //纵向DPI、色差检测 ,畸变自动计算 bool is_dpi_color_check; //纵向DPI、色差检测 ,畸变自动计算
double save_dpi_color_check_val; //保存纵向DPI、色差检测 ,畸变自动计算 的值 double save_dpi_color_check_val; //保存纵向DPI、色差检测 ,畸变自动计算 的值
bool is_auto_falt; //是否进行平场校正
int split3399_; //3399设备正面和反面图像是相对的所以对折时反面需要进行特殊处理 int split3399_; //3399设备正面和反面图像是相对的所以对折时反面需要进行特殊处理
int pid_; int pid_;

View File

@ -136,7 +136,7 @@ void hg_scanner_200::thread_handle_usb_read(void)
while (run_) while (run_)
{ {
if (sw.elapsed_s() > 30) if (sw.elapsed_s() > 30 && !is_auto_falt)
{ {
// no any data in 30 seconds, we giveup the work ... // no any data in 30 seconds, we giveup the work ...
status_ = prev_err != SCANNER_ERR_OK ? prev_err : SCANNER_ERR_TIMEOUT; status_ = prev_err != SCANNER_ERR_OK ? prev_err : SCANNER_ERR_TIMEOUT;
@ -148,6 +148,8 @@ void hg_scanner_200::thread_handle_usb_read(void)
if (ret == SCANNER_ERR_DEVICE_AUTO_FAIL_OVER) if (ret == SCANNER_ERR_DEVICE_AUTO_FAIL_OVER)
{ {
is_auto_falt = false;
status_ = ret; status_ = ret;
std::string msg; std::string msg;
int count = usb.u32_Count; int count = usb.u32_Count;

View File

@ -128,6 +128,7 @@ void hg_scanner_300::thread_handle_usb_read(void)
} }
else if (ret == SCANNER_ERR_DEVICE_AUTO_FAIL_OVER) else if (ret == SCANNER_ERR_DEVICE_AUTO_FAIL_OVER)
{ {
is_auto_falt = false;
status_ = ret; status_ = ret;
std::string msg; std::string msg;
int count = usb.u32_Count; int count = usb.u32_Count;
@ -164,7 +165,7 @@ void hg_scanner_300::thread_handle_usb_read(void)
} }
} }
if (sw.elapsed_ms() > 20000)//防止状态信息一直取不上来导致卡死 if (sw.elapsed_ms() > 30000 && !is_auto_falt)//防止状态信息一直取不上来导致卡死
{ {
//3288固件 获取有纸无纸问题的bug如果是打开盖子在start之前【主动】获取的话会先报无纸而不是开盖。 //3288固件 获取有纸无纸问题的bug如果是打开盖子在start之前【主动】获取的话会先报无纸而不是开盖。
//但是在【端点】又获取不到有纸还是无纸的状态,所以只能通过等待超时,再来【主动】获取有无纸张。 //但是在【端点】又获取不到有纸还是无纸的状态,所以只能通过等待超时,再来【主动】获取有无纸张。

View File

@ -130,6 +130,8 @@ void hg_scanner_400::thread_handle_usb_read(void)
} }
else if (ret == SCANNER_ERR_DEVICE_AUTO_FAIL_OVER) else if (ret == SCANNER_ERR_DEVICE_AUTO_FAIL_OVER)
{ {
is_auto_falt = false;
status_ = ret; status_ = ret;
std::string msg; std::string msg;
int count = usb.u32_Count; int count = usb.u32_Count;
@ -166,7 +168,7 @@ void hg_scanner_400::thread_handle_usb_read(void)
} }
} }
if (sw.elapsed_s() > 30)//防止状态信息一直取不上来导致卡死 if (sw.elapsed_s() > 30 && !is_auto_falt)//防止状态信息一直取不上来导致卡死
{ {
status_ = !savestatus_.empty() ? savestatus_[0] : SCANNER_ERR_TIMEOUT; status_ = !savestatus_.empty() ? savestatus_[0] : SCANNER_ERR_TIMEOUT;
savestatus_.clear(); savestatus_.clear();