kopia lustrzana https://gitlab.com/sane-project/backends
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-develDEVEL_2_0_BRANCH-1
rodzic
7c36f6b7a0
commit
d359229e75
3248
backend/mustek_pp.c
3248
backend/mustek_pp.c
Plik diff jest za duży
Load Diff
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
.
|
||||
|
|
Ładowanie…
Reference in New Issue