调整平场校正 和获取畸变调整

This commit is contained in:
13038267101 2023-03-17 22:27:06 +08:00
parent 900cffc549
commit 3b57fa8c56
10 changed files with 69 additions and 39 deletions

View File

@ -3634,11 +3634,11 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
}
else if(code == IO_CTRL_CODE_SET_DISTORTION_CHECK_VAL)
{
return set_distortion_check_val(*((int*)data));
return set_devs_distortion_check_val(*((float*)data));
}
else if (code == IO_CTRL_CODE_GET_DISTORTION_DEVS_CHECK_VAL)
{
return get_devs_distortion_check_val(*((int*)data));
return get_devs_distortion_check_val(*((float*)data));
}
else if(code == IO_CTRL_CODE_SET_DEVS_REBOOT)
{
@ -3782,11 +3782,11 @@ int hg_scanner::get_distortion_check_val(int &val)
}
return 0;
}
int hg_scanner::set_distortion_check_val(int data)
int hg_scanner::set_devs_distortion_check_val(float data)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner::get_devs_distortion_check_val(int& data)
int hg_scanner::get_devs_distortion_check_val(float& data)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}

View File

@ -521,9 +521,10 @@ public:
virtual int get_speed_mode(int &data) = 0; //获取速度模式 /*/ 设备不同值不同,详情见子类注释
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 get_distortion_check_val(int &val); //获取自动计算畸变校正值 /*/ 基类处理
virtual int set_devs_distortion_check_val(float data) = 0; //设置畸变矫正值 float;
virtual int get_devs_distortion_check_val(float& data) = 0; //获取设备畸变值 float;
virtual int set_auto_flat(int data) = 0; //设置自动平场校正
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)

View File

@ -928,7 +928,12 @@ int hg_scanner_200::get_speed_mode(int& data)
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner_200::set_distortion_check_val(int data)
int hg_scanner_200::set_devs_distortion_check_val(float data)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner_200::get_devs_distortion_check_val(float& data)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}

View File

@ -103,7 +103,10 @@ public:
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁1 上锁*/
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ 不支持
virtual int get_speed_mode(int &data) override; //设置速度模式 /*/ 不支持
virtual int set_distortion_check_val(int data) override; //设置畸变矫正
virtual int set_devs_distortion_check_val(float data) override; //设置畸变矫正
virtual int get_devs_distortion_check_val(float& data) override; //获取设备畸变值
virtual int set_auto_flat(int data); //设置自动平场校正
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)

File diff suppressed because one or more lines are too long

View File

@ -123,8 +123,10 @@ public:
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 set_distortion_check_val(int data) override; //设置畸变矫正值
virtual int get_dpi_color_check_val(int &data); //获取畸变矫正
virtual int set_devs_distortion_check_val(float data) override; //设置畸变矫正值
virtual int get_devs_distortion_check_val(float &data) override; //获取畸变矫正值
virtual int set_auto_flat(int data); //设置自动平场校正
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)

View File

@ -974,38 +974,47 @@ int hg_scanner_300::get_speed_mode(int& data)
}
return ret;
}
int hg_scanner_300::set_distortion_check_val(int data)
int hg_scanner_300::set_devs_distortion_check_val(float data)
{
int val = *(int*)&data; //float to int send
int ret = SCANNER_ERR_OK,
len = 0;
int protocol_dpi = resolution_ == 200 ? 1 : (resolution_ == 300 ? 2 : 3);
USBCB usbcb = { setting3288dsp::SET_JUST_COF_V ,data,protocol_dpi };
USBCB usbcb = { setting3288dsp::SET_JUST_COF_V ,val,protocol_dpi };
len = sizeof(usbcb);
float f = *(float*)&(data);
VLOG_MINI_3(LOG_LEVEL_WARNING, "set_distortion_check_val dpi is:%d,config dpi = %d,distortion_check_val(%f)\n", resolution_, protocol_dpi,f);
float f = *(float*)&(val);
VLOG_MINI_3(LOG_LEVEL_WARNING, "set_devs_distortion_check_val dpi is:%d,config dpi = %d,distortion_check_val(%f)\n", resolution_, protocol_dpi,f);
io_->set_timeout(5000);
ret = io_->write_bulk(&usbcb, &len);
return ret;
}
int hg_scanner_300::get_devs_distortion_check_val(int& data)
int hg_scanner_300::get_devs_distortion_check_val(float& data)
{
int ret = SCANNER_ERR_OK,
len = 0;
len = 0,
val = 0;
int protocol_dpi = resolution_ == 200 ? 1 : (resolution_ == 300 ? 2 : 3);
USBCB usbcb = { setting3288dsp::GET_JUST_COF_V ,0,protocol_dpi };
len = sizeof(usbcb);
ret = io_->write_bulk(&usbcb, &len);
if (ret == SCANNER_ERR_OK)
if (ret != SCANNER_ERR_OK)
{
io_->set_timeout(3000);
ret = io_->read_bulk(&usbcb, &len);
data = usbcb.u32_Data;
return ret;
}
float f = *(float *) & data;
VLOG_MINI_3(LOG_LEVEL_WARNING, "get_distortion_check_val dpi is:%d,protocol_dpi = %d get_distortion_check_val(%f)\n", resolution_, protocol_dpi, f);
io_->set_timeout(3000);
ret = io_->read_bulk(&usbcb, &len);
if (ret != SCANNER_ERR_OK)
{
return ret;
}
val = usbcb.u32_Data;
data = *(float *) &val;
VLOG_MINI_3(LOG_LEVEL_WARNING, "get_distortion_check_val dpi is:%d,protocol_dpi = %d get_distortion_check_val(%f)\n", resolution_, protocol_dpi, data);
return ret;
}
int hg_scanner_300::set_auto_flat(int data)

View File

@ -105,8 +105,8 @@ public:
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 get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70
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_devs_distortion_check_val(float data) override; //设置畸变矫正
virtual int get_devs_distortion_check_val(float& data)override;//获取设备畸变值 float to int;
virtual int set_auto_flat(int data)override; //设置自动平场校正
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)

View File

@ -1299,7 +1299,7 @@ int hg_scanner_302::get_speed_mode(int& data)
{
return read_register(setting3399::SR_SET_SPEEDMODE, &data);
}
int hg_scanner_302::set_distortion_check_val(int data)
int hg_scanner_302::set_devs_distortion_check_val(float data)
{
setting3399::Scanner_Reg_Defs retio = setting3399::SR_SET_H_200_RATIO;
if (resolution_ <= 200)
@ -1311,6 +1311,10 @@ int hg_scanner_302::set_distortion_check_val(int data)
return write_register(retio, *(int*)&save_dpi_color_check_val);
}
int hg_scanner_302::get_devs_distortion_check_val(float& data)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner_302::set_auto_flat(int data)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;

View File

@ -126,7 +126,8 @@ public:
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 get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70
virtual int set_distortion_check_val(int data) override; //设置畸变矫正
virtual int set_devs_distortion_check_val(float data) override; //设置畸变矫正
virtual int get_devs_distortion_check_val(float& data) override; //获取设备畸变值
virtual int set_auto_flat(int data) override; //设置自动平场校正
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)