2000-11-18 Jochen Eisinger <jochen.eisinger@gmx.net>

* doc/sane-mustek_pp.man backend/mustek_pp.*: updated mustek_pp
	  backend to version 0.9-devel
DEVEL_2_0_BRANCH-1
Jochen Eisinger 2000-11-18 16:42:27 +00:00
rodzic 7c36f6b7a0
commit d359229e75
5 zmienionych plików z 1924 dodań i 1613 usunięć

Plik diff jest za duży Load Diff

Wyświetl plik

@ -32,7 +32,7 @@ option niceload
# DEVICES #
# specify the port your scanner is connected to. Possible are 0x378 (lp1)
# 0x278 (lp2) and 0x3c8 (lp0)
# 0x278 (lp2) and 0x3bc (lp0)
port 0x378
# the following options are local to this scanner
@ -61,9 +61,22 @@ port 0x378
# vendor Mustek
# option wait-lamp 15 # some models only need 5 secs...
# Mustek ScanMagic 1200 ED Plus (this scanner isn't yet supported!!!)
# Mustek ScanMagic/Express 1200 ED Plus (this scanner isn't yet supported!!!)
# name SM-1200EDP
# name SE-1200EDP
# vendor Mustek
# this scanner has an optical resolution of 600 dpi
# option use600
# this scanner *must* use option niceload
# option niceload
# Fidelity Imaging Solutions Inc. Gallery 4800
# name Gallery-4800
# vendor Fidelity-Imaging-Solutions
# Viviscan Compact II
# name Compact-II
# vendor Viviscan
# Medion MD9848 (aka Aldi-Scanner)
name MD9848
@ -73,9 +86,12 @@ port 0x378
# scan maximal 16 lines for one sane_read() call
option strip-height 16
# we just need 16 lines * 3 (rgb) colors * 300 dpi * 8.5 pixel bytes
# we just need 16 lines * 3 (rgb) colors * 300 dpi * 8.5 inch bytes
option buffer 122400
# Enable this option, if you want user authentification *and* if it's
# enabled at compile time
#option auth
# use this option to define the maximal black value for lineart scans
#option bw 127

Wyświetl plik

@ -10,7 +10,7 @@
;
:backend "mustek_pp" ; name of backend
:version "6" ; version of backend
:version "9" ; version of backend
:status :alpha ; :alpha, :beta, :stable, :new
:manpage "sane-mustek_pp" ; name of manpage (if it exists)
; backend's web page
@ -36,15 +36,15 @@
:model "ScanExpress 1200 ED Plus"
:interface "Parport (EPP)"
:comment "doesn't work yet"
:comment "works partly"
:model "ScanMagic 1200 ED Plus"
:interface "Parport (EPP)"
:comment "doesn't work yet"
:comment "works partly"
:model "ScanExpress 12000 P"
:interface "Parport (EPP)"
:comment "doesn't work"
:comment "doesn't work yet"
:model "600 III EP Plus"
:interface "Parport (SPP,EPP)"
@ -61,8 +61,28 @@
:interface "Parport (SPP)"
:comment "aka. ``Aldi Scanner'' - works"
:model "MD985x"
:interface "Parport (EPP)"
:comment "aka. ``Aldi Scanner (new version)'' - CIS scanner doesn't work"
:mfg "Tevion"
:url "http://www.medion.de/"
:model "MD985x"
:interface "Parport (EPP)"
:comment "Tevion is Medion!"
:mfg "LifeTec"
:model "LT9891"
:interface "Parport (EPP)"
:comment "CIS scanner - doesn't work"
:mfg "Fidelity Imaging Solutions Inc."
:model "Gallery 4800"
:interface "Parport (EPP)"
:comment "works"
; :comment and :url specifiers are optional after :mfg, :model, :desc,
; and at the top-level.

Wyświetl plik

