调整校正流程
This commit is contained in:
parent
79b5b1f8a4
commit
ae4dea8533
|
@ -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)
|
||||||
|
|
|
@ -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_;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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之前【主动】获取的话,会先报无纸,而不是开盖。
|
||||||
//但是在【端点】又获取不到有纸还是无纸的状态,所以只能通过等待超时,再来【主动】获取有无纸张。
|
//但是在【端点】又获取不到有纸还是无纸的状态,所以只能通过等待超时,再来【主动】获取有无纸张。
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue