On Tue, Aug 21, 2012 at 2:44 PM, m. allan noah <kitno455 at gmail.com> wrote: > It is quite possible that there is some option in the driver which is > on by default, which requires high res or high depth scans. > Particularly automatic deskew or edge detection type things.
It was late at night and I was pretty much out to lunch on that hypothesis. My patch recognizes a DR-9050C by looking at the s->model_name. It then sets s->is_9050C. There might be a better way to do this (config file?) and probably a better name for this protocol. I spent some time wasted time trying to figure out the set resolution, position, etc block only to realize that it's the same as other DR scanners. I tried to cargo-cult the e5 blocks, but it's not working; I don't fully grok do_cmd(). Or maybe the e5 blocks are doing something do_cmd() isn't ready for. I had to hardcode the list of resolutions for the 9050C, because the weren't reported properly. With a patched driver, I can scan in colour, bw and grey scale at various resolutions. Duplex scanning works. I still need to test the -t, -l, -x, -y params. However, if the scanner goes into suspend mode, canon_dr no longer recognises it. The debug output talks about hitting it with a large stick. I have to activate the scanner from the front panel or power cycle it. The Canon binary driver manages to see it. What's more if I interupt a scan with ^C, I have to power cycle the scanner before doing another scan. The Canon binary driver also fails to subsequent scans.