sane-project-website/old-archive/1999-08/0133.html

324 wiersze
18 KiB
HTML

<!-- received="Fri Aug 13 14:46:15 1999 PDT" -->
<!-- sent="Fri, 13 Aug 1999 23:19:38 +0200" -->
<!-- name="Oliver Rauch" -->
<!-- email="oliver.rauch@Wolfsburg.DE" -->
<!-- subject="[Fwd: Discussion about SANE and TWAIN...]" -->
<!-- id="" -->
<!-- inreplyto="" -->
<title>sane-devel: [Fwd: Discussion about SANE and TWAIN...]</title>
<h1>[Fwd: Discussion about SANE and TWAIN...]</h1>
<b>Oliver Rauch</b> (<a href="mailto:oliver.rauch@Wolfsburg.DE"><i>oliver.rauch@Wolfsburg.DE</i></a>)<br>
<i>Fri, 13 Aug 1999 23:19:38 +0200</i>
<p>
<ul>
<li> <b>Messages sorted by:</b> <a href="date.html#133">[ date ]</a><a href="index.html#133">[ thread ]</a><a href="subject.html#133">[ subject ]</a><a href="author.html#133">[ author ]</a>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0134.html">Oliver Rauch: "[Fwd: Re: Discussion about SANE and TWAIN...]"</a>
<li> <b>Previous message:</b> <a href="0132.html">Oliver Rauch: "Re: Starting a discussion about SANE and TWAIN..."</a>
<!-- nextthread="start" -->
<!-- reply="end" -->
</ul>
<!-- body="start" -->
<a href="mailto:252353N@knotes.kodak.com">252353N@knotes.kodak.com</a> wrote:<br>
<p>
<i>&gt; From: Mark McLaughlin</i><br>
<i>&gt;</i><br>
<i>&gt; Hi Oliver...</i><br>
<i>&gt;</i><br>
<i>&gt; Here are my responses to your last message...</i><br>
<i>&gt;</i><br>
<i>&gt; &gt;&gt;&gt; [regarding a generic TWAIN using SANE Source]</i><br>
<i>&gt; &gt;&gt;&gt;</i><br>
<i>&gt; &gt;&gt;&gt; This sounds very good because TWAIN on UNIX will be able to</i><br>
<i>&gt; &gt;&gt;&gt; support all scanners / image acquiring devices that are supported by</i><br>
<i>&gt; &gt;&gt;&gt; SANE. SANE will benefit from this because the scanner</i><br>
<i>&gt; &gt;&gt;&gt; manufacturers will give better support to the SANE developers</i><br>
<i>&gt; &gt;&gt;&gt; (e.g. documentation about their protocols, hardware for doing some</i><br>
<i>&gt; &gt;&gt;&gt; tests).</i><br>
<i>&gt; &gt;&gt;&gt; If TWAIN does support the generic source that talks to SANE drivers</i><br>
<i>&gt; &gt;&gt;&gt; on Windows/Macintosh, we will be able to use a scanner that is</i><br>
<i>&gt; &gt;&gt;&gt; connected on a UNIX system and the TWAIN-GUI runs on a</i><br>
<i>&gt; &gt;&gt;&gt; Windows/Macintosh platform. That would be a benefit for a lot</i><br>
<i>&gt; &gt;&gt;&gt; of users because they can share one scanner for</i><br>
<i>&gt; &gt;&gt;&gt; UNIX/Windows/Mac.</i><br>
<i>&gt;</i><br>
<i>&gt; I agree, there is definately value in being able</i><br>
<i>&gt; to use remote scanning. And as long as the TWAIN</i><br>
<i>&gt; Source is running on the local machine in this</i><br>
<i>&gt; model, there is no added burden from the existence</i><br>
<i>&gt; of the TWAIN GUI. TWAIN would pick up a nice new</i><br>
<i>&gt; feature merely by using SANE, with no changes to</i><br>
<i>&gt; either interface...</i><br>
<i>&gt;</i><br>
<i>&gt; &gt;&gt;&gt; [regarding a SANE driver using TWAIN]</i><br>
<i>&gt; &gt;&gt;&gt;</i><br>
<i>&gt; &gt;&gt;&gt; It would be nice if this would work one day.</i><br>
<i>&gt; &gt;&gt;&gt;</i><br>
<i>&gt; &gt;&gt;&gt; If I understand it right there are "generic" GUIs for TWAIN</i><br>
<i>&gt; &gt;&gt;&gt; that are not positioned in the source driver level - right?</i><br>
<i>&gt; &gt;&gt;&gt; Are these GUIs positioned in the Application layer or in the</i><br>
<i>&gt; &gt;&gt;&gt; source managaer layer?</i><br>
<i>&gt; &gt;&gt;&gt;</i><br>
<i>&gt; &gt;&gt;&gt; Would it be necessary to write an own GUI for the generic</i><br>
<i>&gt; &gt;&gt;&gt; SANE source driver?</i><br>
<i>&gt;</i><br>
<i>&gt; Actually, it could be done today. The problem is</i><br>
<i>&gt; that many Source's do not offer the programmatic</i><br>
<i>&gt; control to make it as clean as one could hope.</i><br>
<i>&gt; In part this is because of TWAIN's success. We</i><br>
<i>&gt; are fully compatible from TWAIN 1.0 to TWAIN 1.8</i><br>
<i>&gt; on the Source and application sides. This means</i><br>
<i>&gt; that Sources written years ago are still quite</i><br>
<i>&gt; viable today. Still, there are a growing number</i><br>
<i>&gt; of Sources being written now that would probably</i><br>
<i>&gt; work quite well as backends to SANE, so it may be</i><br>
<i>&gt; worth considering a generic SANE using TWAIN driver...</i><br>
<i>&gt;</i><br>
<i>&gt; As for the GUIs. TWAIN offers extremely minimal</i><br>
<i>&gt; advice on the design of the GUI. Which is why they</i><br>
<i>&gt; all look so different. There is no standard design</i><br>
<i>&gt; for a TWAIN GUI, and the only ones that exist</i><br>
<i>&gt; independent of a Source are in the applications, and</i><br>
<i>&gt; there are no standards driving them, either...</i><br>
<i>&gt;</i><br>
<i>&gt; As for the TWAIN-using-SANE and SANE-using-TWAIN</i><br>
<i>&gt; generic drivers. In the first case there would be</i><br>
<i>&gt; a GUI provided in the TWAIN layer. This GUI would</i><br>
<i>&gt; be common to all devices for that Source. There</i><br>
<i>&gt; would be no device specific GUI from the SANE</i><br>
<i>&gt; layer (unless there is a mechanism for doing this</i><br>
<i>&gt; that I am unaware of). In the SANE-using-TWAIN</i><br>
<i>&gt; case the TWAIN GUI would be supressed (unless there</i><br>
<i>&gt; was a model allowing it to be raised which was</i><br>
<i>&gt; permitted and made sense). However, even though</i><br>
<i>&gt; the GUI would be supressed, TWAIN is driven by some</i><br>
<i>&gt; kind of windowing-system messaging loop. The generic</i><br>
<i>&gt; SANE driver would therefore require the presence of</i><br>
<i>&gt; a windowing system in order to run. This is not a</i><br>
<i>&gt; problem, of course, for running SANE on WIN32 or</i><br>
<i>&gt; Macintosh platforms, since the windowing system is</i><br>
<i>&gt; integral to the setup...</i><br>
<i>&gt;</i><br>
<i>&gt; &gt;&gt;&gt; [regarding SANE as a platform independent HAL communication layer]</i><br>
<i>&gt; &gt;&gt;&gt;</i><br>
<i>&gt; &gt;&gt;&gt; Normally there are no OS dependend #ifdef's in the backend sources.</i><br>
<i>&gt; &gt;&gt;&gt; There is a common interface for scsi communication (sanei_scsi) used</i><br>
<i>&gt; &gt;&gt;&gt; by all backends. In sanei-scsi there are the OS dependend #ifdef's</i><br>
<i>&gt; &gt;&gt;&gt; that make sure that the backend authors do not have to care about</i><br>
<i>&gt; &gt;&gt;&gt; the OS.</i><br>
<i>&gt; &gt;&gt;&gt; The only machine dependant thing the backends have to care about</i><br>
<i>&gt; &gt;&gt;&gt; is the endianess of the machine on which the backend is running.</i><br>
<i>&gt; &gt;&gt;&gt;</i><br>
<i>&gt; &gt;&gt;&gt; For parallel scanners there is no common interface because there are</i><br>
<i>&gt; &gt;&gt;&gt; only a few parallel scanners supported due to missing documentation for</i><br>
<i>&gt; &gt;&gt;&gt; parallel port scanners.</i><br>
<i>&gt; &gt;&gt;&gt;</i><br>
<i>&gt; &gt;&gt;&gt; The support for USB scanners is not so simple because there are no</i><br>
<i>&gt; &gt;&gt;&gt; generic USB drivers for most UNIX platforms.</i><br>
<i>&gt;</i><br>
<i>&gt; Adaptec's Advanced SCSI Programming Interface (ASPI) is the</i><br>
<i>&gt; de facto standard for SCSI communication on Windows platforms.</i><br>
<i>&gt; Microsoft has presented their Still Image Technology (STI)</i><br>
<i>&gt; as a replacement for ASPI. So there are no lack of standards</i><br>
<i>&gt; there. :) I would expect Macintosh to have a stanardized</i><br>
<i>&gt; mechanism for SCSI, so modifying the SANE backend to deal with</i><br>
<i>&gt; each of these alternatives should not be overly burdensome.</i><br>
<i>&gt;</i><br>
<i>&gt; There is currently no standard for deal with parallel driven</i><br>
<i>&gt; scanner drivers. So tackling this area would most likely</i><br>
<i>&gt; continue to be a problem.</i><br>
<i>&gt;</i><br>
<i>&gt; As for USB, it is well defined on WIN32 and Macintosh. It</i><br>
<i>&gt; would be nice to see some effort towards standardizing access</i><br>
<i>&gt; to it on UNIX, since it is the physical connection for small</i><br>
<i>&gt; scanners and digital cameras for the foreseeable future. The</i><br>
<i>&gt; fact that WIN32 and Macintosh have standardized ways of</i><br>
<i>&gt; accessing USB means that a SANE driver on those platforms</i><br>
<i>&gt; could leverage off that advantage today.</i><br>
<i>&gt;</i><br>
<i>&gt; &gt;&gt;&gt; I don`t know anything about scsi-communtication on Windows</i><br>
<i>&gt; &gt;&gt;&gt; and Macintosh platforms, but I don`t see any problems to add</i><br>
<i>&gt; &gt;&gt;&gt; support for them to sanei-scsi.</i><br>
<i>&gt; &gt;&gt;&gt; SANE already works (at least a bit) with OS/2.</i><br>
<i>&gt; &gt;&gt;&gt;</i><br>
<i>&gt; &gt;&gt;&gt; May be we have to do some minor changes in some backends</i><br>
<i>&gt; &gt;&gt;&gt; to make them work on Windows/Macintosh platforms, but that</i><br>
<i>&gt; &gt;&gt;&gt; shall not make big problems.</i><br>
<i>&gt;</i><br>
<i>&gt; Unfortunately my technical experience with SANE is very</i><br>
<i>&gt; limited at the moment. I have perused the website and</i><br>
<i>&gt; gathered some information on it. I would be very</i><br>
<i>&gt; interested in any recommended sample code that I could</i><br>
<i>&gt; see, as that would significantly increase my understanding</i><br>
<i>&gt; of SANE, as well as give me a better idea of how far away</i><br>
<i>&gt; we are at an engineering level from achieving some of the</i><br>
<i>&gt; ideas we've discussed these last two days...</i><br>
<i>&gt;</i><br>
<i>&gt; Many thanks for your reply Oliver. And let me take a</i><br>
<i>&gt; moment to say thanks again to Andy and Petter for their</i><br>
<i>&gt; comments. I was not sure how this interaction between</i><br>
<i>&gt; our groups was going to develop, and while there is a</i><br>
<i>&gt; lot to learn and do, I appreciate the time you are all</i><br>
<i>&gt; taking to investigate this opportunity...</i><br>
<i>&gt;</i><br>
<i>&gt; If you get a chance, could you describe to me please the</i><br>
<i>&gt; layout of the SANE group? Do its members ever meet? Is</i><br>
<i>&gt; it an official entity (in the legal sense) in any way</i><br>
<i>&gt; (that is, with elected officers, keepers of documents,</i><br>
<i>&gt; code, etc)?</i><br>
<i>&gt;</i><br>
<i>&gt; The question is only to sate my curiousity (I've this</i><br>
<i>&gt; feeling that if these discussions proceed to their</i><br>
<i>&gt; potential outcome that I will be writing a SANE driver</i><br>
<i>&gt; eventually)... :)</i><br>
<i>&gt;</i><br>
<i>&gt; The TWAIN Working Group is a consortium of companies. We</i><br>
<i>&gt; are a not-for-profit group. We meet quarterly and have</i><br>
<i>&gt; weekly conference calls. There are currently five</i><br>
<i>&gt; sub-committees: marketing, macintosh, technical, toolkit</i><br>
<i>&gt; and testing, and they each have their own tasks and</i><br>
<i>&gt; weekly conference calls.</i><br>
<i>&gt;</i><br>
<i>&gt; Mark McLaughlin</i><br>
<i>&gt; Eastman Kodak Company</i><br>
<i>&gt; 716 726 1352</i><br>
<i>&gt; <a href="mailto:mlm@kodak.com">mlm@kodak.com</a></i><br>
<i>&gt;</i><br>
<i>&gt; Oliver Rauch &lt;<a href="mailto:oliver.rauch@wolfsburg.de">oliver.rauch@wolfsburg.de</a>&gt; on 08/11/99 06:08:32 PM</i><br>
<i>&gt;</i><br>
<i>&gt; To: Mark McLaughlin/252353/EKC</i><br>
<i>&gt; cc: SANE-MAILLING-LIST &lt;<a href="mailto:sane-devel@mostang.com">sane-devel@mostang.com</a>&gt;</i><br>
<i>&gt; Subject: Re: Discussion about SANE and TWAIN...</i><br>
<i>&gt;</i><br>
<i>&gt; Hello Mark,</i><br>
<i>&gt;</i><br>
<i>&gt; thanks for your answer.</i><br>
<i>&gt;</i><br>
<i>&gt; <a href="mailto:252353N@knotes.kodak.com">252353N@knotes.kodak.com</a> wrote:</i><br>
<i>&gt;</i><br>
<i>&gt; &gt; From: Mark McLaughlin</i><br>
<i>&gt; &gt;</i><br>
<i>&gt; &gt; Hi Oliver...</i><br>
<i>&gt; &gt;</i><br>
<i>&gt; &gt; Many thanks for your reply.</i><br>
<i>&gt; &gt;</i><br>
<i>&gt; &gt; I'm glad that you also see a benefit from this interaction between</i><br>
<i>&gt; &gt; SANE and TWAIN. The fact that TWAIN's user base is expressing</i><br>
<i>&gt; &gt; an interest in UNIX is a little daunting in some ways, since not many</i><br>
<i>&gt; &gt; of the current TWAIN members are doing anything with UNIX.</i><br>
<i>&gt; &gt; So one of the opportunities we see from working with SANE is a</i><br>
<i>&gt; &gt; chance to draw on your experience and expertise.</i><br>
<i>&gt; &gt;</i><br>
<i>&gt; &gt; As stated in my first message, I believe the principle benefit from</i><br>
<i>&gt; &gt; SANE and TWAIN working together is a chance to help app</i><br>
<i>&gt; &gt; writers cross from one OS to the other with less effort than it takes</i><br>
<i>&gt; &gt; today. So, TWAIN runs on UNIX, SANE runs on Windows, and</i><br>
<i>&gt; &gt; application writers have one less component to worry about</i><br>
<i>&gt; &gt; when trying to build their source code on an alternate platform.</i><br>
<i>&gt; &gt;</i><br>
<i>&gt; &gt; Bearing that in mind, I propose that on UNIX TWAIN runs in</i><br>
<i>&gt; &gt; communication with a generic Source that talks to SANE drivers.</i><br>
<i>&gt; &gt; We would have to make some minor changes to our Source</i><br>
<i>&gt; &gt; Manager to allow this to work properly, but such a TWAIN Source</i><br>
<i>&gt; &gt; would be able to communicate with any SANE supported image</i><br>
<i>&gt; &gt; capture device.</i><br>
<i>&gt;</i><br>
<i>&gt; This sounds very good because TWAIN on UNIX will be able to</i><br>
<i>&gt; support all scanners / image acquiring devices that are supported by</i><br>
<i>&gt; SANE. SANE will benefit from this because the scanner</i><br>
<i>&gt; manufacturers will give better support to the SANE developers</i><br>
<i>&gt; (e.g. documentation about their protocols, hardware for doing some</i><br>
<i>&gt; tests).</i><br>
<i>&gt; If TWAIN does support the generic source that talks to SANE drivers</i><br>
<i>&gt; on Windows/Macinthos, we will be able to use a scanner that is</i><br>
<i>&gt; connected on a UNIX system and the TAWIN-GUI runs on a</i><br>
<i>&gt; Windows/Macintosh platform. That would be a benefit for a lot</i><br>
<i>&gt; of users because they can share one scanner for</i><br>
<i>&gt; UNIX/Windows/Mac.</i><br>
<i>&gt;</i><br>
<i>&gt; &gt; At this time I don't believe there is much to be gained from having</i><br>
<i>&gt; &gt; a generic SANE driver that talks to TWAIN. Technically it is very</i><br>
<i>&gt; &gt; doable, but TWAIN Sources have a history of relying heavily or</i><br>
<i>&gt; &gt; even exclusively on their internal GUIs, which doesn't fit well into</i><br>
<i>&gt; &gt; SANE's programmatic design. We are working to change this</i><br>
<i>&gt; &gt; behavior (and have been since TWAIN 1.7 -- 1997), so in the</i><br>
<i>&gt; &gt; future it might be advantageous to do this.</i><br>
<i>&gt;</i><br>
<i>&gt; It would be nice if this would work one day.</i><br>
<i>&gt;</i><br>
<i>&gt; If I understand it right there are "generic" GUIs for TWAIN</i><br>
<i>&gt; that are not positioned in the source driver level - right?</i><br>
<i>&gt; Are these GUIs positioned in the Application layer or in the</i><br>
<i>&gt; source managaer layer?</i><br>
<i>&gt;</i><br>
<i>&gt; Would it be necessary to write an own GUI for the generic</i><br>
<i>&gt; SANE source driver?</i><br>
<i>&gt;</i><br>
<i>&gt; &gt; One question I have regarding SANE has to do with writing drivers</i><br>
<i>&gt; &gt; for mulitple UNIX platforms. Writing a 'single' device driver for</i><br>
<i>&gt; &gt; Solaris and AIX and Linux, etc must be appealing to some device</i><br>
<i>&gt; &gt; manufacterers (nobody wants to have write one driver per OS for</i><br>
<i>&gt; &gt; their device). Has SANE investigated an abstraction between</i><br>
<i>&gt; &gt; it's interface and the actual communication with the OS? I'm kind of</i><br>
<i>&gt; &gt; looking for something like ASPI (though wire independent). The</i><br>
<i>&gt; &gt; idea being that me, as a driver writer, would be able to write a</i><br>
<i>&gt; &gt; SANE driver that with a minimum of #ifdef's would be buildable on</i><br>
<i>&gt; &gt; UNIX or Macintosh or Windows platforms.</i><br>
<i>&gt;</i><br>
<i>&gt; Normally there are no OS dependend #ifdef's in the backend sources.</i><br>
<i>&gt; There is a common interface for scsi communication (sanei_scsi) used</i><br>
<i>&gt; by all backends. In sanei-scsi there are the OS dependend #ifdef's</i><br>
<i>&gt; that make sure that the backend authors do not have to care about</i><br>
<i>&gt; the OS.</i><br>
<i>&gt; The only machine dependant thing the backends have to care about</i><br>
<i>&gt; is the endianess of the machine on which the backend is running.</i><br>
<i>&gt;</i><br>
<i>&gt; For parallel scanners there is no common interface because there are</i><br>
<i>&gt; only a few parallel scanners supported due to missing documentation for</i><br>
<i>&gt; parallel port scanners.</i><br>
<i>&gt;</i><br>
<i>&gt; The support for USB scanners is not so simple because there are no</i><br>
<i>&gt; generic USB drivers for most UNIX platforms.</i><br>
<i>&gt;</i><br>
<i>&gt; &gt; If such a mechanism could be created, I would have a very good</i><br>
<i>&gt; &gt; reason for running SANE on Windows and Macintosh platforms...</i><br>
<i>&gt;</i><br>
<i>&gt; I don`t know anything about scsi-communtication on Windows</i><br>
<i>&gt; and Macintosh platforms, but I don`t see any problems to add</i><br>
<i>&gt; support for them to sanei-scsi.</i><br>
<i>&gt; SANE already works (at least a bit) with OS/2.</i><br>
<i>&gt;</i><br>
<i>&gt; May be we have to do some minor changes in some backends</i><br>
<i>&gt; to make them work on Windows/Macintosh platforms, but that</i><br>
<i>&gt; shall not make big problems.</i><br>
<i>&gt;</i><br>
<i>&gt; Bye</i><br>
<i>&gt; Oliver</i><br>
<i>&gt;</i><br>
<i>&gt; --</i><br>
<i>&gt; EMAIL: <a href="mailto:Oliver.Rauch@Wolfsburg.DE">Oliver.Rauch@Wolfsburg.DE</a></i><br>
<i>&gt; WWW: <a href="http://www.wolfsburg.de/~rauch">http://www.wolfsburg.de/~rauch</a></i><br>
<p>
<pre>
--
EMAIL: <a href="mailto:Oliver.Rauch@Wolfsburg.DE">Oliver.Rauch@Wolfsburg.DE</a>
WWW: <a href="http://www.wolfsburg.de/~rauch">http://www.wolfsburg.de/~rauch</a>
<p>
<p>
<p>
<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="0134.html">Oliver Rauch: "[Fwd: Re: Discussion about SANE and TWAIN...]"</a>
<li> <b>Previous message:</b> <a href="0132.html">Oliver Rauch: "Re: Starting a discussion about SANE and TWAIN..."</a>
<!-- nextthread="start" -->
<!-- reply="end" -->
</ul>