use y white strip offset to reach calibration area

- use y white strip offset to move to calibration area for GL841 devices
- set y offset to 0 for all GL841 devices but one needing it
merge-requests/1/head
Stphane Voltz 2013-12-15 07:25:09 +01:00
rodzic 77a3c2f7aa
commit b882b2ed06
3 zmienionych plików z 45 dodań i 52 usunięć

Wyświetl plik

@ -3089,8 +3089,8 @@ genesys_send_shading_coefficient (Genesys_Device * dev)
channels, channels,
0, 0,
coeff, coeff,
0xfa00, 0xf900,
0x0a00); 0x0001);
break; break;
case CCD_PLUSTEK_3600: case CCD_PLUSTEK_3600:
compute_shifted_coefficients (dev, compute_shifted_coefficients (dev,

Wyświetl plik

@ -1373,7 +1373,7 @@ static Genesys_Model canon_lide_50_model = {
SANE_FIX (218.0), /* Size of scan area in mm (x) */ SANE_FIX (218.0), /* Size of scan area in mm (x) */
SANE_FIX (299.0), /* Size of scan area in mm (y) */ SANE_FIX (299.0), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (6.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2087,7 +2087,7 @@ static Genesys_Model canon_lide_60_model = {
SANE_FIX (218.0), /* Size of scan area in mm (x) */ SANE_FIX (218.0), /* Size of scan area in mm (x) */
SANE_FIX (299.0), /* Size of scan area in mm (y) */ SANE_FIX (299.0), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (6.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2140,7 +2140,7 @@ static Genesys_Model canon_lide_80_model = {
SANE_FIX (216.07), /* Size of scan area in mm (x) 218.00 */ SANE_FIX (216.07), /* Size of scan area in mm (x) 218.00 */
SANE_FIX (299.0), /* Size of scan area in mm (y) */ SANE_FIX (299.0), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (4.5), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2571,7 +2571,7 @@ static Genesys_Model visioneer_xp300_model = {
SANE_FIX (435.0), /* Size of scan area in mm (x) */ SANE_FIX (435.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2676,7 +2676,7 @@ static Genesys_Model visioneer_roadwarrior_model = {
SANE_FIX (220.0), /* Size of scan area in mm (x) */ SANE_FIX (220.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2728,7 +2728,7 @@ static Genesys_Model syscan_docketport_465_model = {
SANE_FIX (220.0), /* Size of scan area in mm (x) */ SANE_FIX (220.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2780,7 +2780,7 @@ static Genesys_Model visioneer_xp100_r3_model = {
SANE_FIX (220.0), /* Size of scan area in mm (x) */ SANE_FIX (220.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2832,7 +2832,7 @@ static Genesys_Model pentax_dsmobile_600_model = {
SANE_FIX (220.0), /* Size of scan area in mm (x) */ SANE_FIX (220.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2884,7 +2884,7 @@ static Genesys_Model syscan_docketport_467_model = {
SANE_FIX (220.0), /* Size of scan area in mm (x) */ SANE_FIX (220.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2936,7 +2936,7 @@ static Genesys_Model syscan_docketport_685_model = {
SANE_FIX (212.0), /* Size of scan area in mm (x) */ SANE_FIX (212.0), /* Size of scan area in mm (x) */
SANE_FIX (500), /* Size of scan area in mm (y) */ SANE_FIX (500), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -2989,7 +2989,7 @@ static Genesys_Model syscan_docketport_485_model = {
SANE_FIX (435.0), /* Size of scan area in mm (x) */ SANE_FIX (435.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -3042,7 +3042,7 @@ static Genesys_Model dct_docketport_487_model = {
SANE_FIX (435.0), /* Size of scan area in mm (x) */ SANE_FIX (435.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
@ -3207,7 +3207,7 @@ static Genesys_Model xerox_travelscanner_model = {
SANE_FIX (220.0), /* Size of scan area in mm (x) */ SANE_FIX (220.0), /* Size of scan area in mm (x) */
SANE_FIX (511), /* Size of scan area in mm (y) */ SANE_FIX (511), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */
SANE_FIX (0.0), /* Start of black mark in mm (x) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */

Wyświetl plik

@ -3894,15 +3894,12 @@ gl841_feed (Genesys_Device * dev, int steps)
uint8_t val; uint8_t val;
int loop; int loop;
DBG (DBG_proc, "gl841_feed (steps = %d)\n", DBG (DBG_proc, "gl841_feed (steps = %d)\n", steps);
steps);
status = status = gl841_stop_action (dev);
gl841_stop_action (dev);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
DBG (DBG_error, DBG (DBG_error, "gl841_feed: failed to stop action: %s\n",
"gl841_feed: failed to stop action: %s\n",
sane_strstatus (status)); sane_strstatus (status));
return status; return status;
} }
@ -3911,12 +3908,9 @@ gl841_feed (Genesys_Device * dev, int steps)
gl841_init_optical_regs_off(local_reg); gl841_init_optical_regs_off(local_reg);
gl841_init_motor_regs(dev,local_reg, gl841_init_motor_regs(dev,local_reg, steps,MOTOR_ACTION_FEED,0);
steps,MOTOR_ACTION_FEED,0);
status = status = gl841_bulk_write_register (dev, local_reg, GENESYS_GL841_MAX_REGS);
gl841_bulk_write_register (dev, local_reg,
GENESYS_GL841_MAX_REGS);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
DBG (DBG_error, DBG (DBG_error,
@ -3933,8 +3927,7 @@ gl841_feed (Genesys_Device * dev, int steps)
sane_strstatus (status)); sane_strstatus (status));
gl841_stop_action (dev); gl841_stop_action (dev);
/* send original registers */ /* send original registers */
gl841_bulk_write_register (dev, dev->reg, gl841_bulk_write_register (dev, dev->reg, GENESYS_GL841_MAX_REGS);
GENESYS_GL841_MAX_REGS);
return status; return status;
} }
@ -4570,6 +4563,7 @@ gl841_led_calibration (Genesys_Device * dev)
char fn[20]; char fn[20];
uint16_t expr, expg, expb; uint16_t expr, expg, expb;
Genesys_Register_Set *r; Genesys_Register_Set *r;
int move;
SANE_Bool acceptable = SANE_FALSE; SANE_Bool acceptable = SANE_FALSE;
@ -4579,16 +4573,16 @@ gl841_led_calibration (Genesys_Device * dev)
DBGSTART; DBGSTART;
/* feed to white strip. canon lide 35 only. */ /* feed to white strip if needed */
if (dev->model->gpo_type == GPO_CANONLIDE35 if (dev->model->y_offset_calib>0)
|| dev->model->gpo_type == GPO_CANONLIDE80)
{ {
status = gl841_feed(dev, 280); move = SANE_UNFIX (dev->model->y_offset_calib);
move = (move * (dev->motor.base_ydpi)) / MM_PER_INCH;
DBG (DBG_io, "%s: move=%d lines\n", __FUNCTION__, move);
status = gl841_feed(dev, move);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
DBG (DBG_error, DBG (DBG_error, "%s: failed to feed: %s\n", __FUNCTION__,
"%s: failed to feed: %s\n", __FUNCTION__,
sane_strstatus (status)); sane_strstatus (status));
return status; return status;
} }
@ -5328,19 +5322,20 @@ gl841_coarse_gain_calibration (Genesys_Device * dev, int dpi)
float gain[3]; float gain[3];
int val; int val;
int lines=1; int lines=1;
int move;
DBG (DBG_proc, "gl841_coarse_gain_calibration dpi=%d\n", dpi); DBG (DBG_proc, "%s: dpi=%d\n", __FUNCTION__, dpi);
/*feed to white strip. canon lide 35 only.*/ /* feed to white strip if needed */
if (dev->model->gpo_type == GPO_CANONLIDE35 if (dev->model->y_offset_calib>0)
|| dev->model->gpo_type == GPO_CANONLIDE80)
{ {
status = gl841_feed(dev, 280); move = SANE_UNFIX (dev->model->y_offset_calib);
move = (move * (dev->motor.base_ydpi)) / MM_PER_INCH;
DBG (DBG_io, "%s: move=%d lines\n", __FUNCTION__, move);
status = gl841_feed(dev, move);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
DBG (DBG_error, DBG (DBG_error, "%s: failed to feed: %s\n", __FUNCTION__,
"gl841_coarse_gain_calibration: failed to feed: %s\n",
sane_strstatus (status)); sane_strstatus (status));
return status; return status;
} }
@ -5369,8 +5364,7 @@ gl841_coarse_gain_calibration (Genesys_Device * dev, int dpi)
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
DBG (DBG_error, DBG (DBG_error, "%s: failed to setup scan: %s\n", __FUNCTION__,
"gl841_coarse_calibration: failed to setup scan: %s\n",
sane_strstatus (status)); sane_strstatus (status));
return status; return status;
} }
@ -5431,8 +5425,7 @@ gl841_coarse_gain_calibration (Genesys_Device * dev, int dpi)
dev->frontend.gain[j] = gain[j]*12; dev->frontend.gain[j] = gain[j]*12;
} }
DBG (DBG_proc, DBG (DBG_proc, "%s: channel %d, max=%d, gain = %f, setting:%d\n", __FUNCTION__,
"gl841_coarse_gain_calibration: channel %d, max=%d, gain = %f, setting:%d\n",
j, max[j], gain[j],dev->frontend.gain[j]); j, max[j], gain[j],dev->frontend.gain[j]);
} }
@ -5482,7 +5475,7 @@ gl841_coarse_gain_calibration (Genesys_Device * dev, int dpi)
gl841_slow_back_home(dev, SANE_TRUE); gl841_slow_back_home(dev, SANE_TRUE);
DBG (DBG_proc, "gl841_coarse_gain_calibration: completed\n"); DBGCOMPLETED;
return status; return status;
} }