genesys: Remove unused code

merge-requests/228/merge
Povilas Kanapickas 2019-11-23 12:38:39 +02:00
rodzic 3dff8085e7
commit d8e8899a76
2 zmienionych plików z 0 dodań i 286 usunięć

Wyświetl plik

@ -491,288 +491,6 @@ SANE_Int sanei_genesys_create_slope_table3(Genesys_Device * dev,
return sum_time;
}
/* alternate slope table creation function */
/* the hardcoded values (g and vstart) will go in a motor struct */
SANE_Int genesys_create_slope_table2(Genesys_Device* dev, std::vector<uint16_t>& slope_table,
int steps,
int step_type, int exposure_time,
bool same_speed, double yres)
{
double t, g;
SANE_Int sum = 0;
int vstart, vend;
int i;
DBG(DBG_proc, "%s: %d steps, step_type = %d, "
"exposure_time = %d, same_speed = %d, yres = %.2f\n", __func__, steps,
step_type, exposure_time, same_speed, yres);
/* start speed */
if (dev->model->motor_id == MotorId::MD_5345) {
if (yres < dev->motor.base_ydpi / 6)
vstart = 2500;
else
vstart = 2000;
}
else
{
if (steps == 2) {
vstart = exposure_time;
} else if (steps == 3) {
vstart = 2 * exposure_time;
} else if (steps == 4) {
vstart = static_cast<int>(1.5 * exposure_time);
} else if (steps == 120) {
vstart = static_cast<int>(1.81674 * exposure_time);
} else {
vstart = exposure_time;
}
}
/* final speed */
vend = static_cast<int>((exposure_time * yres) / (dev->motor.base_ydpi * (1 << step_type)));
/*
type=1 : full
type=2 : half
type=4 : quarter
vend * type * base_ydpi / exposure = yres
*/
/* acceleration */
switch (steps)
{
case 255:
/* test for special case: fast moving slope */
/* todo: a 'fast' boolean parameter should be better */
if (vstart == 2000)
g = 0.2013;
else
g = 0.1677;
break;
case 120:
g = 0.5;
break;
case 67:
g = 0.5;
break;
case 64:
g = 0.2555;
break;
case 44:
g = 0.5;
break;
case 4:
g = 0.5;
break;
case 3:
g = 1;
break;
case 2:
vstart = vend;
g = 1;
break;
default:
g = 0.2635;
}
/* if same speed, no 'g' */
sum = 0;
if (same_speed)
{
for (i = 0; i < 255; i++)
{
slope_table[i] = vend;
sum += slope_table[i];
DBG (DBG_io, "slope_table[%3d] = %5d\n", i, slope_table[i]);
}
}
else
{
for (i = 0; i < steps; i++)
{
t = std::pow(static_cast<double>(i) / static_cast<double>(steps - 1), g);
slope_table[i] = static_cast<std::uint16_t>(vstart * (1 - t) + t * vend);
DBG (DBG_io, "slope_table[%3d] = %5d\n", i, slope_table[i]);
sum += slope_table[i];
}
for (i = steps; i < 255; i++)
{
slope_table[i] = vend;
DBG (DBG_io, "slope_table[%3d] = %5d\n", i, slope_table[i]);
sum += slope_table[i];
}
}
DBG(DBG_proc, "%s: returns sum=%d, completed\n", __func__, sum);
return sum;
}
/* Generate slope table for motor movement */
/* todo: check details */
SANE_Int sanei_genesys_create_slope_table(Genesys_Device * dev, std::vector<uint16_t>& slope_table,
int steps, int step_type, int exposure_time,
bool same_speed, double yres)
{
double t;
double start_speed;
double g;
uint32_t time_period;
int sum_time = 0;
int i, divider;
int same_step;
if (dev->model->motor_id == MotorId::MD_5345 ||
dev->model->motor_id == MotorId::HP2300 ||
dev->model->motor_id == MotorId::HP2400)
{
return genesys_create_slope_table2(dev, slope_table, steps, step_type, exposure_time,
same_speed, yres);
}
DBG(DBG_proc, "%s: %d steps, step_type = %d, exposure_time = %d, same_speed =%d\n", __func__,
steps, step_type, exposure_time, same_speed);
DBG(DBG_proc, "%s: yres = %.2f\n", __func__, yres);
g = 0.6;
start_speed = 0.01;
same_step = 4;
divider = 1 << step_type;
time_period = static_cast<std::uint32_t>(yres * exposure_time /
dev->motor.base_ydpi /*MOTOR_GEAR */ );
if ((time_period < 2000) && (same_speed))
same_speed = false;
time_period = time_period / divider;
if (same_speed)
{
for (i = 0; i < steps; i++)
{
slope_table[i] = static_cast<std::uint16_t>(time_period);
sum_time += time_period;
DBG (DBG_io, "slope_table[%d] = %d\n", i, time_period);
}
DBG(DBG_info, "%s: returns sum_time=%d, completed\n", __func__, sum_time);
return sum_time;
}
if (time_period > MOTOR_SPEED_MAX * 5)
{
g = 1.0;
start_speed = 0.05;
same_step = 2;
}
else if (time_period > MOTOR_SPEED_MAX * 4)
{
g = 0.8;
start_speed = 0.04;
same_step = 2;
}
else if (time_period > MOTOR_SPEED_MAX * 3)
{
g = 0.7;
start_speed = 0.03;
same_step = 2;
}
else if (time_period > MOTOR_SPEED_MAX * 2)
{
g = 0.6;
start_speed = 0.02;
same_step = 3;
}
if (dev->model->motor_id == MotorId::ST24) {
steps = 255;
switch (static_cast<int>(yres))
{
case 2400:
g = 0.1672;
start_speed = 1.09;
break;
case 1200:
g = 1;
start_speed = 6.4;
break;
case 600:
g = 0.1672;
start_speed = 1.09;
break;
case 400:
g = 0.2005;
start_speed = 20.0 / 3.0 /*7.5 */ ;
break;
case 300:
g = 0.253;
start_speed = 2.182;
break;
case 150:
g = 0.253;
start_speed = 4.367;
break;
default:
g = 0.262;
start_speed = 7.29;
}
same_step = 1;
}
if (steps <= same_step)
{
time_period = static_cast<std::uint32_t>(yres * exposure_time /
dev->motor.base_ydpi /*MOTOR_GEAR */ );
time_period = time_period / divider;
if (time_period > 65535)
time_period = 65535;
for (i = 0; i < same_step; i++)
{
slope_table[i] = static_cast<std::uint16_t>(time_period);
sum_time += time_period;
DBG (DBG_io, "slope_table[%d] = %d\n", i, time_period);
}
DBG(DBG_proc, "%s: returns sum_time=%d, completed\n", __func__, sum_time);
return sum_time;
}
for (i = 0; i < steps; i++)
{
double j = static_cast<double>(i) - same_step + 1; /* start from 1/16 speed */
if (j <= 0) {
t = 0;
} else {
t = std::pow(j / (steps - same_step), g);
}
// time required for full steps
time_period = static_cast<std::uint32_t>(yres * exposure_time /
dev->motor.base_ydpi /*MOTOR_GEAR */ *
(start_speed + (1 - start_speed) * t));
time_period = time_period / divider;
if (time_period > 65535) {
time_period = 65535;
}
slope_table[i] = static_cast<std::uint16_t>(time_period);
sum_time += time_period;
DBG (DBG_io, "slope_table[%d] = %d\n", i, slope_table[i]);
}
DBG(DBG_proc, "%s: returns sum_time=%d, completed\n", __func__, sum_time);
return sum_time;
}
/** @brief computes gamma table
* Generates a gamma table of the given length within 0 and the given
* maximum value

Wyświetl plik

@ -345,10 +345,6 @@ SANE_Int sanei_genesys_generate_slope_table(std::vector<uint16_t>& slope_table,
unsigned int steps, double g,
unsigned int *used_steps, unsigned int *vfinal);
SANE_Int sanei_genesys_create_slope_table(Genesys_Device * dev, std::vector<uint16_t>& slope_table,
int steps, int step_type, int exposure_time,
bool same_speed, double yres);
SANE_Int sanei_genesys_create_slope_table3(Genesys_Device * dev,
std::vector<uint16_t>& slope_table, int max_step,
unsigned int use_steps,