Fixed calibration cache issues (coarse calibration for all modes,

correct fine calibration for sheetfed devices).
merge-requests/1/head
Gerhard Jaeger 2006-06-08 07:49:38 +00:00
rodzic 15a6e464e2
commit 08ecce430c
6 zmienionych plików z 186 dodań i 142 usunięć

Wyświetl plik

@ -1,3 +1,11 @@
2006-06-08 Gerhard Jaeger <gerhard@gjaeger.de>
* doc/plustek/Pluste-USB.changes: Update
* backend/plustek.c backend/plustek-usbcal.c
backend/plustek-usbcalfile.c backend/plustek-usbhw.c:
Fixed calibration cache issues (coarse calibration for all modes,
correct fine calibration for sheetfed devices).
2006-06-08 Mattias Ellert <mattias.ellert@tsl.uu.se>
* po/sane-backends.*.po: updated with new translation keys from
@ -182,7 +190,7 @@
do_cmd() - simplify timeout handling
* backend/fujitsu-scsi.h: increase default timeoutes
2006-05-15 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
2006-05-15 Stephane Voltz <stefdev@modulonet.fr>
* backend/genesys_devices.c backend/genesys_gl646.c: tuned HP 2300
geometry description and added a safeguard against failed origin
@ -226,7 +234,7 @@
* backend/genesys_devices.c: Increase length of acceleration
slopes for Canon LiDE 35/40/50/60
2006-04-21 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
2006-04-21 Stephane Voltz <stefdev@modulonet.fr>
* backend/genesys.c: add workraound with issue related
to asic reset and data scan amount
@ -362,7 +370,7 @@
* doc/descriptions/unsupported.desc: Added Microtek ScanMaker 4850
II and Plustek OpticPro ST 64+.
2006-03-12 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
2006-03-12 Stephane Voltz <stefdev@modulonet.fr>
* backend/genesys_gl646.c: removed now unneeded #ifdef in
gl646_send_gamma_table.
@ -372,7 +380,7 @@
* backend/genesys_gl646.c: fixed silly thinko in
gl646_send_gamma_table.
2006-03-12 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
2006-03-12 Stephane Voltz <stefdev@modulonet.fr>
* backend/genesys_gl646.c: fixed gl646_send_gamma_table after
endianess changes. Put again a little fix for power saving
@ -395,7 +403,7 @@
data
* backend/genesys_gl646.c: Convert gamma tables to little endian
2006-03-06 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
2006-03-06 Stephane Voltz <stefdev@modulonet.fr>
* backend/genesys_gl646.c: power saving fixes
@ -421,7 +429,7 @@
* backend/u12-hw.c: SoftwareReset is now disabled in
cancelSequence when the device is a Genius scanner.
2006-02-13 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
2006-02-13 Stephane Voltz <stefdev@modulonet.fr>
* backend/genesys_gl646.c: disabled power saving for gl646.
@ -489,7 +497,7 @@
* backend/canon-sane.c: Fixed variable redeclaration.
2006-01-05 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
2006-01-05 Stephane Voltz <stefdev@modulonet.fr>
* tools/hotplug/libsane.usermap: Added Dell A920 (rebranded X1100)
@ -630,7 +638,7 @@
* backend/snapscan-scsi.c backend/snapscan-options.c backend/snapscan.c:
Some fixes for the Epson Stylus CX1500
2006-01-05 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
2006-01-05 Stephane Voltz <stefdev@modulonet.fr>
* backend/umax_pp_low.c: removed unused local variable

Wyświetl plik

@ -1137,7 +1137,7 @@ cano_DoCalibration( Plustek_Device *dev )
scaps->workaroundFlag &= ~_WAF_SKIP_FINE;
scaps->workaroundFlag &= ~_WAF_BYPASS_CALIBRATION;
if( !dev->adj.cacheCalData )
if( !dev->adj.cacheCalData && !usb_IsSheetFedDevice(dev))
usb_SpeedTest( dev );
/* here we handle that warmup stuff for CCD devices */
@ -1198,6 +1198,12 @@ cano_DoCalibration( Plustek_Device *dev )
skip_fine = SANE_FALSE;
idx_end = DIVIDER+1;
/* did I say any case? */
if (scan->sParam.bBitDepth != 8) {
skip_fine = SANE_TRUE;
DBG( _DBG_INFO2, "No fine calibration for non-8bit modes!\n" );
}
} else if( usb_IsSheetFedDevice(dev)) {
/* we only to the calibration upon request !*/

Wyświetl plik

@ -433,7 +433,13 @@ usb_ReadAndSetCalData( Plustek_Device *dev )
if( 13 == res ) {
usb_RestoreCalData( dev, &cal );
ret = SANE_TRUE;
} else {
DBG( _DBG_ERROR, "Error reading coarse-calibration data, only "
"%d elements available!\n", res );
}
} else {
DBG( _DBG_ERROR, "Error reading coarse-calibration data for "
"PFX: >%s<!\n", pfx );
}
fclose( fp );

Wyświetl plik

