[sane-devel] sane_cancel()

Nicolas nicolas.martin at freesurf.fr
Wed Jul 16 06:28:49 UTC 2008


pixma backend can handle batch scan, I've tested it under both xsane and
scanimage -b :

$ scanimage -b
Scanning -1 pages, incrementing by 1, numbering from 1
Scanning page 1
Scanned page 1. (scanner status = 5)
Scanning page 2
Scanned page 2. (scanner status = 5)
Scanning page 3
Scanned page 3. (scanner status = 5)
Scanning page 4
...

Is that correct ?
AFAIK, there's no need to call sane_cancel () at the end of each page,
when using the pixma backend. 

Kare, is there a way I can help with libksane and the pixma backend ? 
Could you describe exactly the test you're doing, and which fails ?

Nicolas
 

Le mardi 15 juillet 2008 à 20:30 -0400, m. allan noah a écrit :
> On 7/15/08, Kåre Särs <kare.sars at kolumbus.fi> wrote:
> > Hi again,
> >
> >
> >  On Wednesdayen den 16 July 2008 02:02:36 Kåre Särs wrote:
> >  > Hi,
> >  >
> >  > I'm a bit confused with the use of sane_cancel(). I noticed today that the
> >  > pixma backend requires a sane_cancel after each scan (libksane did not work
> >  > correctly with the pixma backend). I have read here on the list:
> >  > "5. be aware that a proper front-end in batch mode will call
> >  > sane_start() at the beginning of each page, but only call sane_cancel
> >  > after the last page returns SANE_STATUS_NO_DOCS."
> >  >
> >  > Why does the frontend have to call sane_cancel() at the end of a scan?
> >  >
> >  > Is this a bug in the pixma backend (libksane works OK with at least the
> >  > test, epson, epkowa and v4l backends), or is the pixma backend just more
> >  > strict than the backends I have tested with before? (The problem was that
> >  > the backend did not accept writes to any parameters after a scan without a
> >  > cancel at the end.)
> >  >
> >  > I remember reading something about clarifying the use of sane_cancel() in
> >  > the standard for 1.1, but I can't remember what it was about :)
> >  >
> >
> >
> > Reading the standard again I see in 4.4 "Note that sane_cancel() must be
> >  called even if the last read operation returned SANE_STATUS_EOF."
> >
> >  But I'm still wondering why :)
> 
> sane_cancel should be called at the end of the batch, but not between
> pages, otherwise backends which buffer the backside of a duplex read
> will drop the image. this is an unfortunate historical accident,
> because sane_cancel serving a dual purpose worked fine for flatbed
> scanners that had no concept of a 'batch'.
> 
> if pixma backend requires a call to sane_cancel after each page of a
> batch scan, it is broken, and wont work with scanimage -b
> 
> allan
> -- 
> "The truth is an offense, but not a sin"
> 




More information about the sane-devel mailing list