[sane-devel] sane_cancel on HP 5590

m. allan noah kitno455 at gmail.com
Wed Feb 27 12:45:49 UTC 2008


On 2/27/08, Ilia Sotnikov <hostcc at gmail.com> wrote:
> On Tue, Feb 26, 2008 at 9:41 PM, m. allan noah <kitno455 at gmail.com> wrote:
>  > sane_cancel is meant to be called asynchronously, so it probably
>  >  should not send any commands to the scanner.
>  >  sane_read should probably check a 'no longer scanning' flag, and do
>  >  whatever cleanup is required.
>  >
>  >  take it away Ilia :)
>
>
> I agree, the sane_cancel() function from the backend doesn't fully
>  conform to SANE standard - it tries to send cancel command to the
>  scanner IMMEDIATELY.
>
>
>  >  >  I am trying to cancel a page scan. so i call sane_cancel while
>  >  >  scanning is in progress
>  >  >  but the application get stuck on the next sane_read,
>  >  >  instead of return SANE_STATUS_CANCELLED
>  >  >
>
>
> Fixing the synchronous nature of the backend's sane_cancel() function
>  could make the whole picture cleaner and should be done to follow the
>  SANE standard. However, while experimenting with the scanner I noticed
>  that it's very sensitive to data reading. When only partial data was
>  read from the device and a command
>  then sent to it the device was hanging in most cases.
>
>  At this moment, you should avoid calls to sane_cancel() while working
>  with such a scanner. Or, if that's somewhat urgent for you, I could
>  prepare the patch.
>
>  I think that device internals is rather simple in terms of
>  functionality to reduce production prices. The same decision could be
>  made from looking to the command set and to the absence of paper
>  sensor on the ADF unit. That said, office / workgroup HP scanning
>  devices are not perfect from technical point of view.
>

this is not unusual for cheap scanners. it is probably ok to have the
next sane_read call block and loop, sending image to /dev/null until
the end of page, stop the batch, and return CANCELED.

allan
-- 
"The truth is an offense, but not a sin"



More information about the sane-devel mailing list