@ -48,6 +48,8 @@
* - added special misc I/O setup for CIS devices (usb_ResetRegisters)
* - 0.51 - change usb_AdjustLamps() and use it now in usb_switchLamp()
* - added usb_Wait4ScanSample() and usb_InCalibrationMode()
* - tweaked EjectPaper to work correctly with the supported sheetfed
* devices
* .
* <hr>
* This file is part of the SANE package.
@ -438,7 +440,7 @@ usb_WaitPos( Plustek_Device *dev, u_long to, SANE_Bool stay )
static SANE_Bool
usb_ModuleMove( Plustek_Device *dev, u_char action, u_long dwStep )
{
SANE_Bool retval;
SANE_Bool retval, ejected;
u_char bReg2, reg7, mclk_div;
u_short wFastFeedStepSize;
double dMaxMoveSpeed;
@ -467,12 +469,15 @@ usb_ModuleMove( Plustek_Device *dev, u_char action, u_long dwStep )
DBG( _DBG_INFO2, "Ejecting paper...\n" );
retval = SANE_TRUE;
ejected = SANE_FALSE;
do {
if( usb_SensorPaper(dev) &&
!usb_ModuleMove(dev,MOVE_SkipPaperSensor, 0 )) {
if( usb_SensorPaper(dev)) {
if (!usb_ModuleMove(dev,MOVE_SkipPaperSensor, 0 )) {
hw->dMaxMoveSpeed = d;
return SANE_FALSE;
}
ejected = SANE_TRUE;
}
if( usb_SensorAdf(dev->fd) &&
!usb_ModuleMove(dev,MOVE_ToPaperSensor, 0 )) {
@ -490,7 +495,7 @@ usb_ModuleMove( Plustek_Device *dev, u_char action, u_long dwStep )
* to make sure, that the scanned sheet is out of the scanner
* BUT: not at startup
*/
if (dev->initialized >= 0) {
if (dev->initialized >= 0 || ejected) {
if(!usb_ModuleMove( dev, MOVE_Forward, 300 /* *3 */)) {
hw->dMaxMoveSpeed = d;
return SANE_FALSE;

Wyświetl plik

@ -157,7 +157,7 @@
#include "../include/sane/sanei.h"
#include "../include/sane/saneopts.h"
#define BACKEND_VERSION "0.51-10"
#define BACKEND_VERSION "0.51-11"
#define BACKEND_NAME plustek
#include "../include/sane/sanei_access.h"
@ -216,8 +216,8 @@ static const SANE_Device **devlist = 0;
static unsigned long tsecs = 0;
static Plustek_Scanner *sc = NULL;
static const SANE_Int bpp_lm9832_list [] = { 2, 8, 14 };
static const SANE_Int bpp_lm9833_list [] = { 2, 8, 16 };
static const SANE_Int bpp_lm9832_list [] = { 1, 8, 14 };
static const SANE_Int bpp_lm9833_list [] = { 1, 8, 16 };
static const SANE_String_Const mode_list[] =
{
@ -1760,27 +1760,28 @@ do_calibration( void *args )
Plustek_Device *dev = s->hw;
DCapsDef *caps = &dev->usbDev.Caps;
int scanmode, rc;
int modes[] = { COLOR_BW, COLOR_256GRAY, COLOR_GRAY16,
COLOR_TRUE24, COLOR_TRUE48 };
thread_entry();
/* if the device does only supports color scanning, there's no need
* to calibrate the gray mode
/* if the device does only support color scanning, there's no need
* to calibrate the gray modes
*/
if (caps->workaroundFlag & _WAF_GRAY_FROM_COLOR)
scanmode = 2;
scanmode = 3;
else
scanmode = 1;
scanmode = 0;
for ( ; scanmode < 3; scanmode++ ) {
for ( ; scanmode < 5; scanmode++ ) {
dev->scanning.dwFlag |= SCANFLAG_Calibration;
if (SANE_STATUS_GOOD == local_sane_start(s, scanmode)) {
if (SANE_STATUS_GOOD == local_sane_start(s, modes[scanmode])) {
/* prepare for scanning: speed-test, warmup, calibration */
rc = usbDev_Prepare( dev, s->buf );
if( rc != 0 || scanmode == 2) {
if( rc != 0 || scanmode == 4) {
if (rc != 0 )
DBG(_DBG_INFO,"Calibration canceled!\n");
m_fStart = SANE_TRUE;
@ -1827,7 +1828,15 @@ sane_control_option( SANE_Handle handle, SANE_Int option,
do_cancel(s, SANE_TRUE);
return SANE_STATUS_GOOD;
}
return SANE_STATUS_DEVICE_BUSY;
/* okay, we need some exceptions */
switch (option) {
case OPT_TL_X:
case OPT_TL_Y:
case OPT_BR_X:
case OPT_BR_Y: break;
default: return SANE_STATUS_DEVICE_BUSY;
}
}
}

Wyświetl plik

@ -1,8 +1,18 @@
Plustek.changes - Gerhard Jäger <gerhard@gjaeger.de>
Plustek.changes - Gerhard Jäger <gerhard@gjaeger.de>
====================================================
Note: All other not mentioned builds have never been released.
V 0.51-11 (2006-06-08)
----------------------
Fixed calibration: All modes will be coarse calibrated now, fine calibration
will be done only for 8 bit modes.
Fixed paper eject during startup.
V 0.51-10 (2006-05-28)
---------------------
Released
V 0.51-8 (2006-04-09)
---------------------
Added cache for fine calibration (CIS devices only)