primax: D600 further investigations
Subject:
D600 further investigations
From:
Mike Rothon ####@####.####
Date:
10 Oct 2002 21:10:40 -0000
Message-Id: <200210102212.19917.miker@mazpro.co.uk>
I have made some more detailed investigations since my last post:
The problems that I was experiencing before that I thought were down to the
resolution are not that simple.
In the function get_scan_data (libprimax.c) the code enters a while loop
waiting for a 16-bit value to be read from the port which matches the
total_width -1.
Depending on what parameters are supplied to the scan, it is possible for this
code to lock up, never reading an appropriate value from the port.
When the code locks up, there seems to be garbage being read from the port.
The factors which affect the succesful outcome of the scan are:
1. Resolution. The lower the resolution, the better.
2. Scan width. The lower the scan width, the better.
3. Scan speed. The higher the scan speed setting the better.
i.e. scanning -d5x10 -s15 -r150 works fine but -d7x10 -s0 -r600 does not.
Given that the number of bytes read in a single line are dependant on the
width and resolution, this leads me to believe that there is a timing
problem.
*****************************
Assistance Required!!!!!!
*****************************
I need some help from someone who is familiar with the scanner protocols who
can tell me what the values being read during the get_scan_data routine are
doing. It seems to me that initially there is a count that indicates how many
bytes have been scanned into the FIFO, and then when the FIFO is full it is
read en-block.
It looks as though that either with a lot of data (=high resolution x wide
scan) the FIFO is overflowing and the byte count data is being corrupted.
I would like to see the documentation received from Primax regarding the
scanners - did it include anything on the D600?
Finally, how do I use the saned daemon? Do I need to edit a config file? There
doesn't seem to be any documentation on using the Xsane interface.
Bye,
Mike.