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

324 wiersze
18 KiB
HTML

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<!-- 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>