@ -60,7 +60,7 @@
/* Here are the usernames and passwords stored
* the file name is relative to SANE_CONFIG_DIR */
#define PASSWD_FILE ".auth"
#define SEPARATOR ':'
@ -113,72 +113,113 @@ Option_Value;
typedef struct CCD_info
{
/* CCD mode (color/grayscale/lineart) */
int mode;
/* inversion (true/false) */
int invert;
/* how many positions to skip until scanable area starts */
int skipcount;
/* how many positions to skip until scan area starts */
int skipimagebytes;
int skipimagebytes;
/* total skip, adjusted to resolution */
int adjustskip;
/* current resolution */
int res;
/* current hardware resolution */
int hwres;
/* how many positions to scan for one pixel */
int res_step;
/* how many lines to scan for one scanline */
int line_step;
/* current CCD channel (red/green or gray/blue) */
int channel;
}
CCD_Info;
typedef struct Mustek_PP_Descriptor
{
/* SANE device */
SANE_Device sane;
/* port no (0x378,0x278,0x3bc) */
SANE_String port;
/* maximal resolution (300/600) */
SANE_Int max_res;
/* max horiz */
SANE_Int max_h_size;
/* max vert */
SANE_Int max_v_size;
/* msecs to wait for bank change */
unsigned int wait_bank;
/* lines to scan in one read */
SANE_Int strip_height;
/* bytesize of scan buffer */
long int buf_size;
/* ASIC id (0xa8 0xa5, 0xa2) */
u_char asic;
/* CCD type (0,1,4,5) */
u_char ccd;
/* devices requires authentification (yes/no) */
int requires_auth;
/* color index to divide black from white (0-255) */
int bw;
/* seconds to wait for the lamp */
int wait_lamp;
/* use 600 dpi code (yes/no) */
int use600;
}
Mustek_PP_Descriptor;
typedef struct Mustek_PP_Device
{
/* next device */
struct Mustek_PP_Device *next;
/* device descriptor */
Mustek_PP_Descriptor *desc;
/* fd for sanei_pa4s2 */
int fd;
/* CCD status */
CCD_Info CCD;
/* used during calibration & return_home */
CCD_Info Saved_CCD;
/* options and values */
SANE_Option_Descriptor opt[NUM_OPTIONS];
Option_Value val[NUM_OPTIONS];
/* gamma tables (all, red, green, blue) */
SANE_Int gamma_table[4][256];
/* scanning, idle, cancelled */
int state;
/* scan area */
int TopX;
int TopY;
int BottomX;
int BottomY;
/* ASIC & CCD (see mustek_pp_descritpor) */
int asic_id;
int ccd_type;
/* when did we turn the lamp on? */
time_t lamp_on;
/* image control for ASIC 0xA5 */
int image_control;
/* bank count (for all ASICs) */
int bank_count;
/* motor state for ASIC 0xA8 */
int motor_phase;
int motor_step;
/* those are used to count the hardware line the scanner is at, the
line the current bank is at and the lines we've scanned */
int line;
int line_diff;
int ccd_line;
@ -187,31 +228,50 @@ typedef struct Mustek_PP_Device
int redline;
int blueline;
/* result from calibration */
int blackpos;
/* line distances during scan */
int rdiff, gdiff, bdiff;
/* calibration buffers (high cut) */
SANE_Byte *calib_r;
SANE_Byte *calib_g;
SANE_Byte *calib_b;
/* calibration values (low cut) */
SANE_Byte ref_black, ref_red, ref_green, ref_blue;
/* line distance buffers */
SANE_Byte *green;
SANE_Byte **red;
SANE_Byte **blue;
/* line distances */
int blue_offs;
int green_offs;
/* scan buffer */
SANE_Byte *buf;
long int bufsize, buflen;
/* current parameters */
SANE_Parameters params;
SANE_Range dpi_range;
SANE_Range x_range;
SANE_Range y_range;
/* these are additional parameters for 600 dpi scanners */
SANE_Byte motor_ctrl;
SANE_Bool first_time;
SANE_Byte unknown_value;
SANE_Byte expose_time;
SANE_Byte voltages[3];
SANE_Bool send_voltages;
}
Mustek_PP_Device;

Wyświetl plik

