sane-project-website/old-archive/1999-12/0187.html

148 wiersze
7.9 KiB
HTML

<!-- received="Tue Dec 28 12:24:24 1999 PST" -->
<!-- sent="Tue, 28 Dec 1999 12:28:31 -0800" -->
<!-- name="Adrian Perez Jorge" -->
<!-- email="adrianpj@easynews.com" -->
<!-- subject="Re: Volunteer for back end development - excellent info in this msg" -->
<!-- id="199912282028.MAA18037@mail11.bigmailbox.com" -->
<!-- inreplyto="Volunteer for back end development - excellent info in this msg" -->
<title>sane-devel: Re: Volunteer for back end development - excellent info in this msg</title>
<h1>Re: Volunteer for back end development - excellent info in this msg</h1>
<b>Adrian Perez Jorge</b> (<a href="mailto:adrianpj@easynews.com"><i>adrianpj@easynews.com</i></a>)<br>
<i>Tue, 28 Dec 1999 12:28:31 -0800</i>
<p>
<ul>
<li> <b>Messages sorted by:</b> <a href="date.html#187">[ date ]</a><a href="index.html#187">[ thread ]</a><a href="subject.html#187">[ subject ]</a><a href="author.html#187">[ author ]</a>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0188.html">David E. Nelson: "Re: Volunteer for back end development - excellent info in this msg"</a>
<li> <b>Previous message:</b> <a href="0186.html">Jochen Eisinger: "Re: Mustek ScanExpress 12000P"</a>
<li> <b>Maybe in reply to:</b> <a href="0079.html">David E. Nelson: "Volunteer for back end development - excellent info in this msg"</a>
<!-- nextthread="start" -->
<li> <b>Next in thread:</b> <a href="0188.html">David E. Nelson: "Re: Volunteer for back end development - excellent info in this msg"</a>
<li> <b>Reply:</b> <a href="0188.html">David E. Nelson: "Re: Volunteer for back end development - excellent info in this msg"</a>
<!-- reply="end" -->
</ul>
<!-- body="start" -->
Dear Mat,<br>
Dear David,<br>
<p>
Mathew sienko x7439 (<a href="mailto:msienko@galaxy.nsc.com">msienko@galaxy.nsc.com</a>):<br>
<i>&gt;Hi David,</i><br>
<i>&gt;</i><br>
<i>&gt;I'm glad to see that you are still interested. If you do plan on</i><br>
<i>&gt;experamenting,</i><br>
<i>&gt;then perhaps I should what I've been thinking about. I haven't actually</i><br>
<i>&gt;started working on this yet because we've been quite buisy lately, but</i><br>
<i>&gt;I hope to start soon.</i><br>
<i>&gt;</i><br>
<i>&gt;The merlin chips are all controlled through a register file and everything</i><br>
<i>&gt;is done by reading or writing these registers. The datasheet describes</i><br>
<i>&gt;these registers. The backend should then have two parts: functions to</i><br>
<i>&gt;read and write these registers, and then the SANE API implementation that</i><br>
<i>&gt;actually uses these functions to controll the scanner. This way, the</i><br>
<i>&gt;interface can change and all the SANE API's can still be used. (Future</i><br>
<i>&gt;versions of merlin may use a different interface, but this is still too</i><br>
<i>&gt;far away to tell.) My first goal is to be able to read and write one</i><br>
<i>&gt;register at a time. If I get any work done on this, I'll post it to</i><br>
<i>&gt;the sane mailing list.</i><br>
<p>
I would be very pleased if you, Mat, could tell me who are you trying<br>
to read/write `lm9830' registers. Initialy, I was confused and I<br>
thought HP4200C was using `lm9831'---because it has an USB interface---<br>
and I was trying to read/write &lt;reg address&gt;+&lt;value&gt; to the<br>
`/dev/usbscanner' file. Now, I know I was wrong. I can't believe my<br>
HP4200C scanner is really a parallel port scanner hacked with some USB<br>
interface... (but it's quick!)<br>
<p>
Well.. the main problem is: then how this interface works?<br>
<p>
I have been tracing (debugger) the Windowze driver (`hpad32.dll').<br>
I have the initial values of `lm9830' registers that this driver<br>
writes (from 08-5f), and I have seen the driver sending the '99 66 cc<br>
33' sequence (switching transparent mode).<br>
<p>
Now, I think write/read operations to lm930 registers doesn't use bulk<br>
transfers; the Windoze driver uses `control vendor requests' (note<br>
that I'm not an USB expert at all.), and I think (David, correct me)<br>
Linux usbscanner driver uses bulk transfers to communicate with the<br>
scanner.<br>
<p>
<i>&gt;I also have a question that I am hoping you will be able to answer. In</i><br>
<i>&gt;SANE, the back-ends can be built as shared libraries so that an application</i><br>
<i>&gt;can easily change back-ends. Would it be easy (or possible) to separate</i><br>
<i>&gt;the two functionalities I mentioned above into two separate library files?</i><br>
<i>&gt;Also, can an application load and unload these back-end libraries while</i><br>
<i>&gt;it is running? I think this would be cool because then an application</i><br>
<i>&gt;could launch that is not tied to a specific scanner and the user could</i><br>
<i>&gt;choose which driver to use and, for the merlin driver, choose the I/O</i><br>
<i>&gt;interface if necessary.</i><br>
<i>&gt;</i><br>
<i>&gt;Matt</i><br>
<p>
Well... as far as I have read in the SANE Standard Version (1.01), yes<br>
you can switch sane backends using dynamic linking (See `Attaching to a<br>
SANE backend', Section 3.1).<br>
<p>
I don't know if you mean, for example, that developing a sane backend<br>
for `lm9830', using an USB interface like the HP4200C, should also work<br>
with a `lm9830-based' scanner but with a parallel port interface.<br>
<p>
If the above is what you mean, I think the best/normal way to do this<br>
is to separate the device communication protocol implementing a kernel<br>
device driver, like the `scanner.o' module. This device driver should<br>
supply a `/dev/&lt;iface&gt;' file, and then the SANE backend would<br>
write/read to this file in an uniform way. This file should be<br>
supplied to the backend as an option. For example, using a parallel<br>
port interface, a module called `ppscanner.o' could support a<br>
`/dev/ppscanner' file, and then, a parameter in `lm9830.conf' for the<br>
`lm9830.so' SANE backend could point to this file. If we were using<br>
an USB inteface, this option should then point to `/dev/usbscanner'.<br>
<p>
What do you (all) think about this?<br>
<p>
<i>&gt;&gt;</i><br>
<i>&gt;&gt;</i><br>
<i>&gt;&gt; Hi Mathew,</i><br>
<i>&gt;&gt;</i><br>
<i>&gt;&gt; I really dropped the ball on this one. I had hoped to 'experiment' with</i><br>
<i>&gt;&gt; my 4200 using the pdf docs from NatSemi...just havn't had time to sit</i><br>
<i>&gt;&gt;down</i><br>
<i>&gt;&gt; with it. I've forward this to the sane-devel list since that should be</i><br>
<i>&gt;&gt; the best source for developers. I did ask Peter if he could recommend</i><br>
<i>&gt;&gt; anyone and noone came to his mind.</i><br>
<i>&gt;&gt;</i><br>
<i>&gt;&gt; Regards,</i><br>
<i>&gt;&gt; /\/elson</i><br>
<i>&gt;&gt;</i><br>
<p>
Hey! Fortunately, I could find you, people, in this mailing list! (I<br>
was subscribed only at &lt;<a href="mailto:linux-usb@suse.com">linux-usb@suse.com</a>&gt;)<br>
<p>
<p>
Cheers,<br>
<p>
<p>
<p>
Adrian Perez Jorge<br>
&lt;<a href="mailto:adrianpj@easynews.com">adrianpj@easynews.com</a>&gt;<br>
<p>
------------------------------------------------------------<br>
Free Web space and web based email @EASYNEWS.COM<br>
<p>
<pre>
--
Source code, list archive, and docs: <a href="http://www.mostang.com/sane/">http://www.mostang.com/sane/</a>
To unsubscribe: echo unsubscribe sane-devel | mail <a href="mailto:majordomo@mostang.com">majordomo@mostang.com</a>
</pre>
<!-- body="end" -->
<p>
<ul>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0188.html">David E. Nelson: "Re: Volunteer for back end development - excellent info in this msg"</a>
<li> <b>Previous message:</b> <a href="0186.html">Jochen Eisinger: "Re: Mustek ScanExpress 12000P"</a>
<li> <b>Maybe in reply to:</b> <a href="0079.html">David E. Nelson: "Volunteer for back end development - excellent info in this msg"</a>
<!-- nextthread="start" -->
<li> <b>Next in thread:</b> <a href="0188.html">David E. Nelson: "Re: Volunteer for back end development - excellent info in this msg"</a>
<li> <b>Reply:</b> <a href="0188.html">David E. Nelson: "Re: Volunteer for back end development - excellent info in this msg"</a>
<!-- reply="end" -->
</ul>