summaryrefslogtreecommitdiff
path: root/backend/genesys/tables_motor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backend/genesys/tables_motor.cpp')
-rw-r--r--backend/genesys/tables_motor.cpp496
1 files changed, 405 insertions, 91 deletions
diff --git a/backend/genesys/tables_motor.cpp b/backend/genesys/tables_motor.cpp
index 2484d2d..a452fe5 100644
--- a/backend/genesys/tables_motor.cpp
+++ b/backend/genesys/tables_motor.cpp
@@ -53,272 +53,586 @@ void genesys_init_motor_tables()
{
s_motors.init();
+ MotorProfile profile;
+
Genesys_Motor motor;
motor.id = MotorId::UMAX;
- motor.base_ydpi = 1200;
- motor.optical_ydpi = 2400;
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128));
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128));
+ motor.base_ydpi = 2400;
+ motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::FULL, 0});
+ motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::HALF, 0});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::MD_5345; // MD5345/6228/6471
- motor.base_ydpi = 1200;
- motor.optical_ydpi = 2400;
- motor.slopes.push_back(MotorSlope::create_from_steps(2000, 1375, 128));
- motor.slopes.push_back(MotorSlope::create_from_steps(2000, 1375, 128));
+ motor.base_ydpi = 2400;
+ motor.profiles.push_back({MotorSlope::create_from_steps(2000, 1375, 128), StepType::FULL, 0});
+ motor.profiles.push_back({MotorSlope::create_from_steps(2000, 1375, 128), StepType::HALF, 0});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::ST24;
motor.base_ydpi = 2400;
- motor.optical_ydpi = 2400;
- motor.slopes.push_back(MotorSlope::create_from_steps(2289, 2100, 128));
- motor.slopes.push_back(MotorSlope::create_from_steps(2289, 2100, 128));
+ motor.profiles.push_back({MotorSlope::create_from_steps(2289, 2100, 128), StepType::FULL, 0});
+ motor.profiles.push_back({MotorSlope::create_from_steps(2289, 2100, 128), StepType::HALF, 0});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::HP3670;
motor.base_ydpi = 1200;
- motor.optical_ydpi = 1200;
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128));
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128));
+ motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::FULL, 0});
+ motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::HALF, 0});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::HP2400;
motor.base_ydpi = 1200;
- motor.optical_ydpi = 1200;
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128));
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128));
+ motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::FULL, 0});
+ motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::HALF, 0});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::HP2300;
- motor.base_ydpi = 600;
- motor.optical_ydpi = 1200;
- motor.slopes.push_back(MotorSlope::create_from_steps(3200, 1200, 128));
- motor.slopes.push_back(MotorSlope::create_from_steps(3200, 1200, 128));
+ motor.base_ydpi = 1200;
+ motor.profiles.push_back({MotorSlope::create_from_steps(3200, 1200, 128), StepType::FULL, 0});
+ motor.profiles.push_back({MotorSlope::create_from_steps(3200, 1200, 128), StepType::HALF, 0});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_LIDE_35;
motor.base_ydpi = 1200;
- motor.optical_ydpi = 2400;
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60));
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1400, 60));
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3500, 1300, 150), StepType::HALF, 0};
+ profile.resolutions = { 75, 150, 200, 300, 600 };
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3500, 1300, 150), StepType::QUARTER, 0};
+ profile.resolutions = { 1200, 2400 };
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3500, 1400, 150), StepType::FULL, 0};
+ profile.resolutions = { 75, 150, 200, 300 };
+ motor.fast_profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(6000, 3000, 100), StepType::FULL, 0};
+ profile.resolutions = { 600, 1200, 2400 };
+ motor.fast_profiles.push_back(profile);
+
+ s_motors->push_back(std::move(motor));
+
+
+ motor = Genesys_Motor();
+ motor.id = MotorId::CANON_LIDE_60;
+ motor.base_ydpi = 1200;
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3500, 1400, 150), StepType::HALF, 0};
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3500, 1400, 150), StepType::FULL, 0};
+ profile.resolutions = { 75, 150, 300 };
+ motor.fast_profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(6000, 3000, 100), StepType::FULL, 0};
+ profile.resolutions = { 600, 1200, 2400 };
+ motor.fast_profiles.push_back(profile);
+
+ s_motors->push_back(std::move(motor));
+
+
+ motor = Genesys_Motor();
+ motor.id = MotorId::CANON_LIDE_90;
+ motor.base_ydpi = 1200;
+ profile = {MotorSlope::create_from_steps(8000, 3000, 200), StepType::FULL, 0};
+ profile.resolutions = { 150, 300 };
+ motor.profiles.push_back(profile);
+
+ profile = {MotorSlope::create_from_steps(7000, 3000, 200), StepType::HALF, 0};
+ profile.resolutions = { 600, 1200 };
+ motor.profiles.push_back(profile);
+
+ profile = {MotorSlope::create_from_steps(7000, 3000, 200), StepType::QUARTER, 0};
+ profile.resolutions = { 2400 };
+ motor.profiles.push_back(profile);
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::XP200;
motor.base_ydpi = 600;
- motor.optical_ydpi = 600;
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60));
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60));
+ motor.profiles.push_back({MotorSlope::create_from_steps(3500, 1300, 60), StepType::FULL, 0});
+ motor.profiles.push_back({MotorSlope::create_from_steps(3500, 1300, 60), StepType::HALF, 0});
+ motor.fast_profiles.push_back({MotorSlope::create_from_steps(3500, 1300, 60), StepType::FULL, 0});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::XP300;
motor.base_ydpi = 300;
- motor.optical_ydpi = 600;
// works best with GPIO10, GPIO14 off
- motor.slopes.push_back(MotorSlope::create_from_steps(3700, 3700, 2));
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 11000, 2));
+ profile = MotorProfile{MotorSlope::create_from_steps(3700, 3700, 2), StepType::FULL, 0};
+ profile.resolutions = {}; // used during fast moves
+ motor.profiles.push_back(profile);
+
+ // FIXME: this motor profile is useless
+ profile = MotorProfile{MotorSlope::create_from_steps(11000, 11000, 2), StepType::HALF, 0};
+ profile.resolutions = {75, 150, 300, 600};
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3700, 3700, 2), StepType::FULL, 0};
+ motor.fast_profiles.push_back(profile);
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::DP665;
motor.base_ydpi = 750;
- motor.optical_ydpi = 1500;
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 2500, 10));
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 11000, 2));
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3000, 2500, 10), StepType::FULL, 0};
+ profile.resolutions = {75, 150};
+ motor.profiles.push_back(profile);
+
+ // FIXME: this motor profile is useless
+ profile = MotorProfile{MotorSlope::create_from_steps(11000, 11000, 2), StepType::HALF, 0};
+ profile.resolutions = {300, 600, 1200};
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3000, 2500, 10), StepType::FULL, 0};
+ motor.fast_profiles.push_back(profile);
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::ROADWARRIOR;
motor.base_ydpi = 750;
- motor.optical_ydpi = 1500;
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 2600, 10));
- motor.slopes.push_back(MotorSlope::create_from_steps(11000, 11000, 2));
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3000, 2600, 10), StepType::FULL, 0};
+ profile.resolutions = {75, 150};
+ motor.profiles.push_back(profile);
+
+ // FIXME: this motor profile is useless
+ profile = MotorProfile{MotorSlope::create_from_steps(11000, 11000, 2), StepType::HALF, 0};
+ profile.resolutions = {300, 600, 1200};
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3000, 2600, 10), StepType::FULL, 0};
+ motor.fast_profiles.push_back(profile);
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::DSMOBILE_600;
motor.base_ydpi = 750;
- motor.optical_ydpi = 1500;
- motor.slopes.push_back(MotorSlope::create_from_steps(6666, 3700, 8));
- motor.slopes.push_back(MotorSlope::create_from_steps(6666, 3700, 8));
+
+ profile = MotorProfile{MotorSlope::create_from_steps(6666, 3700, 8), StepType::FULL, 0};
+ profile.resolutions = {75, 150};
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(6666, 3700, 8), StepType::HALF, 0};
+ profile.resolutions = {300, 600, 1200};
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(6666, 3700, 8), StepType::FULL, 0};
+ motor.fast_profiles.push_back(profile);
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_LIDE_100;
motor.base_ydpi = 1200;
- motor.optical_ydpi = 6400;
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 127));
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1500, 127));
- motor.slopes.push_back(MotorSlope::create_from_steps(3 * 2712, 3 * 2712, 16));
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 864, 255),
+ StepType::HALF, 1432});
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 864, 279),
+ StepType::QUARTER, 2712});
+ motor.profiles.push_back({MotorSlope::create_from_steps(31680, 864, 247),
+ StepType::EIGHTH, 5280});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_LIDE_200;
motor.base_ydpi = 1200;
- motor.optical_ydpi = 6400;
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 127));
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1500, 127));
- motor.slopes.push_back(MotorSlope::create_from_steps(3 * 2712, 3 * 2712, 16));
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 864, 255),
+ StepType::HALF, 1432});
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 864, 279),
+ StepType::QUARTER, 2712});
+ motor.profiles.push_back({MotorSlope::create_from_steps(31680, 864, 247),
+ StepType::EIGHTH, 5280});
+ motor.profiles.push_back({MotorSlope::create_from_steps(31680, 864, 247),
+ StepType::EIGHTH, 10416});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_LIDE_700;
motor.base_ydpi = 1200;
- motor.optical_ydpi = 6400;
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 127));
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1500, 127));
- motor.slopes.push_back(MotorSlope::create_from_steps(3 * 2712, 3 * 2712, 16));
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 534, 255),
+ StepType::HALF, 1424});
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 534, 255),
+ StepType::HALF, 1504});
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 2022, 127),
+ StepType::HALF, 2696});
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 534, 255),
+ StepType::HALF, 2848});
+ motor.profiles.push_back({MotorSlope::create_from_steps(46876, 15864, 2),
+ StepType::EIGHTH, 10576});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::KVSS080;
motor.base_ydpi = 1200;
- motor.optical_ydpi = 1200;
- motor.slopes.push_back(MotorSlope::create_from_steps(22222, 500, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(22222, 500, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(22222, 500, 246));
+ motor.profiles.push_back({MotorSlope::create_from_steps(44444, 500, 489),
+ StepType::HALF, 8000});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::G4050;
motor.base_ydpi = 2400;
- motor.optical_ydpi = 9600;
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
+ motor.profiles.push_back({MotorSlope::create_from_steps(7842, 320, 602),
+ StepType::HALF, 8016});
+ motor.profiles.push_back({MotorSlope::create_from_steps(9422, 254, 1004),
+ StepType::HALF, 15624});
+ motor.profiles.push_back({MotorSlope::create_from_steps(28032, 2238, 604),
+ StepType::HALF, 56064});
+ motor.profiles.push_back({MotorSlope::create_from_steps(42752, 1706, 610),
+ StepType::QUARTER, 42752});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_4400F;
motor.base_ydpi = 2400;
- motor.optical_ydpi = 9600;
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(28597 * 2, 727 * 2, 200);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 1;
+ profile.resolutions = { 300, 600 };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(28597 * 2, 727 * 2, 200);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 0;
+ profile.resolutions = { 1200, 2400, 4800, 9600 };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(28597 * 2, 279 * 2, 1000);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 0;
+ motor.fast_profiles.push_back(std::move(profile));
+
+ s_motors->push_back(std::move(motor));
+
+
+ motor = Genesys_Motor();
+ motor.id = MotorId::CANON_5600F;
+ motor.base_ydpi = 2400;
+
+ // FIXME: real limit is 134, but for some reason the motor can't acquire that speed.
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(2500 * 2, 134 * 2, 1000);
+ profile.step_type = StepType::HALF;
+ profile.motor_vref = 0;
+ profile.resolutions = { 75, 150 };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(2500 * 2, 200 * 2, 1000);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 0;
+ profile.resolutions = { 300, 600, 1200, 2400, 4800 };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(2500 * 2, 200 * 2, 1000);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 0;
+ motor.fast_profiles.push_back(std::move(profile));
+
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_8400F;
motor.base_ydpi = 1600;
- motor.optical_ydpi = 6400;
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(20202 * 4, 333 * 4, 100);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 0;
+ profile.resolutions = VALUE_FILTER_ANY;
+ profile.scan_methods = { ScanMethod::FLATBED };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(65535 * 4, 333 * 4, 100);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 2;
+ profile.resolutions = VALUE_FILTER_ANY;
+ profile.scan_methods = { ScanMethod::TRANSPARENCY, ScanMethod::TRANSPARENCY_INFRARED };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(65535 * 4, 333 * 4, 200);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 2;
+ profile.resolutions = VALUE_FILTER_ANY;
+ profile.scan_methods = VALUE_FILTER_ANY;
+ motor.fast_profiles.push_back(std::move(profile));
+
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_8600F;
motor.base_ydpi = 2400;
- motor.optical_ydpi = 9600;
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
- motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(54612, 1500, 219);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 3;
+ profile.resolutions = { 300, 600 };
+ profile.scan_methods = { ScanMethod::FLATBED };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(54612, 1500, 219);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 2;
+ profile.resolutions = { 1200, 2400 };
+ profile.scan_methods = { ScanMethod::FLATBED };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(54612, 1500, 219);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 2;
+ profile.resolutions = { 4800 };
+ profile.scan_methods = { ScanMethod::FLATBED };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(54612, 1500, 219);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 2;
+ profile.resolutions = { 300, 600 };
+ profile.scan_methods = { ScanMethod::TRANSPARENCY,
+ ScanMethod::TRANSPARENCY_INFRARED };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(54612, 1500, 219);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 1;
+ profile.resolutions = { 1200, 2400 };
+ profile.scan_methods = { ScanMethod::TRANSPARENCY,
+ ScanMethod::TRANSPARENCY_INFRARED };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(54612, 1500, 219);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 0;
+ profile.resolutions = { 4800 };
+ profile.scan_methods = { ScanMethod::TRANSPARENCY,
+ ScanMethod::TRANSPARENCY_INFRARED };
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(59240, 582, 1020);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 2;
+ motor.fast_profiles.push_back(std::move(profile));
+
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_LIDE_110;
motor.base_ydpi = 4800;
- motor.optical_ydpi = 9600;
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 256));
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 335, 255),
+ StepType::FULL, 2768});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 335, 469),
+ StepType::HALF, 5360});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 2632, 3),
+ StepType::HALF, 10528});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 10432, 3),
+ StepType::QUARTER, 20864});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_LIDE_120;
motor.base_ydpi = 4800;
- motor.optical_ydpi = 9600;
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 256));
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 864, 127),
+ StepType::FULL, 4608});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 2010, 63),
+ StepType::HALF, 5360});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62464, 2632, 3),
+ StepType::QUARTER, 10528});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62592, 10432, 5),
+ StepType::QUARTER, 20864});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_LIDE_210;
motor.base_ydpi = 4800;
- motor.optical_ydpi = 9600;
- motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 256));
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 335, 255),
+ StepType::FULL, 2768});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 335, 469),
+ StepType::HALF, 5360});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 2632, 3),
+ StepType::HALF, 10528});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 10432, 4),
+ StepType::QUARTER, 20864});
+ motor.profiles.push_back({MotorSlope::create_from_steps(62496, 10432, 4),
+ StepType::EIGHTH, 41536});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::PLUSTEK_OPTICPRO_3600;
motor.base_ydpi = 1200;
- motor.optical_ydpi = 2400;
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60));
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 3250, 60));
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3500, 1300, 60), StepType::FULL, 0};
+ profile.resolutions = {75, 100, 150, 200};
+ motor.profiles.push_back(profile);
+
+ // FIXME: this motor profile is almost useless
+ profile = MotorProfile{MotorSlope::create_from_steps(3500, 3250, 60), StepType::HALF, 0};
+ profile.resolutions = {300, 400, 600, 1200};
+ motor.profiles.push_back(profile);
+
+ profile = MotorProfile{MotorSlope::create_from_steps(3500, 1300, 60), StepType::FULL, 0};
+ motor.fast_profiles.push_back(profile);
+ s_motors->push_back(std::move(motor));
+
+
+ motor = Genesys_Motor();
+ motor.id = MotorId::PLUSTEK_OPTICFILM_7200;
+ motor.base_ydpi = 3600;
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(20000 * 2, 600 * 2, 200);
+ profile.step_type = StepType::HALF;
+ profile.motor_vref = 0;
+ motor.profiles.push_back(std::move(profile));
+
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::PLUSTEK_OPTICFILM_7200I;
motor.base_ydpi = 3600;
- motor.optical_ydpi = 3600;
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(34722 * 2, 454 * 2, 40);
+ profile.step_type = StepType::HALF;
+ profile.motor_vref = 3;
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(34722 * 2, 454 * 2, 40);
+ profile.step_type = StepType::HALF;
+ profile.motor_vref = 0;
+ motor.fast_profiles.push_back(std::move(profile));
+
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::PLUSTEK_OPTICFILM_7300;
motor.base_ydpi = 3600;
- motor.optical_ydpi = 3600;
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(56818 * 4, 454 * 4, 30);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 3;
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(56818 * 4, 454 * 4, 30);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 0;
+ motor.fast_profiles.push_back(std::move(profile));
+
+ s_motors->push_back(std::move(motor));
+
+
+ motor = Genesys_Motor();
+ motor.id = MotorId::PLUSTEK_OPTICFILM_7400;
+ motor.base_ydpi = 3600;
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(64102 * 4, 400 * 4, 30);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 3;
+ motor.profiles.push_back(profile);
+ motor.fast_profiles.push_back(profile);
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::PLUSTEK_OPTICFILM_7500I;
motor.base_ydpi = 3600;
- motor.optical_ydpi = 3600;
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(56818 * 4, 454 * 4, 30);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 3;
+ motor.profiles.push_back(std::move(profile));
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(56818 * 4, 454 * 4, 30);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 0;
+ motor.fast_profiles.push_back(std::move(profile));
+
+ s_motors->push_back(std::move(motor));
+
+
+ motor = Genesys_Motor();
+ motor.id = MotorId::PLUSTEK_OPTICFILM_8200I;
+ motor.base_ydpi = 3600;
+
+ profile = MotorProfile();
+ profile.slope = MotorSlope::create_from_steps(64102 * 4, 400 * 4, 100);
+ profile.step_type = StepType::QUARTER;
+ profile.motor_vref = 3;
+ motor.profiles.push_back(profile);
+ motor.fast_profiles.push_back(profile);
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::IMG101;
motor.base_ydpi = 600;
- motor.optical_ydpi = 1200;
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60));
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 3250, 60));
+ motor.profiles.push_back({MotorSlope::create_from_steps(22000, 1000, 1017),
+ StepType::HALF, 11000});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::PLUSTEK_OPTICBOOK_3800;
motor.base_ydpi = 600;
- motor.optical_ydpi = 1200;
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60));
- motor.slopes.push_back(MotorSlope::create_from_steps(3500, 3250, 60));
+ motor.profiles.push_back({MotorSlope::create_from_steps(22000, 1000, 1017),
+ StepType::HALF, 11000});
s_motors->push_back(std::move(motor));
motor = Genesys_Motor();
motor.id = MotorId::CANON_LIDE_80;
motor.base_ydpi = 2400;
- motor.optical_ydpi = 4800; // 9600
- motor.slopes.push_back(MotorSlope::create_from_steps(9560, 1912, 31));
+ motor.profiles.push_back({MotorSlope::create_from_steps(9560, 1912, 31), StepType::FULL, 0});
s_motors->push_back(std::move(motor));
}