[sane-devel] Weird behavior in exagear.

Jeff Sadowski jeff.sadowski at gmail.com
Fri Jan 12 14:55:00 UTC 2018


My code is simply calling scanimage the way I posted here already.
Running the same commands by hand results in the same behaviour. I
have my code write the command it runs in a file called ran.txt, so I
can examine it and run it. I'm just using php to open a 3 pipe method
of running scanimage. it is actually running it under "script" which
allows scanimage to continually write to stdout/stderr without
blocking which gets written to a stdout.txt and stderr.txt files. I
also implemented the ability to send ctrl-c using the 3rd input pipe.
So if my loop that is reading the pipes sees that a certain file
exists and is still running it will send a ctrl-c. My frontend starts
this php script and detaches and then reads it's output files to see
what is going on it also continually loads the image being created by
scanimage. I get the latest page number from stdout.txt/stderr.txt and
the name of the file from my rant.txt looking for '--batch= and the
matching quote and replace all %d with the last page number and then I
have my image retrieve send that file. :-)

On Fri, Jan 12, 2018 at 4:07 AM, Olaf Meeuwissen
<paddy-hack at member.fsf.org> wrote:
> Hi again,
>
> Jeff Sadowski writes:
>
>> uning sane -l -d128 -e I am able to see the following error.
>
> This
>
>> [saned] do_scan: done, status=End of file reached
>> [saned] process_request: waiting for request
>> [saned] process_request: bad status 22
>> [saned] quit: exiting
>
> is probably due to the error you get on the other end
>
>> scanimage: scanning image of size 1648x2314 pixels at 24 bits/pixel
>> scanimage: acquiring RGB frame
>> Progress:98.8%
>> scanimage: min/max graylevel value = 11/255
>> Application transferred too few scanlines
>
> which indicates that the image acquisition loop ended prematurely for
> some reason.  While saned will happily continue to serve requests, how
> the backend and scanner react to this depends on the scanner's firmware
> and the backend's implementation.  It may very well be that the scanner
> expects more read requests and refuses to reply to anything else while
> the backend won't send any of those but instead tries to start a new
> scan in vain.
>
> Based on what you wrote so far, I think this is a bug in the third party
> brother backend you seem to be using.  The only people that can help you
> with that are the brother backend developers.  There is nothing the SANE
> developers can do about it.
>
> That said, are you sure *your* code is doing the right thing?  That is,
> does it read data until sane_read() returns SANE_STATUS_EOF?  Or is it
> just reading the number of pixels expected based on the results of a
> sane_get_parameters() before you call sane_start()?  The latter is the
> *wrong* way to read image data.
>
> Hope this helps,
> --
> Olaf Meeuwissen, LPIC-2            FSF Associate Member since 2004-01-27
>  GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13  F43E B8A4 A88A F84A 2DD9
>  Support Free Software                        https://my.fsf.org/donate
>  Join the Free Software Foundation              https://my.fsf.org/join



More information about the sane-devel mailing list