@ -1,4 +1,4 @@
.TH sane-mustek_pp 5 "22 June 2000"
.TH sane-mustek_pp 5 "30 September 2000"
.IX sane-mustek_pp
.SH NAME
sane-mustek_pp - SANE backend for Mustek parallel port flatbed scanners
@ -10,49 +10,63 @@ provides access to Mustek parallel port flatbed scanners. The
following scanners might work with this backend:
.PP
.RS
Model: ASIC ID: CCD Type: works:
Model: ASIC ID: CCD Type: works:
.br
---------------- --------- ---------- -------
-------------------- --------- ---------- -------
.br
SE 6000 P 1013 00 yes
SE 6000 P 1013 00 yes
.br
SM 4800 P 1013 04 yes
SM 4800 P 1013/1015 04/01 yes
.br
SE 1200 ED Plus 1015 01 no
SE 1200 ED Plus 1015 01 partly
.br
SM 1200 ED Plus 1015 01 no
SM 1200 ED Plus 1015 01 partly
.br
SE 12000 P 1505 05 no
SE 12000 P 1505 05 no
.br
SE 600 CP 1015 00 no
SE 600 CP 1015 00 no
.br
SM 600 CP 1015 00 no
SM 600 CP 1015 00 no
.br
600 III EP Plus 1013/1015 00/01 yes
600 III EP Plus 1013/1015 00/01 yes
.br
SE 600 SEP 1013 ?? yes
SE 600 SEP 1013 ?? yes
.br
600 II EP ???? ?? no
600 II EP ???? ?? no
.br
MD9848 1015 00 yes
MD9848 1015 00 yes
.br
Gallery 4800 ???? ?? yes
.br
Viviscan Compact II 1013 00 yes
.br
MD985x 1015 01/05 no
.br
LT9891 1015 01 no
.RE
.PP
Please note that this backend is still under construction. I don't know
which scanners work or which will work in future releases.
.PP
There are two possible reasons a Mustek scanner doesn't work... a) the protcol is still unknown (SE 12000 P) or b) it's a CIS scanner (all the others). See
.B CIS Scanners
for an explaination why.
.PP
Some scanners work faster when
.B EPP/ECP
is enabled in the BIOS.
.PP
Note that the backend needs to run as root. To allow user access to the scanner
run the backend through the network interface. Note also that the backend
run the backend through the network interface (See saned(1) and sane\-net(5)). Note also that the backend
.I does not
support
.I parport sharing ,
i.e. if you try printing while scanning, your computer may crash. This backend
also conflicts with the
.I sane\-musteka4s2
backend. You can only enable one of them in your dll.conf.
backend. You can only enable one of them in your dll.conf. However, you have
to enable the backend explicitly in your dll.conf, just remove the hash mark
in the line "mustek_pp".
.SH "DEVICE NAMES"
This backend expects device names of the form:
@ -68,10 +82,12 @@ is the base address of the port your scanner is attached to. Known ports are
(lp1)
.B 0x278
(lp2) and
.B 0x3C8
.B 0x3BC
(lp0). Note that if you are using a Kernel 2.2.x or better and you have only one
parallel port this port is named lp0 regardless of the base address. However,
this backend requires the base address of your port.
this backend requires the base address of your port. If you are not sure which
port your scanner is connected to, have a look at your /etc/conf.modules.
You can rename any device using the
.PP
.RS
@ -95,13 +111,15 @@ file is a list of options and device names that correspond to Mustek
scanners. Empty lines and lines starting with a hash mark (#) are
ignored.
.PP
The seven options supported are
The nine options supported are
.BR io\-mode ,
.BR wait\-bank ,
.BR strip\-height ,
.BR niceload ,
.BR auth ,
.BR wait-lamp ,
.BR bw ,
.BR use600 ,
and
.BR buffer .
@ -140,7 +158,7 @@ Option
.B auth
turns on user authentification for this scanner. Use this if you want access
control and if you have enabled this at compile time. This option must come
after a port option.
after a port option. At the moment, this option isn't really supported.
Option
.B wait-lamp
@ -151,6 +169,19 @@ However the backend will wait at least 2 secs before turning the lamp off
again. If this option is given after a port option it affects only this
device.
Option
.B bw
defines the maximal color value that is considered black in lineart scans.
The default value is 127. Possible values are between 0 and 255. If this
option is given after a port option it affects only this device.
Option
.B use600
enables the 600 dpi handling code. It's not possible to detect wether a scanner
has an optical resolution of 300x600 dpi or 600x1200 dpi. The default is to
use the 300x600 dpi code. Use this option only if your scanner has an optical
resolution of 600x1200 dpi. This is a local only option.
Option
.B buffer
allows you to change the size of the scan buffer. The size must be specified in
@ -241,7 +272,7 @@ option niceload
.br
# Possible are 0x378 (lp1) 0x278 (lp2) and
.br
# 0x3c8 (lp0)
# 0x3bc (lp0)
.br
port 0x378
.br
@ -300,8 +331,30 @@ port 0x378
#option wait-lamp 15
.br
.br
# Use this option to define the maximal
.br
# black value in lineart scans
.br
#option bw 127
.br
.br
# Use this option for 600 dpi scanners
.br
# for example ScanExpress 1200 ED Plus
.br
#option use600
.br
.RE
.SH CIS Scanners
Some Mustek Scanners use so called contact image sensors instead of CCDs (cold cathode devices). This scanners have a totally different protcol: although the seem to work they are far from being supported.
.PP
Check out the homepage of Eddy De Greef for some patches for CIS...
.SH FILES
.TP
.I @CONFIGDIR@/mustek_pp.conf
@ -309,12 +362,13 @@ The backend configuration file (see also description of
.B SANE_CONFIG_DIR
below).
.TP
.I @LIBDIR@/libsane-mustek_pp.a
.I @LIBDIR@/libsane\-mustek_pp.a
The static library implementing this backend.
.TP
.I @LIBDIR@/libsane-mustek_pp.so
.I @LIBDIR@/libsane\-mustek_pp.so
The shared library implementing this backend (present on systems that
support dynamic loading).
.SH ENVIRONMENT
.TP
.B SANE_CONFIG_DIR
@ -358,10 +412,42 @@ level debug output
6 special debug information
.RE
.PP
.TP
.B SANE_DEBUG_SANEI_PA4S2
This variable sets the debug level for the SANE interface for the Mustek
chipset A4S2. Note that enabling this will spam your terminal with some
million lines of debug output.
.PP
.RS
level debug output
.br
------- -------------------------------
.br
0 nothing
.br
1 errors
.br
2 warnings
.br
3 things nice to know
.br
4 code flow
.br
5 detailed code flow
.br
6 everything
.RE
.PP
.PP
.SH "SEE ALSO"
sane\-musteka4s2(5), sane\-mustek(5)
sane\-musteka4s2(5), sane\-mustek(5), sane\-net(5), saned(1)
.TP
Patches for CIS scanner
.I http://home.tiscalinet.be/EddyDeGreef/
.TP
For latest bug fixes and information see
.I http://home.germany.net/freestyle/sane/
@ -369,10 +455,6 @@ For latest bug fixes and information see
.SH AUTHOR
Jochen Eisinger <jochen.eisinger@gmx.net>
.SH ACKNOWLEDGEMENTS
Jeff DeFouw for his musteka4s2 backend
.br
Henning Meier-Geinitz for his help
.SH BUGS
Too many... please send bug reports to
.I sane\-devel@mostang.com
@ -382,6 +464,31 @@ Too many... please send bug reports to
.br
* 1505 support isn't even present
.br
* 1015 only works for CCD type 0
* 1015 only works for CCD type 00 & 01 (01 only bw/grayscale)
.RE
.SH BUG REPORTS
If something doesn't work, please contact me. But I need some information about
your scanner to be able to help you...
.TP
.I SANE version
run "scanimage -V" to determine this
.TP
.I the backend version and your scanner hardware
run "SANE_DEBUG_MUSTEK_PP=128 scanimage -L" as root. If you don't get any output
from the mustek_pp backend, make sure a line "mustek_pp" is included into
your @CONFIGDIR@/dll.conf.
If your scanner isn't detected, make sure you've defined the right port address
in your mustek_pp.conf.
.TP
.I the name of your scanner/vendor
also a worthy information. Please also include the optical resolution and lamp type of your scanner, both can be found in the manual of your scanner.
.TP
.I any further comments
if you have comments about the documentation (what could be done better), or you
think I should know something, please include it.
.TP
.I some nice greetings
.