调整设置畸变
This commit is contained in:
parent
f5521cbd5a
commit
f692b92e7a
|
@ -3416,9 +3416,21 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
||||||
{
|
{
|
||||||
return start();;
|
return start();;
|
||||||
}
|
}
|
||||||
else if (code == IO_CTRL_CODE_GET_DPI_COLOR_CHECK_VAL)
|
else if (code == IO_CTRL_CODE_SET_DISTORTION_IMAGE)
|
||||||
{
|
{
|
||||||
return set_dpi_color_check(*((bool*)data));
|
return set_distortion_image(*((bool*)data));
|
||||||
|
}
|
||||||
|
else if(code == IO_CTRL_CODE_GET_DISTORTION_CHECK_VAL)
|
||||||
|
{
|
||||||
|
return get_distortion_check_val(*((int*)data));
|
||||||
|
}
|
||||||
|
else if(code == IO_CTRL_CODE_SET_DISTORTION_CHECK_VAL)
|
||||||
|
{
|
||||||
|
return set_distortion_check_val(*((int*)data));
|
||||||
|
}
|
||||||
|
else if (code == IO_CTRL_CODE_GET_DISTORTION_DEVS_CHECK_VAL)
|
||||||
|
{
|
||||||
|
return get_devs_distortion_check_val(*((int*)data));
|
||||||
}
|
}
|
||||||
else if(code == IO_CTRL_CODE_SET_DEVS_REBOOT)
|
else if(code == IO_CTRL_CODE_SET_DEVS_REBOOT)
|
||||||
{
|
{
|
||||||
|
@ -3444,6 +3456,7 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
||||||
}
|
}
|
||||||
else if (code == IO_CTRL_CODE_SET_SERIAL)
|
else if (code == IO_CTRL_CODE_SET_SERIAL)
|
||||||
{
|
{
|
||||||
|
string str = (char*)data;
|
||||||
return set_serial_num((char*)data);
|
return set_serial_num((char*)data);
|
||||||
}
|
}
|
||||||
else if (code == IO_CTRL_CODE_GET_VIDPID)
|
else if (code == IO_CTRL_CODE_GET_VIDPID)
|
||||||
|
@ -3532,7 +3545,7 @@ int hg_scanner::get_speed_mode(int& data)
|
||||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hg_scanner::set_dpi_color_check(bool type)
|
int hg_scanner::set_distortion_image(bool type)
|
||||||
{
|
{
|
||||||
is_dpi_color_check = type;
|
is_dpi_color_check = type;
|
||||||
int ret = SCANNER_ERR_OK;
|
int ret = SCANNER_ERR_OK;
|
||||||
|
@ -3542,7 +3555,22 @@ int hg_scanner::set_dpi_color_check(bool type)
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
int hg_scanner::set_dpi_color_check_val(void)
|
int hg_scanner::get_distortion_check_val(int &val)
|
||||||
|
{
|
||||||
|
val = *(int*)&save_dpi_color_check_val;
|
||||||
|
//val = ;
|
||||||
|
|
||||||
|
if (val != 0)
|
||||||
|
{
|
||||||
|
return SCANNER_ERR_NO_DATA;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int hg_scanner::set_distortion_check_val(int data)
|
||||||
|
{
|
||||||
|
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||||
|
}
|
||||||
|
int hg_scanner::get_devs_distortion_check_val(int& data)
|
||||||
{
|
{
|
||||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||||
}
|
}
|
||||||
|
@ -3668,7 +3696,6 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer)
|
||||||
err = hg_imgproc::cis_test_image(ImagePrc_pHandle_, res);
|
err = hg_imgproc::cis_test_image(ImagePrc_pHandle_, res);
|
||||||
save_dpi_color_check_val = res.scaleXY1;
|
save_dpi_color_check_val = res.scaleXY1;
|
||||||
is_dpi_color_check = false;
|
is_dpi_color_check = false;
|
||||||
set_dpi_color_check_val();
|
|
||||||
}
|
}
|
||||||
else if (param.cis_image)
|
else if (param.cis_image)
|
||||||
{
|
{
|
||||||
|
|
|
@ -336,7 +336,7 @@ protected:
|
||||||
int fold_type_; //对折类型
|
int fold_type_; //对折类型
|
||||||
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、色差检测 ,畸变自动计算 的值
|
float save_dpi_color_check_val; //保存纵向DPI、色差检测 ,畸变自动计算 的值
|
||||||
bool is_auto_falt; //是否进行平场校正
|
bool is_auto_falt; //是否进行平场校正
|
||||||
|
|
||||||
int split3399_; //3399设备正面和反面图像是相对的,所以对折时反面需要进行特殊处理
|
int split3399_; //3399设备正面和反面图像是相对的,所以对折时反面需要进行特殊处理
|
||||||
|
@ -482,9 +482,11 @@ public:
|
||||||
virtual int set_speed_mode(int data) = 0; //设置速度模式 /*/ 设备不同值不同,详情见子类注释
|
virtual int set_speed_mode(int data) = 0; //设置速度模式 /*/ 设备不同值不同,详情见子类注释
|
||||||
virtual int get_speed_mode(int &data) = 0; //获取速度模式 /*/ 设备不同值不同,详情见子类注释
|
virtual int get_speed_mode(int &data) = 0; //获取速度模式 /*/ 设备不同值不同,详情见子类注释
|
||||||
|
|
||||||
virtual int set_dpi_color_check(bool type); //获取畸变矫正 /*/ 基类处理
|
virtual int set_distortion_image(bool type); //设置畸变校正图 /*/ 基类处理
|
||||||
|
virtual int get_distortion_check_val(int &val); //获取畸变校正指 /*/ 基类处理
|
||||||
|
virtual int set_distortion_check_val(int data) = 0; //设置畸变矫正值 int to float;
|
||||||
|
virtual int get_devs_distortion_check_val(int& data); //获取设备畸变值 float to int;
|
||||||
|
|
||||||
virtual int set_dpi_color_check_val(void) = 0; //设置畸变矫正值
|
|
||||||
virtual int set_auto_flat(void) = 0; //设置自动平场校正
|
virtual int set_auto_flat(void) = 0; //设置自动平场校正
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -926,7 +926,7 @@ int hg_scanner_200::get_speed_mode(int& data)
|
||||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hg_scanner_200::set_dpi_color_check_val(void)
|
int hg_scanner_200::set_distortion_check_val(int data)
|
||||||
{
|
{
|
||||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,6 +102,6 @@ public:
|
||||||
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*/
|
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*/
|
||||||
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ 不支持
|
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ 不支持
|
||||||
virtual int get_speed_mode(int &data) override; //设置速度模式 /*/ 不支持
|
virtual int get_speed_mode(int &data) override; //设置速度模式 /*/ 不支持
|
||||||
virtual int set_dpi_color_check_val(void) override; //设置畸变矫正
|
virtual int set_distortion_check_val(int data) override; //设置畸变矫正
|
||||||
virtual int set_auto_flat(void); //设置自动平场校正
|
virtual int set_auto_flat(void); //设置自动平场校正
|
||||||
};
|
};
|
||||||
|
|
|
@ -269,7 +269,7 @@ int hg_scanner_239::get_speed_mode(int& data)
|
||||||
{
|
{
|
||||||
return read_register(setting3399::SR_GET_SPEEDMODE, &data);
|
return read_register(setting3399::SR_GET_SPEEDMODE, &data);
|
||||||
}
|
}
|
||||||
int hg_scanner_239::set_dpi_color_check_val(void)
|
int hg_scanner_239::set_distortion_check_val(int data)
|
||||||
{
|
{
|
||||||
setting3399::Scanner_Reg_Defs ratio = setting3399::SR_SET_H_200_RATIO;
|
setting3399::Scanner_Reg_Defs ratio = setting3399::SR_SET_H_200_RATIO;
|
||||||
if (resolution_ <= 200)
|
if (resolution_ <= 200)
|
||||||
|
@ -279,7 +279,7 @@ int hg_scanner_239::set_dpi_color_check_val(void)
|
||||||
else if (resolution_ > 300 && resolution_ <= 600)
|
else if (resolution_ > 300 && resolution_ <= 600)
|
||||||
ratio = setting3399::SR_SET_H_600_RATIO;
|
ratio = setting3399::SR_SET_H_600_RATIO;
|
||||||
|
|
||||||
return write_register(ratio, *(int*)&save_dpi_color_check_val);
|
return write_register(ratio, data);
|
||||||
}
|
}
|
||||||
int hg_scanner_239::get_dpi_color_check_val(int &data)
|
int hg_scanner_239::get_dpi_color_check_val(int &data)
|
||||||
{
|
{
|
||||||
|
@ -926,18 +926,76 @@ int hg_scanner_239::on_scanner_closing(bool force)
|
||||||
{
|
{
|
||||||
return SCANNER_ERR_OK;
|
return SCANNER_ERR_OK;
|
||||||
}
|
}
|
||||||
void hg_scanner_239::thread_handle_usb_read(void)
|
void hg_scanner_239::thread_correction(void)
|
||||||
|
{
|
||||||
|
StopWatch sw;
|
||||||
|
char buf[64];
|
||||||
|
setting3399::HGEIntInfo* info = (setting3399::HGEIntInfo*)buf;
|
||||||
|
int size = sizeof(buf),
|
||||||
|
ret = SCANNER_ERR_OK;
|
||||||
|
|
||||||
|
while (run_)
|
||||||
|
{
|
||||||
|
size = sizeof(buf);
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(io_lock_);
|
||||||
|
|
||||||
|
ret = io_->read_interrupt(buf, &size);
|
||||||
|
io_->set_timeout(1000);
|
||||||
|
printf("size:%d\r\n",size);
|
||||||
|
}
|
||||||
|
if (ret == SCANNER_ERR_TIMEOUT)
|
||||||
|
{
|
||||||
|
if (sw.elapsed_s() == 60)
|
||||||
|
{
|
||||||
|
status_ = ret;
|
||||||
|
notify_ui_working_status(" \350\256\276\345\244\207\346\240\241\346\255\243\350\266\205\346\227\266", SANE_EVENT_ERROR, ret); // 通信超时
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "设备校正超时 '%s'\n", hg_scanner_err_name(status_));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
||||||
|
}
|
||||||
|
if (size == sizeof(buf))
|
||||||
|
{
|
||||||
|
if (setting3399::AutoCorrect ==info->From)
|
||||||
|
{
|
||||||
|
status_ == SCANNER_ERR_DEVICE_AUTO_FAIL_INFO;
|
||||||
|
sw.reset();
|
||||||
|
std::string sinfo;
|
||||||
|
int len = info->Img_Index;
|
||||||
|
sinfo.resize(len);
|
||||||
|
|
||||||
|
io_->read_bulk(&sinfo[0],&len);
|
||||||
|
char buf[1024];
|
||||||
|
strcpy(buf, sinfo.c_str());
|
||||||
|
notify_ui_working_status(buf, SANE_EVENT_STATUS, status_);
|
||||||
|
printf("%s\r\n", sinfo.c_str());
|
||||||
|
|
||||||
|
if (info->Code == 4)
|
||||||
|
{
|
||||||
|
status_ = SCANNER_ERR_DEVICE_AUTO_FAIL_OVER;
|
||||||
|
notify_ui_working_status(buf, SANE_EVENT_STATUS, status_);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this_thread::sleep_for(chrono::milliseconds(10));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void hg_scanner_239::thread_get_dves_image(void)
|
||||||
{
|
{
|
||||||
char buf[64];
|
char buf[64];
|
||||||
setting3399::HGEIntInfo* info = (setting3399::HGEIntInfo*)buf;
|
setting3399::HGEIntInfo* info = (setting3399::HGEIntInfo*)buf;
|
||||||
int size = sizeof(buf),
|
int size = sizeof(buf),
|
||||||
ret = SCANNER_ERR_OK,
|
ret = SCANNER_ERR_OK,
|
||||||
to_cnt = 0,
|
to_cnt = 0,
|
||||||
count = 0;
|
count = 0;
|
||||||
int auoto_paper_indx = 0;
|
int auoto_paper_indx = 0;
|
||||||
|
|
||||||
//status_ = SCANNER_ERR_DEVICE_BUSY;
|
//status_ = SCANNER_ERR_DEVICE_BUSY;
|
||||||
while (run_ )//&& !user_cancel_
|
while (run_)//&& !user_cancel_
|
||||||
{
|
{
|
||||||
size = sizeof(buf);
|
size = sizeof(buf);
|
||||||
{
|
{
|
||||||
|
@ -955,7 +1013,7 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "600dpi '%s'\n", hg_scanner_err_name(status_));
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "600dpi '%s'\n", hg_scanner_err_name(status_));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (img_conf_.resolution_dst != 600.0 &&++to_cnt > 20 && !is_auto_paper_scan)
|
else if (img_conf_.resolution_dst != 600.0 && ++to_cnt > 20 && !is_auto_paper_scan)
|
||||||
{
|
{
|
||||||
status_ = ret;
|
status_ = ret;
|
||||||
notify_ui_working_status("\351\200\232\344\277\241\350\266\205\346\227\266", SANE_EVENT_ERROR, ret); // 通信超时
|
notify_ui_working_status("\351\200\232\344\277\241\350\266\205\346\227\266", SANE_EVENT_ERROR, ret); // 通信超时
|
||||||
|
@ -990,8 +1048,8 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
status_ = settings::device_status_to_hg_err(info);
|
status_ = settings::device_status_to_hg_err(info);
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "status from interrupt point is '%s'\n", hg_scanner_err_name(status_));
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "status from interrupt point is '%s'\n", hg_scanner_err_name(status_));
|
||||||
|
|
||||||
if (status_ != SCANNER_ERR_OK
|
if (status_ != SCANNER_ERR_OK
|
||||||
&& status_ != SCANNER_ERR_TIMEOUT
|
&& status_ != SCANNER_ERR_TIMEOUT
|
||||||
&& status_ != SCANNER_ERR_DEVICE_STOPPED
|
&& status_ != SCANNER_ERR_DEVICE_STOPPED
|
||||||
&& status_ != SCANNER_ERR_DEVICE_AUTO_FAIL_OVER
|
&& status_ != SCANNER_ERR_DEVICE_AUTO_FAIL_OVER
|
||||||
&& status_ != SCANNER_ERR_DEVICE_AUTO_FAIL_INFO
|
&& status_ != SCANNER_ERR_DEVICE_AUTO_FAIL_INFO
|
||||||
|
@ -1004,7 +1062,7 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(30));
|
std::this_thread::sleep_for(std::chrono::milliseconds(30));
|
||||||
|
|
||||||
StopWatch delay;
|
StopWatch delay;
|
||||||
if((double_paper_handle_ & DOUBLE_PAPER_SAVE_IMG) && st == SCANNER_ERR_DEVICE_DOUBLE_FEEDING)
|
if ((double_paper_handle_ & DOUBLE_PAPER_SAVE_IMG) && st == SCANNER_ERR_DEVICE_DOUBLE_FEEDING)
|
||||||
{
|
{
|
||||||
int wait = 3000 + (img_conf_.resolution_dst / 200 * 10000);
|
int wait = 3000 + (img_conf_.resolution_dst / 200 * 10000);
|
||||||
while (get_image_count() == 0)
|
while (get_image_count() == 0)
|
||||||
|
@ -1034,7 +1092,7 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
}
|
}
|
||||||
status_ = st;
|
status_ = st;
|
||||||
}
|
}
|
||||||
|
|
||||||
VLOG_MINI_1(LOG_LEVEL_WARNING, "\346\211\253\346\217\217\345\244\261\350\264\245, read interrupt\350\277\224\345\233\236\347\212\266\346\200\201\344\270\272\357\274\232%s\n", hg_scanner_err_description(status_));
|
VLOG_MINI_1(LOG_LEVEL_WARNING, "\346\211\253\346\217\217\345\244\261\350\264\245, read interrupt\350\277\224\345\233\236\347\212\266\346\200\201\344\270\272\357\274\232%s\n", hg_scanner_err_description(status_));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1042,7 +1100,7 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
if (info->From == setting3399::IMG)
|
if (info->From == setting3399::IMG)
|
||||||
{
|
{
|
||||||
int s = get_status();
|
int s = get_status();
|
||||||
// if (s > 0 && s < 4) // running ...
|
// if (s > 0 && s < 4) // running ...
|
||||||
{
|
{
|
||||||
while (get_image_count() > 0)
|
while (get_image_count() > 0)
|
||||||
{
|
{
|
||||||
|
@ -1094,10 +1152,10 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
std::lock_guard<std::mutex> lock(io_lock_);
|
std::lock_guard<std::mutex> lock(io_lock_);
|
||||||
|
|
||||||
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "First message received from USB is 'STOPSCAN'\n");
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "First message received from USB is 'STOPSCAN'\n");
|
||||||
// notify_ui_working_status(STATU_DESC_DEVICE_RESET);
|
// notify_ui_working_status(STATU_DESC_DEVICE_RESET);
|
||||||
// reset_ = true;
|
// reset_ = true;
|
||||||
// ret = io_->reset();
|
// ret = io_->reset();
|
||||||
// status_ = SCANNER_ERR_IO;
|
// status_ = SCANNER_ERR_IO;
|
||||||
}
|
}
|
||||||
else if (status_ == SCANNER_ERR_TIMEOUT || status_ == SCANNER_ERR_IO || status_ == SCANNER_ERR_DEVICE_STOPPED)
|
else if (status_ == SCANNER_ERR_TIMEOUT || status_ == SCANNER_ERR_IO || status_ == SCANNER_ERR_DEVICE_STOPPED)
|
||||||
status_ = SCANNER_ERR_OK;
|
status_ = SCANNER_ERR_OK;
|
||||||
|
@ -1107,10 +1165,10 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
if (count || (s & 3) == 0)
|
if (count || (s & 3) == 0)
|
||||||
{
|
{
|
||||||
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "Really stopped ^_^\n");
|
LOG_INFO(LOG_LEVEL_DEBUG_INFO, "Really stopped ^_^\n");
|
||||||
|
|
||||||
//string str = "当前批次扫描完成(第"+to_string(++auoto_paper_indx)+"批)";
|
//string str = "当前批次扫描完成(第"+to_string(++auoto_paper_indx)+"批)";
|
||||||
string str = "\345\275\223\345\211\215\346\211\271\346\254\241\346\211\253\346\217\217\345\256\214\346\210\220(\347\254\254"+to_string(++auoto_paper_indx)+"\346\211\271)";
|
string str = "\345\275\223\345\211\215\346\211\271\346\254\241\346\211\253\346\217\217\345\256\214\346\210\220(\347\254\254" + to_string(++auoto_paper_indx) + "\346\211\271)";
|
||||||
if(is_auto_paper_scan)
|
if (is_auto_paper_scan)
|
||||||
notify_ui_working_status(str.c_str(), SANE_EVENT_STATUS, status_);
|
notify_ui_working_status(str.c_str(), SANE_EVENT_STATUS, status_);
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
@ -1119,7 +1177,7 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
else if (info->From == setting3399::V4L2)
|
else if (info->From == setting3399::V4L2)
|
||||||
{
|
{
|
||||||
VLOG_MINI_2(LOG_LEVEL_WARNING, "V4L2 message received, code = %d, index = %d\n", info->Code, info->Img_Index);
|
VLOG_MINI_2(LOG_LEVEL_WARNING, "V4L2 message received, code = %d, index = %d\n", info->Code, info->Img_Index);
|
||||||
// stop();
|
// stop();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (info->From == setting3399::AutoCorrect)
|
else if (info->From == setting3399::AutoCorrect)
|
||||||
|
@ -1158,6 +1216,13 @@ void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
}
|
}
|
||||||
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "USB thread exit with code: %s, status = %s\n", hg_scanner_err_name(ret), hg_scanner_err_name(status_));
|
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "USB thread exit with code: %s, status = %s\n", hg_scanner_err_name(ret), hg_scanner_err_name(status_));
|
||||||
}
|
}
|
||||||
|
void hg_scanner_239::thread_handle_usb_read(void)
|
||||||
|
{
|
||||||
|
if (is_auto_falt)
|
||||||
|
thread_correction();
|
||||||
|
else
|
||||||
|
thread_get_dves_image();
|
||||||
|
}
|
||||||
|
|
||||||
int hg_scanner_239::start(void)
|
int hg_scanner_239::start(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -43,8 +43,9 @@ class hg_scanner_239 : public hg_scanner
|
||||||
bool is_dev_image_process_done(void);
|
bool is_dev_image_process_done(void);
|
||||||
bool is_dev_image_keep_last_paper(void);
|
bool is_dev_image_keep_last_paper(void);
|
||||||
void discard_all_images(void);
|
void discard_all_images(void);
|
||||||
void init_version(void
|
void init_version(void);
|
||||||
);
|
void thread_get_dves_image(void);
|
||||||
|
void thread_correction(void);
|
||||||
protected:
|
protected:
|
||||||
virtual void on_device_reconnected(void) override;
|
virtual void on_device_reconnected(void) override;
|
||||||
virtual int on_scanner_closing(bool force) override;
|
virtual int on_scanner_closing(bool force) override;
|
||||||
|
@ -119,7 +120,7 @@ public:
|
||||||
|
|
||||||
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:100,110,120
|
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:100,110,120
|
||||||
virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:100,110,120
|
virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:100,110,120
|
||||||
virtual int set_dpi_color_check_val(void) override; //设置畸变矫正值
|
virtual int set_distortion_check_val(int data) override; //设置畸变矫正值
|
||||||
virtual int get_dpi_color_check_val(int &data); //获取畸变矫正
|
virtual int get_dpi_color_check_val(int &data); //获取畸变矫正
|
||||||
virtual int set_auto_flat(void); //设置自动平场校正
|
virtual int set_auto_flat(void); //设置自动平场校正
|
||||||
};
|
};
|
||||||
|
|
|
@ -837,11 +837,11 @@ int hg_scanner_300::get_speed_mode(int& data)
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
int hg_scanner_300::set_dpi_color_check_val(void)
|
int hg_scanner_300::set_distortion_check_val(int data)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 0;
|
len = 0;
|
||||||
USBCB usbcb = { setting3288dsp::SET_JUST_COF_V ,save_dpi_color_check_val,resolution_ };
|
USBCB usbcb = { setting3288dsp::SET_JUST_COF_V ,data,resolution_ };
|
||||||
len = sizeof(usbcb);
|
len = sizeof(usbcb);
|
||||||
io_->write_bulk(&usbcb, &len);
|
io_->write_bulk(&usbcb, &len);
|
||||||
|
|
||||||
|
@ -852,6 +852,22 @@ int hg_scanner_300::set_dpi_color_check_val(void)
|
||||||
//int ratio = cmd.u32_Data;
|
//int ratio = cmd.u32_Data;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
int hg_scanner_300::get_devs_distortion_check_val(int& data)
|
||||||
|
{
|
||||||
|
int ret = SCANNER_ERR_OK,
|
||||||
|
len = 0;
|
||||||
|
USBCB usbcb = { setting3288dsp::GET_JUST_COF_V ,0,resolution_ };
|
||||||
|
ret = io_->write_bulk(&usbcb, &len);
|
||||||
|
if (ret == SCANNER_ERR_OK)
|
||||||
|
{
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||||
|
io_->set_timeout(3000);
|
||||||
|
ret = io_->read_bulk(&usbcb, &len);
|
||||||
|
|
||||||
|
data = usbcb.u32_Data;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
int hg_scanner_300::set_auto_flat(void)
|
int hg_scanner_300::set_auto_flat(void)
|
||||||
{
|
{
|
||||||
USBCB usbcb = { setting3288dsp::START_FLAT,0,0 };
|
USBCB usbcb = { setting3288dsp::START_FLAT,0,0 };
|
||||||
|
|
|
@ -103,7 +103,8 @@ public:
|
||||||
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*
|
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*
|
||||||
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70
|
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70
|
||||||
virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70
|
virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70
|
||||||
virtual int set_dpi_color_check_val(void) override; //设置畸变矫正
|
virtual int set_distortion_check_val(int data) override; //设置畸变矫正
|
||||||
|
virtual int get_devs_distortion_check_val(int& data)override;//获取设备畸变值 float to int;
|
||||||
virtual int set_auto_flat(void)override; //设置自动平场校正
|
virtual int set_auto_flat(void)override; //设置自动平场校正
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1282,7 +1282,7 @@ int hg_scanner_302::get_speed_mode(int& data)
|
||||||
{
|
{
|
||||||
return read_register(setting3399::SR_SET_SPEEDMODE, &data);
|
return read_register(setting3399::SR_SET_SPEEDMODE, &data);
|
||||||
}
|
}
|
||||||
int hg_scanner_302::set_dpi_color_check_val(void)
|
int hg_scanner_302::set_distortion_check_val(int data)
|
||||||
{
|
{
|
||||||
setting3399::Scanner_Reg_Defs retio = setting3399::SR_SET_H_200_RATIO;
|
setting3399::Scanner_Reg_Defs retio = setting3399::SR_SET_H_200_RATIO;
|
||||||
if (resolution_ <= 200)
|
if (resolution_ <= 200)
|
||||||
|
|
|
@ -125,6 +125,6 @@ public:
|
||||||
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*/
|
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*/
|
||||||
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70
|
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70
|
||||||
virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70
|
virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70
|
||||||
virtual int set_dpi_color_check_val(void) override; //设置畸变矫正
|
virtual int set_distortion_check_val(int data) override; //设置畸变矫正
|
||||||
virtual int set_auto_flat(void) override; //设置自动平场校正
|
virtual int set_auto_flat(void) override; //设置自动平场校正
|
||||||
};
|
};
|
||||||
|
|
|
@ -879,11 +879,11 @@ int hg_scanner_400::get_speed_mode(int& data)
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
int hg_scanner_400::set_dpi_color_check_val(void)
|
int hg_scanner_400::set_distortion_check_val(int data)
|
||||||
{
|
{
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 0;
|
len = 0;
|
||||||
USBCB usbcb = { setting3288dsp::SET_JUST_COF_H ,1,resolution_ };
|
USBCB usbcb = { setting3288dsp::SET_JUST_COF_H ,data,resolution_ };
|
||||||
len = sizeof(usbcb);
|
len = sizeof(usbcb);
|
||||||
io_->write_bulk(&usbcb, &len);
|
io_->write_bulk(&usbcb, &len);
|
||||||
|
|
||||||
|
|
|
@ -107,6 +107,6 @@ public:
|
||||||
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*
|
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*
|
||||||
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70,80
|
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70,80
|
||||||
virtual int get_speed_mode(int &data) override; //设置速度模式 /*/ data:40,50,60,70,80
|
virtual int get_speed_mode(int &data) override; //设置速度模式 /*/ data:40,50,60,70,80
|
||||||
virtual int set_dpi_color_check_val(void) override; //设置畸变矫正
|
virtual int set_distortion_check_val(int data) override; //设置畸变矫正
|
||||||
virtual int set_auto_flat(void); //设置自动平场校正
|
virtual int set_auto_flat(void); //设置自动平场校正
|
||||||
};
|
};
|
||||||
|
|
|
@ -1242,7 +1242,7 @@ int hg_scanner_402::get_speed_mode(int& data)
|
||||||
{
|
{
|
||||||
return read_register(setting3399::SR_SET_SPEEDMODE, &data);
|
return read_register(setting3399::SR_SET_SPEEDMODE, &data);
|
||||||
}
|
}
|
||||||
int hg_scanner_402::set_dpi_color_check_val(void)
|
int hg_scanner_402::set_distortion_check_val(int data)
|
||||||
{
|
{
|
||||||
setting3399::Scanner_Reg_Defs retio = setting3399::SR_SET_H_200_RATIO;
|
setting3399::Scanner_Reg_Defs retio = setting3399::SR_SET_H_200_RATIO;
|
||||||
if (resolution_ <= 200)
|
if (resolution_ <= 200)
|
||||||
|
@ -1252,7 +1252,7 @@ int hg_scanner_402::set_dpi_color_check_val(void)
|
||||||
else if (resolution_ > 300 && resolution_ <= 600)
|
else if (resolution_ > 300 && resolution_ <= 600)
|
||||||
retio = setting3399::SR_SET_H_600_RATIO;
|
retio = setting3399::SR_SET_H_600_RATIO;
|
||||||
|
|
||||||
return write_register(retio, *(int*)&save_dpi_color_check_val);
|
return write_register(retio, data);
|
||||||
}
|
}
|
||||||
int hg_scanner_402::set_auto_flat(void)
|
int hg_scanner_402::set_auto_flat(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -125,6 +125,6 @@ public:
|
||||||
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*/
|
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*/
|
||||||
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70,80
|
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70,80
|
||||||
virtual int get_speed_mode(int &data) override; //设置速度模式 /*/ data:40,50,60,70,80
|
virtual int get_speed_mode(int &data) override; //设置速度模式 /*/ data:40,50,60,70,80
|
||||||
virtual int set_dpi_color_check_val(void) override; //设置畸变矫正
|
virtual int set_distortion_check_val(int data) override; //设置畸变矫正
|
||||||
virtual int set_auto_flat(void) override; //设置自动平场校正
|
virtual int set_auto_flat(void) override; //设置自动平场校正
|
||||||
};
|
};
|
||||||
|
|
|
@ -61,7 +61,7 @@ g_supporting_devices[] = {
|
||||||
#else
|
#else
|
||||||
{0x3072, PID_AND_NAME(100, SCANNER_NAME_HG_G100), "G100", "", &hg_scanner_mgr::create_scanner_g100}
|
{0x3072, PID_AND_NAME(100, SCANNER_NAME_HG_G100), "G100", "", &hg_scanner_mgr::create_scanner_g100}
|
||||||
, {0x3072, PID_AND_NAME(139, SCANNER_NAME_HG_G100), "G100", "", &hg_scanner_mgr::create_scanner_g239}
|
, {0x3072, PID_AND_NAME(139, SCANNER_NAME_HG_G100), "G100", "", &hg_scanner_mgr::create_scanner_g239}
|
||||||
, {0x3072, PID_AND_NAME(200, SCANNER_NAME_HG_G200), "G200", "", &hg_scanner_mgr::create_scanner_g100}
|
, {0x3072, PID_AND_NAME(200, SCANNER_NAME_HG_G200), "G200", "", &hg_scanner_mgr::create_scanner_g239}
|
||||||
, {0x3072, PID_AND_NAME(239, SCANNER_NAME_HG_G200), "G200", "", &hg_scanner_mgr::create_scanner_g239}
|
, {0x3072, PID_AND_NAME(239, SCANNER_NAME_HG_G200), "G200", "", &hg_scanner_mgr::create_scanner_g239}
|
||||||
, {0x3072, PID_AND_NAME(300, SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_g300}
|
, {0x3072, PID_AND_NAME(300, SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_g300}
|
||||||
, {0x3072, PID_AND_NAME(302, SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_g302}
|
, {0x3072, PID_AND_NAME(302, SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_g302}
|
||||||
|
|
Loading…
Reference in New Issue