kopia lustrzana https://gitlab.com/sane-project/standard
Initial revision
commit
64b58898ed
|
|
@ -0,0 +1,126 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: area.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Wed Dec 4 19:19:37 1996
|
||||
%%For: davidm@panda.mosberger (David Mosberger-Tang)
|
||||
%%Orientation: Portrait
|
||||
%%BoundingBox: 0 0 221 205
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-59.0 231.0 translate
|
||||
1 -1 scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
% Polyline
|
||||
n 1725 1725 m 3375 1725 l 3375 2775 l 1725 2775 l clp gs col7 0.90 shd ef gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
2550 2302 m
|
||||
gs 1 -1 sc (scan area) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 1200 525 m 1200 3825 l gs col7 0.80 shd ef gr gs col-1 s gr
|
||||
n 1230.00 3681.00 m 1200.00 3825.00 l 1170.00 3681.00 l 1200.50 3705.50 l 1230.00 3681.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 1050 675 m 4650 675 l gs col7 0.80 shd ef gr gs col-1 s gr
|
||||
n 4506.00 645.00 m 4650.00 675.00 l 4506.00 705.00 l 4530.50 675.50 l 4506.00 645.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
3375 3150 m
|
||||
gs 1 -1 sc (bottom-right) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
1725 1500 m
|
||||
gs 1 -1 sc (top-left) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
2700 1050 m
|
||||
gs 1 -1 sc (scan surface) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
1050 3600 m
|
||||
gs 1 -1 sc (y) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
4425 525 m
|
||||
gs 1 -1 sc (x) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
1080 585 m
|
||||
gs 1 -1 sc (0) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
% Polyline
|
||||
n 1725 1650 m 1725 1800 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 1650 1725 m 1800 1725 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3375 2700 m 3375 2850 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3300 2775 m 3450 2775 l gs col-1 s gr
|
||||
15.000 slw
|
||||
% Polyline
|
||||
n 1200 675 m 4275 675 l 4275 3375 l 1200 3375 l clp gs col-1 s gr
|
||||
$F2psEnd
|
||||
restore
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
#FIG 3.1
|
||||
Portrait
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
6 1650 1650 1800 1800
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
1725 1650 1725 1800
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
1650 1725 1800 1725
|
||||
-6
|
||||
6 3300 2700 3450 2850
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3375 2700 3375 2850
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3300 2775 3450 2775
|
||||
-6
|
||||
6 1725 1725 3375 2775
|
||||
2 2 0 0 7 7 10 0 18 0.000 0 0 -1 0 0 5
|
||||
1725 1725 3375 1725 3375 2775 1725 2775 1725 1725
|
||||
4 1 -1 10 0 16 12 0.0000 4 105 840 2550 2302 scan area\001
|
||||
-6
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
1200 675 4275 675 4275 3375 1200 3375 1200 675
|
||||
2 1 0 1 -1 7 10 0 16 0.000 0 0 -1 1 0 2
|
||||
2 1 1.00 60.00 120.00
|
||||
1200 525 1200 3825
|
||||
2 1 0 1 -1 7 10 0 16 0.000 0 0 -1 1 0 2
|
||||
2 1 1.00 60.00 120.00
|
||||
1050 675 4650 675
|
||||
4 1 -1 10 0 16 12 0.0000 4 180 1020 3375 3150 bottom-right\001
|
||||
4 1 -1 10 0 16 12 0.0000 4 180 615 1725 1500 top-left\001
|
||||
4 1 -1 10 0 16 12 0.0000 4 135 1080 2700 1050 scan surface\001
|
||||
4 1 -1 10 0 16 12 0.0000 4 150 105 1050 3600 y\001
|
||||
4 1 -1 10 0 16 12 0.0000 4 105 90 4425 525 x\001
|
||||
4 1 -1 10 0 16 12 0.0000 4 135 105 1080 585 0\001
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: flow.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Tue Dec 3 22:09:10 1996
|
||||
%%For: davidm@panda.mosberger (David Mosberger-Tang)
|
||||
%%Orientation: Portrait
|
||||
%%BoundingBox: 0 0 601 542
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-161.0 577.0 translate
|
||||
1 -1 scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 2700 600 m 10200 600 l 10200 9600 l 2700 9600 l clp gs col7 0.95 shd ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3300 2400 m 10200 2400 l 10200 8925 l 3300 8925 l clp gs col7 0.90 shd ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3900 2925 m 10200 2925 l 10200 4650 l 3900 4650 l clp gs col7 0.85 shd ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3900 4800 m 10200 4800 l 10200 8250 l 3900 8250 l clp gs col7 0.85 shd ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 10350 3000 m 10425 3075 l 10425 4500 l 10350 4575 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 10350 4875 m 10425 4950 l 10425 8100 l 10350 8175 l gs col-1 s gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
10575 6600 m
|
||||
gs 1 -1 sc (image acquisition) col-1 show gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
10575 3825 m
|
||||
gs 1 -1 sc (device setup) col-1 show gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
4200 7515 m
|
||||
gs 1 -1 sc (- go back to) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
5775 7515 m
|
||||
gs 1 -1 sc (sane_start\(\)) col-1 show gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
7275 7515 m
|
||||
gs 1 -1 sc (if more frames desired) col-1 show gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
4200 3300 m
|
||||
gs 1 -1 sc (- use:) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
4200 5100 m
|
||||
gs 1 -1 sc (- sane_start\(\)) col-1 show gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
4500 4500 m
|
||||
gs 1 -1 sc (repeatedly to configure device as desired) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
5400 4080 m
|
||||
gs 1 -1 sc (sane_control_option\(\)) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
5400 3600 m
|
||||
gs 1 -1 sc (sane_get_option_descriptor\(\)) col-1 show gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
4200 5700 m
|
||||
gs 1 -1 sc (- use:) col-1 show gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
4500 6900 m
|
||||
gs 1 -1 sc (repeatedly until read returns EOF) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
5400 6000 m
|
||||
gs 1 -1 sc (sane_get_parameters\(\)) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
5400 6450 m
|
||||
gs 1 -1 sc (sane_read\(\)) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
4200 8100 m
|
||||
gs 1 -1 sc (- sane_cancel\(\)) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
3000 1200 m
|
||||
gs 1 -1 sc (- sane_init\(\)) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
3000 9300 m
|
||||
gs 1 -1 sc (- sane_exit\(\)) col-1 show gr
|
||||
/Helvetica-Oblique findfont 270.00 scalefont setfont
|
||||
3600 1800 m
|
||||
gs 1 -1 sc (- pick desired device, possibly by using) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
3600 2700 m
|
||||
gs 1 -1 sc (- sane_open\(\)) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
3600 8700 m
|
||||
gs 1 -1 sc (- sane_close\(\)) col-1 show gr
|
||||
/Helvetica findfont 270.00 scalefont setfont
|
||||
4800 2175 m
|
||||
gs 1 -1 sc (sane_get_devices\(\)) col-1 show gr
|
||||
$F2psEnd
|
||||
restore
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
#FIG 3.1
|
||||
Portrait
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
6 4200 7305 9945 7575
|
||||
4 0 -1 0 0 17 18 0.0000 4 270 1500 4200 7515 - go back to\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 1440 5775 7515 sane_start()\001
|
||||
4 0 -1 0 0 17 18 0.0000 4 210 2670 7275 7515 if more frames desired\001
|
||||
-6
|
||||
2 2 0 1 -1 7 10 0 19 0.000 0 0 -1 0 0 5
|
||||
2700 600 10200 600 10200 9600 2700 9600 2700 600
|
||||
2 2 0 1 -1 7 8 0 18 0.000 0 0 -1 0 0 5
|
||||
3300 2400 10200 2400 10200 8925 3300 8925 3300 2400
|
||||
2 2 0 1 -1 7 8 0 17 0.000 0 0 -1 0 0 5
|
||||
3900 2925 10200 2925 10200 4650 3900 4650 3900 2925
|
||||
2 2 0 1 -1 7 8 0 17 0.000 0 0 -1 0 0 5
|
||||
3900 4800 10200 4800 10200 8250 3900 8250 3900 4800
|
||||
2 1 0 1 -1 7 8 0 -1 0.000 0 0 -1 0 0 4
|
||||
10350 3000 10425 3075 10425 4500 10350 4575
|
||||
2 1 0 1 -1 7 8 0 -1 0.000 0 0 -1 0 0 4
|
||||
10350 4875 10425 4950 10425 8100 10350 8175
|
||||
4 0 -1 0 0 17 18 0.0000 4 150 735 4200 3300 - use:\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 1680 4200 5100 - sane_start()\001
|
||||
4 0 -1 0 0 17 18 0.0000 4 270 4950 4500 4500 repeatedly to configure device as desired\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 2715 5400 4080 sane_control_option()\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 3660 5400 3600 sane_get_option_descriptor()\001
|
||||
4 0 -1 0 0 17 18 0.0000 4 150 735 4200 5700 - use:\001
|
||||
4 0 -1 0 0 17 18 0.0000 4 270 4080 4500 6900 repeatedly until read returns EOF\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 2805 5400 6000 sane_get_parameters()\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 1440 5400 6450 sane_read()\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 1935 4200 8100 - sane_cancel()\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 1500 3000 1200 - sane_init()\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 1590 3000 9300 - sane_exit()\001
|
||||
4 0 -1 0 0 17 18 0.0000 4 270 4845 3600 1800 - pick desired device, possibly by using\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 1770 3600 2700 - sane_open()\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 1800 3600 8700 - sane_close()\001
|
||||
4 0 -1 0 0 16 18 0.0000 4 270 2415 4800 2175 sane_get_devices()\001
|
||||
4 0 -1 8 0 17 18 0.0000 4 270 2070 10575 6600 image acquisition\001
|
||||
4 0 -1 8 0 17 18 0.0000 4 270 1500 10575 3825 device setup\001
|
||||
|
|
@ -0,0 +1,209 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: hierarchy.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 2
|
||||
%%CreationDate: Thu Jan 30 22:02:12 1997
|
||||
%%For: davidm@panda.mosberger (David Mosberger-Tang)
|
||||
%Magnification: 1.00
|
||||
%%Orientation: Landscape
|
||||
%%BoundingBox: 0 0 355 722
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {0 setgray} bind def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-17.0 -17.0 translate
|
||||
90 rotate
|
||||
1 -1 scale
|
||||
|
||||
/cp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/sa {save} bind def
|
||||
/rs {restore} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/rm {rmoveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/sh {show} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/sd {setdash} bind def
|
||||
/ff {findfont} bind def
|
||||
/sf {setfont} bind def
|
||||
/scf {scalefont} bind def
|
||||
/sw {stringwidth} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
n 0 612 m 0 0 l 792 0 l 792 612 l cp clip
|
||||
0.06000 0.06000 sc
|
||||
% Polyline
|
||||
n 5700 3825 m 300 3825 l 300 300 l 5700 300 l cp gs 0.90 setgray ef gr
|
||||
% Polyline
|
||||
n 12300 5550 m 7200 5550 l 7200 300 l 12300 300 l cp gs 0.90 setgray ef gr
|
||||
15.000 slw
|
||||
% Polyline
|
||||
n 10650 4785 m 12150 4785 l 12150 5385 l 10650 5385 l cp gs col-1 s gr
|
||||
/Helvetica ff 270.00 scf sf
|
||||
11399 5182 m
|
||||
gs 1 -1 sc (qcam) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
% Polyline
|
||||
n 7350 4785 m 8850 4785 l 8850 5385 l 7350 5385 l cp gs col-1 s gr
|
||||
/Helvetica ff 270.00 scf sf
|
||||
8099 5182 m
|
||||
gs 1 -1 sc (hp) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
% Polyline
|
||||
n 2250 1185 m 3750 1185 l 3750 1785 l 2250 1785 l cp gs col-1 s gr
|
||||
% Polyline
|
||||
n 450 2985 m 1950 2985 l 1950 3585 l 450 3585 l cp gs col-1 s gr
|
||||
% Polyline
|
||||
n 2250 2985 m 3750 2985 l 3750 3585 l 2250 3585 l cp gs col-1 s gr
|
||||
% Polyline
|
||||
n 4050 2985 m 5550 2985 l 5550 3585 l 4050 3585 l cp gs col-1 s gr
|
||||
% Polyline
|
||||
n 8850 1185 m 10350 1185 l 10350 1785 l 8850 1785 l cp gs col-1 s gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 2700 1800 m 1200 3000 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3000 1800 m 3000 3000 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3300 1800 m 4800 3000 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 9600 1800 m 9600 2100 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 9450 2700 m 8100 4800 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 11400 4200 m 11400 4800 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 1200 3600 m 1200 4200 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3000 3600 m 3000 4125 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 7875 5400 m 7350 5850 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 8250 5400 m 8775 5850 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 11475 5400 m 11475 5850 l gs col-1 s gr
|
||||
15.000 slw
|
||||
% Polyline
|
||||
n 8850 2100 m 10350 2100 l 10350 2700 l 8850 2700 l cp gs col-1 s gr
|
||||
% Polyline
|
||||
n 10650 3600 m 12150 3600 l 12150 4200 l 10650 4200 l cp gs col-1 s gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 9750 2700 m 11400 3600 l gs col-1 s gr
|
||||
% Interp Spline
|
||||
gs n 4800 3600 m
|
||||
4390.2 4024.4 4259.0 4249.4 4275 4500 curveto
|
||||
4300.2 4894.5 4554.6 5418.2 5025 5475 curveto
|
||||
5575.9 5541.5 5962.1 4914.2 6150 4575 curveto
|
||||
6573.5 3810.6 5758.1 2145.7 6525 1350 curveto
|
||||
7224.0 624.7 8573.7 446.9 9450 900 curveto
|
||||
9524.5 938.5 9562.0 1013.5 9600 1200 curveto
|
||||
gs col-1 s gr
|
||||
gr
|
||||
|
||||
/Helvetica ff 270.00 scf sf
|
||||
1199 3382 m
|
||||
gs 1 -1 sc (pnm) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica ff 270.00 scf sf
|
||||
2999 3382 m
|
||||
gs 1 -1 sc (mustek) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica-Oblique ff 210.00 scf sf
|
||||
1200 4425 m
|
||||
gs 1 -1 sc (pnm files) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica-Oblique ff 210.00 scf sf
|
||||
3000 4380 m
|
||||
gs 1 -1 sc (scanner) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica-Oblique ff 210.00 scf sf
|
||||
7350 6165 m
|
||||
gs 1 -1 sc (scanner 1) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica-Oblique ff 210.00 scf sf
|
||||
8925 6165 m
|
||||
gs 1 -1 sc (scanner 2) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica-Oblique ff 210.00 scf sf
|
||||
11475 6135 m
|
||||
gs 1 -1 sc (video camera) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica-Oblique ff 210.00 scf sf
|
||||
3000 600 m
|
||||
gs 1 -1 sc (machine A) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica-Oblique ff 210.00 scf sf
|
||||
9600 630 m
|
||||
gs 1 -1 sc (machine B) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica-Oblique ff 210.00 scf sf
|
||||
4725 5850 m
|
||||
gs 1 -1 sc (network connection) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica ff 270.00 scf sf
|
||||
2999 1582 m
|
||||
gs 1 -1 sc (dll) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica ff 270.00 scf sf
|
||||
4799 3382 m
|
||||
gs 1 -1 sc (net) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica ff 270.00 scf sf
|
||||
9599 1582 m
|
||||
gs 1 -1 sc (saned) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica ff 270.00 scf sf
|
||||
9599 2482 m
|
||||
gs 1 -1 sc (dll) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
/Helvetica ff 270.00 scf sf
|
||||
11399 3982 m
|
||||
gs 1 -1 sc (autolum) dup sw pop 2 div neg 0 rm col-1 sh gr
|
||||
$F2psEnd
|
||||
rs
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
#FIG 3.1
|
||||
Landscape
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
6 10500 4500 12300 5400
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
10650 4785 12150 4785 12150 5385 10650 5385 10650 4785
|
||||
4 1 -1 0 0 16 18 0.0000 4 210 660 11399 5182 qcam\001
|
||||
-6
|
||||
6 7200 4500 9000 5400
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
7350 4785 8850 4785 8850 5385 7350 5385 7350 4785
|
||||
4 1 -1 0 0 16 18 0.0000 4 270 315 8099 5182 hp\001
|
||||
-6
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
2250 1185 3750 1185 3750 1785 2250 1785 2250 1185
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
450 2985 1950 2985 1950 3585 450 3585 450 2985
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
2250 2985 3750 2985 3750 3585 2250 3585 2250 2985
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
4050 2985 5550 2985 5550 3585 4050 3585 4050 2985
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
8850 1185 10350 1185 10350 1785 8850 1785 8850 1185
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
2700 1800 1200 3000
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3000 1800 3000 3000
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3300 1800 4800 3000
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
9600 1800 9600 2100
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
9450 2700 8100 4800
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
11400 4200 11400 4800
|
||||
2 2 0 0 0 0 10 0 2 0.000 0 0 -1 0 0 5
|
||||
5700 3825 300 3825 300 300 5700 300 5700 3825
|
||||
2 2 0 0 0 0 10 0 2 0.000 0 0 -1 0 0 5
|
||||
12300 5550 7200 5550 7200 300 12300 300 12300 5550
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
1200 3600 1200 4200
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3000 3600 3000 4125
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
7875 5400 7350 5850
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
8250 5400 8775 5850
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
11475 5400 11475 5850
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
8850 2100 10350 2100 10350 2700 8850 2700 8850 2100
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
10650 3600 12150 3600 12150 4200 10650 4200 10650 3600
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
9750 2700 11400 3600
|
||||
3 2 0 1 -1 7 0 0 -1 0.000 0 0 0 7
|
||||
4800 3600 4275 4500 5025 5475 6150 4575 6525 1350 9450 900
|
||||
9600 1200
|
||||
0.00 0.00 4390.23 4024.37 4258.98 4249.38 4300.21 4894.51
|
||||
4554.60 5418.20 5575.94 5541.53 5962.09 4914.18 6573.46 3810.63
|
||||
5758.15 2145.68 7223.99 624.74 8573.68 446.85 9524.49 938.52
|
||||
9561.99 1013.52 0.00 0.00
|
||||
4 1 -1 0 0 16 18 0.0000 4 210 525 1199 3382 pnm\001
|
||||
4 1 -1 0 0 16 18 0.0000 4 210 870 2999 3382 mustek\001
|
||||
4 1 -1 0 0 17 14 0.0000 4 210 855 1200 4425 pnm files\001
|
||||
4 1 -1 0 0 17 14 0.0000 4 120 765 3000 4380 scanner\001
|
||||
4 1 -1 0 0 17 14 0.0000 4 150 945 7350 6165 scanner 1\001
|
||||
4 1 -1 0 0 17 14 0.0000 4 150 945 8925 6165 scanner 2\001
|
||||
4 1 -1 0 0 17 14 0.0000 4 165 1290 11475 6135 video camera\001
|
||||
4 1 -1 0 0 17 14 0.0000 4 165 1035 3000 600 machine A\001
|
||||
4 1 -1 0 0 17 14 0.0000 4 165 1020 9600 630 machine B\001
|
||||
4 1 -1 0 0 17 14 0.0000 4 165 1860 4725 5850 network connection\001
|
||||
4 1 -1 0 0 16 18 0.0000 4 210 285 2999 1582 dll\001
|
||||
4 1 -1 0 0 16 18 0.0000 4 195 390 4799 3382 net\001
|
||||
4 1 -1 0 0 16 18 0.0000 4 210 735 9599 1582 saned\001
|
||||
4 1 -1 0 0 16 18 0.0000 4 210 285 9599 2482 dll\001
|
||||
4 1 -1 0 0 16 18 0.0000 4 210 960 11399 3982 autolum\001
|
||||
|
|
@ -0,0 +1,178 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: image-data.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Fri Nov 22 08:53:36 1996
|
||||
%%For: davidm@panda.mosberger (David Mosberger-Tang)
|
||||
%%Orientation: Portrait
|
||||
%%BoundingBox: 0 0 521 93
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-88.0 120.0 translate
|
||||
1 -1 scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 1800 1200 m 3150 1200 l 3150 1350 l 1800 1350 l clp gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
1875 1125 m
|
||||
gs 1 -1 sc (7 6 5 4 3 2 1 0) col-1 show gr
|
||||
% Polyline
|
||||
n 3150 1200 m 4500 1200 l 4500 1350 l 3150 1350 l clp gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
3225 1125 m
|
||||
gs 1 -1 sc (7 6 5 4 3 2 1 0) col-1 show gr
|
||||
% Polyline
|
||||
n 4500 1200 m 5850 1200 l 5850 1350 l 4500 1350 l clp gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
4575 1125 m
|
||||
gs 1 -1 sc (7 6 5 4 3 2 1 0) col-1 show gr
|
||||
15.000 slw
|
||||
% Polyline
|
||||
n 1800 1200 m 5850 1200 l 5850 1350 l 1800 1350 l clp gs col-1 s gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 1800 900 m 1950 825 l 3750 825 l 3825 750 l 3900 825 l 5700 825 l
|
||||
5850 900 l gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
2475 1575 m
|
||||
gs 1 -1 sc (r) col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
3825 1575 m
|
||||
gs 1 -1 sc (g) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
5175 1575 m
|
||||
gs 1 -1 sc (b) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
3825 600 m
|
||||
gs 1 -1 sc (pixel 0) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
% Polyline
|
||||
n 5850 1200 m 7200 1200 l 7200 1350 l 5850 1350 l clp gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
5925 1125 m
|
||||
gs 1 -1 sc (7 6 5 4 3 2 1 0) col-1 show gr
|
||||
% Polyline
|
||||
n 7200 1200 m 8550 1200 l 8550 1350 l 7200 1350 l clp gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
7275 1125 m
|
||||
gs 1 -1 sc (7 6 5 4 3 2 1 0) col-1 show gr
|
||||
% Polyline
|
||||
n 8550 1200 m 9900 1200 l 9900 1350 l 8550 1350 l clp gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
8625 1125 m
|
||||
gs 1 -1 sc (7 6 5 4 3 2 1 0) col-1 show gr
|
||||
15.000 slw
|
||||
% Polyline
|
||||
n 5850 1200 m 9900 1200 l 9900 1350 l 5850 1350 l clp gs col-1 s gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 5850 900 m 6000 825 l 7800 825 l 7875 750 l 7950 825 l 9750 825 l
|
||||
9900 900 l gs col-1 s gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
6525 1575 m
|
||||
gs 1 -1 sc (r) col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
7875 1575 m
|
||||
gs 1 -1 sc (g) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
9225 1575 m
|
||||
gs 1 -1 sc (b) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
7875 600 m
|
||||
gs 1 -1 sc (pixel 1) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
9225 1950 m
|
||||
gs 1 -1 sc (byte 5) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
7875 1950 m
|
||||
gs 1 -1 sc (byte 4) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
6525 1950 m
|
||||
gs 1 -1 sc (byte 3) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
5175 1950 m
|
||||
gs 1 -1 sc (byte 2) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
3825 1950 m
|
||||
gs 1 -1 sc (byte1) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
2475 1950 m
|
||||
gs 1 -1 sc (byte0) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
10050 1275 m
|
||||
gs 1 -1 sc (....) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
|
||||
/Helvetica findfont 180.00 scalefont setfont
|
||||
1725 1125 m
|
||||
gs 1 -1 sc (bit:) dup stringwidth pop neg 0 rmoveto col-1 show gr
|
||||
$F2psEnd
|
||||
restore
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
#FIG 3.1
|
||||
Portrait
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
6 1725 450 5925 1650
|
||||
6 1800 975 3150 1350
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
1800 1200 3150 1200 3150 1350 1800 1350 1800 1200
|
||||
4 0 -1 0 0 16 12 0.0000 4 135 1260 1875 1125 7 6 5 4 3 2 1 0\001
|
||||
-6
|
||||
6 3150 975 4500 1350
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
3150 1200 4500 1200 4500 1350 3150 1350 3150 1200
|
||||
4 0 -1 0 0 16 12 0.0000 4 135 1260 3225 1125 7 6 5 4 3 2 1 0\001
|
||||
-6
|
||||
6 4500 975 5850 1350
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
4500 1200 5850 1200 5850 1350 4500 1350 4500 1200
|
||||
4 0 -1 0 0 16 12 0.0000 4 135 1260 4575 1125 7 6 5 4 3 2 1 0\001
|
||||
-6
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
1800 1200 5850 1200 5850 1350 1800 1350 1800 1200
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 7
|
||||
1800 900 1950 825 3750 825 3825 750 3900 825 5700 825
|
||||
5850 900
|
||||
4 0 -1 0 0 16 12 0.0000 4 105 60 2475 1575 r\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 150 105 3825 1575 g\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 135 105 5175 1575 b\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 180 555 3825 600 pixel 0\001
|
||||
-6
|
||||
6 5850 975 7200 1350
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
5850 1200 7200 1200 7200 1350 5850 1350 5850 1200
|
||||
4 0 -1 0 0 16 12 0.0000 4 135 1260 5925 1125 7 6 5 4 3 2 1 0\001
|
||||
-6
|
||||
6 7200 975 8550 1350
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
7200 1200 8550 1200 8550 1350 7200 1350 7200 1200
|
||||
4 0 -1 0 0 16 12 0.0000 4 135 1260 7275 1125 7 6 5 4 3 2 1 0\001
|
||||
-6
|
||||
6 8550 975 9900 1350
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
8550 1200 9900 1200 9900 1350 8550 1350 8550 1200
|
||||
4 0 -1 0 0 16 12 0.0000 4 135 1260 8625 1125 7 6 5 4 3 2 1 0\001
|
||||
-6
|
||||
2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
5850 1200 9900 1200 9900 1350 5850 1350 5850 1200
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 7
|
||||
5850 900 6000 825 7800 825 7875 750 7950 825 9750 825
|
||||
9900 900
|
||||
4 0 -1 0 0 16 12 0.0000 4 105 60 6525 1575 r\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 150 105 7875 1575 g\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 135 105 9225 1575 b\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 180 555 7875 600 pixel 1\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 180 525 9225 1950 byte 5\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 180 525 7875 1950 byte 4\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 180 525 6525 1950 byte 3\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 180 525 5175 1950 byte 2\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 180 465 3825 1950 byte1\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 180 465 2475 1950 byte0\001
|
||||
4 1 -1 0 0 16 12 0.0000 4 15 180 10050 1275 ....\001
|
||||
4 2 -1 0 0 16 12 0.0000 4 135 240 1725 1125 bit:\001
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: xfer.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Fri Nov 22 08:53:30 1996
|
||||
%%For: davidm@panda.mosberger (David Mosberger-Tang)
|
||||
%%Orientation: Portrait
|
||||
%%BoundingBox: 0 0 362 182
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-134.0 370.0 translate
|
||||
1 -1 scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
15.000 slw
|
||||
% Polyline
|
||||
n 2400 3300 m 8100 3300 l gs col-1 s gr
|
||||
n 7812.00 3240.00 m 8100.00 3300.00 l 7812.00 3360.00 l 7860.50 3300.50 l 7812.00 3240.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 8100 3375 m 2400 3675 l gs col-1 s gr
|
||||
15.000 slw
|
||||
n 2690.76 3719.78 m 2400.00 3675.00 l 2684.45 3599.95 l 2640.17 3662.89 l 2690.76 3719.78 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2400 3750 m 8100 3750 l gs col-1 s gr
|
||||
n 7812.00 3690.00 m 8100.00 3750.00 l 7812.00 3810.00 l 7860.50 3750.50 l 7812.00 3690.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 8100 3825 m 2400 4125 l gs col-1 s gr
|
||||
15.000 slw
|
||||
n 2690.76 4169.78 m 2400.00 4125.00 l 2684.45 4049.95 l 2640.17 4112.89 l 2690.76 4169.78 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 2250 3150 m 8250 3150 l 8250 6150 l 2250 6150 l clp gs col-1 s gr
|
||||
15.000 slw
|
||||
% Polyline
|
||||
n 2400 4200 m 8100 4200 l gs col-1 s gr
|
||||
n 7812.00 4140.00 m 8100.00 4200.00 l 7812.00 4260.00 l 7860.50 4200.50 l 7812.00 4140.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 8100 4275 m 2400 4575 l gs col-1 s gr
|
||||
15.000 slw
|
||||
n 2690.76 4619.78 m 2400.00 4575.00 l 2684.45 4499.95 l 2640.17 4562.89 l 2690.76 4619.78 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2400 4650 m 8100 4650 l gs col-1 s gr
|
||||
n 7812.00 4590.00 m 8100.00 4650.00 l 7812.00 4710.00 l 7860.50 4650.50 l 7812.00 4590.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
$F2psEnd
|
||||
restore
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
#FIG 3.1
|
||||
Portrait
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
6 2325 3150 8175 3750
|
||||
2 1 0 2 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
2 1 2.00 120.00 240.00
|
||||
2400 3300 8100 3300
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
2 1 2.00 120.00 240.00
|
||||
8100 3375 2400 3675
|
||||
-6
|
||||
6 2325 3600 8175 4200
|
||||
2 1 0 2 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
2 1 2.00 120.00 240.00
|
||||
2400 3750 8100 3750
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
2 1 2.00 120.00 240.00
|
||||
8100 3825 2400 4125
|
||||
-6
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
2250 3150 8250 3150 8250 6150 2250 6150 2250 3150
|
||||
2 1 0 2 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
2 1 2.00 120.00 240.00
|
||||
2400 4200 8100 4200
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
2 1 2.00 120.00 240.00
|
||||
8100 4275 2400 4575
|
||||
2 1 0 2 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
2 1 2.00 120.00 240.00
|
||||
2400 4650 8100 4650
|
||||
|
|
@ -0,0 +1,443 @@
|
|||
\chapter{Network Protocol}\label{chap:net}
|
||||
|
||||
The SANE interface has been designed to facilitate network access to
|
||||
image acquisition devices. In particular, most SANE implementations
|
||||
are expected to support a network backend (net client) and a
|
||||
corresponding network daemon (net server) that allows accessing image
|
||||
acquisition devices through a network connection. Network access is
|
||||
useful in several situations:
|
||||
\begin{itemize}
|
||||
|
||||
\item To provide controlled access to resources that are inaccessible
|
||||
to a regular user. For example, a user may want to access a device
|
||||
on a host where she has no account on. With the network protocol,
|
||||
it is possible to allow certain users to access scanners without
|
||||
giving them full access to the system.
|
||||
|
||||
Controlling access through the network daemon can be useful even in
|
||||
the local case: for example, certain backends may require root
|
||||
privileges to access a device. Rather than installing each frontend
|
||||
as setuid-root, a system administrator could instead install the
|
||||
SANE network daemon as setuid-root. This enables regular users to
|
||||
access the privileged device through the SANE daemon (which,
|
||||
presumably, supports a more fine-grained access control mechanism
|
||||
than the simple setuid approach). This has the added benefit that
|
||||
the system administrator only needs to trust the SANE daemon, not
|
||||
each and every frontend that may need access to the privileged
|
||||
device.
|
||||
|
||||
\item Network access provides a sense of ubiquity of the available
|
||||
image acquisition devices. For example, in a local area network
|
||||
environment, this allows a user to log onto any machine and have
|
||||
convenient access to any resource available to any machine on the
|
||||
network (subject to permission constraints).
|
||||
|
||||
\item For devices that do not require physical access when used (e.g.,
|
||||
video cameras), network access allows a user to control and use
|
||||
these devices without being in physical proximity. Indeed, if such
|
||||
devices are connected to the Internet, access from any place in the
|
||||
world is possible.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
The network protocol described in this chapter has been design with
|
||||
the following goals in mind:
|
||||
\begin{enumerate}
|
||||
|
||||
\item Image transmission should be efficient (have low encoding
|
||||
overhead).
|
||||
|
||||
\item Accessing option descriptors on the client side must be
|
||||
efficient (since this is a very common operation).
|
||||
|
||||
\item Other operations, such as setting or inquiring the value of an
|
||||
option are less performance critical since they typically require
|
||||
explicit user action.
|
||||
|
||||
\item The network protocol should be simple and easy to implement on
|
||||
any host architecture and any programming language.
|
||||
|
||||
\end{enumerate}
|
||||
The SANE protocol can be run across any transport protocol that
|
||||
provides reliable data delivery. While SANE does not specify a
|
||||
specific transport protocol, it is expected that TCP/IP will be among
|
||||
the most commonly used protocols.
|
||||
|
||||
\section{Data Type Encoding}
|
||||
|
||||
\subsection{Primitive Data Types}
|
||||
|
||||
The four primitive types of the SANE standard are encoded as follows:
|
||||
\begin{description}
|
||||
|
||||
\item[\code{\defn{SANE\_Byte}}:] A byte is encoded as an 8 bit value.
|
||||
Since the transport protocol is assumed to be byte-orientd, the bit
|
||||
order is irrelevant.
|
||||
|
||||
\item[\code{\defn{SANE\_Word}}:] A word is encoded as 4 bytes (32
|
||||
bits). The bytes are ordered from most-significant to
|
||||
least-significant byte (big-endian byte-order).
|
||||
|
||||
\item[\code{\defn{SANE\_Char}}:] A character is currently encoded as an 8-bit
|
||||
ISO LATIN-1 value. An extension to support wider character sets (16 or 32
|
||||
bits) is planned for the future, but not supported at this point.
|
||||
|
||||
\item[\code{\defn{SANE\_String}}:] A string pointer is encoded as a
|
||||
\code{SANE\_Char} array. The trailing NUL byte is considered part
|
||||
of the array and a \code{NULL} pointer is encoded as a zero-length
|
||||
array.
|
||||
|
||||
\item[\code{\defn{SANE\_Handle}}:] A handle is encoded like a word.
|
||||
The network backend needs to take care of converting these integer
|
||||
values to the opaque pointer values that are presented to the user
|
||||
of the network backend. Similarly, the SANE daemon needs to take
|
||||
care of converting the opaque pointer values it receives from its
|
||||
backends into 32-bit integers suitable for use for network encoding.
|
||||
|
||||
\item[{\em\defn{enumeration types}}:] Enumeration types are encoded
|
||||
like words.
|
||||
|
||||
\end{description}
|
||||
|
||||
\subsection{Type Constructors}
|
||||
|
||||
Closely following the type constructors of the C language, the SANE network
|
||||
protocol supports the following four constructors:
|
||||
\begin{description}
|
||||
|
||||
\item[{\em\defn{pointer}}:] A pointer is encoded by a word that indicates
|
||||
whether the pointer is a NULL-pointer which is then followed by the
|
||||
value that the pointer points to (in the case of a non-NULL pointer;
|
||||
in the case of a NULL pointer, no bytes are encoded for the pointer
|
||||
value).
|
||||
|
||||
\item[{\em\defn{array}}:] An array is encoded by a word that indicates
|
||||
the length of the array followed by the values of the elements in
|
||||
the array. The length may be zero in which case no bytes are
|
||||
encoded for the element values.
|
||||
|
||||
\item[{\em\defn{structure}}:] A structure is encoded by simply encoding the
|
||||
structure members in the order in which they appear in the
|
||||
corresponding C type declaration.
|
||||
|
||||
\item[{\em\defn{union}}:] A union must always be accompanied by a tag
|
||||
value that indicates which of the union members is the currently the
|
||||
active one. For this reason, the union itself is encoded simply by
|
||||
encoding the value of the currently active member.
|
||||
|
||||
\end{description}
|
||||
|
||||
Note that for type constructors, the pointer, element, or member
|
||||
values themselves may have a constructed type. Thus, the above rules
|
||||
should be applied recursively until a sequence of primitive types has
|
||||
been found.
|
||||
|
||||
Also SANE had no need for encoding of circular structures. This
|
||||
greatly simplifies the network protocol.
|
||||
|
||||
\section{Remote Procedure Call Requests}
|
||||
|
||||
The SANE network protocol is a client/server-style remote procedure
|
||||
call (RPC) protocol. This means that all activity is initiated by the
|
||||
client side (the network backend)---a server is restricted to
|
||||
answering request by the client.
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_INIT}}}
|
||||
|
||||
This RPC establishes a connection to a particular SANE network daemon.
|
||||
It must be the first call in a SANE network session. The parameter
|
||||
and reply arguments for this call are shown in the table below:
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_Word version\_code} & \code{SANE\_Word status} \\
|
||||
\code{SANE\_String user\_name} & \code{SANE\_Word version\_code} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{version\_code} argument in the request is the SANE
|
||||
version-code of the network backend that is contacting the network
|
||||
daemon (see Section~\ref{sec:saneversioncode}). The
|
||||
``build-revision'' in the version code is used to hold the network
|
||||
protocol version. The SANE network daemon receiving such a request
|
||||
must make sure that the network protocol version corresponds to a
|
||||
supported version since otherwise the encoding of the network stream
|
||||
may be incompatible (even though the SANE interface itself may be
|
||||
compatible). The \code{user\_name} argument is the name of the user
|
||||
on whose behalf this call is being performed. If the network backend
|
||||
cannot determine a user-name, it passes a \code{NULL} pointer for this
|
||||
argument. No trust should be placed in the authenticity of this
|
||||
user-name. The intent of this string is to provide more convenience
|
||||
to the user. E.g., it could be used as the default-user name in
|
||||
subsequent authentication calls.
|
||||
|
||||
In the reply, \code{status} indicates the completion status. If the
|
||||
value is anything other than \code{SANE\_STA\-TUS\_SUCCESS}, the
|
||||
remainder of the reply has undefined values.\footnote{The sane network
|
||||
daemon should be careful not to leak information in the undefined
|
||||
portion of the reply.} The \code{version\_code} argument returns the
|
||||
SANE version-code that the network daemon supports. See the comments
|
||||
in the previous paragraph on the meaning of the build-revision in this
|
||||
version code.
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_GET\_DEVICES}}}
|
||||
|
||||
This RPC is used to obtain the list of devices accessible by the SANE
|
||||
daemon.
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{void} & \code{SANE\_Word status} \\
|
||||
& \code{SANE\_Device ***device\_list} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
There are no arguments in the request for this call.
|
||||
|
||||
In the reply, \code{status} indicates the completion status. If the
|
||||
value is anything other than \code{SANE\_STA\-TUS\_SUCCESS}, the
|
||||
remainder of the reply has undefined values. The \code{device\_list}
|
||||
argument is a pointer to a \code{NULL}-terminated array of
|
||||
\code{SANE\_Device} pointers.
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_OPEN}}}
|
||||
|
||||
This RPC is used to open a connection to a remote SANE device.
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_String device\_name} & \code{SANE\_Word status} \\
|
||||
& \code{SANE\_Word handle} \\
|
||||
& \code{SANE\_String resource} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{device\_name} argument specifies the name of the device to
|
||||
open.
|
||||
|
||||
In the reply, \code{status} indicates the completion status. If the
|
||||
value is anything other than \code{SANE\_STA\-TUS\_SUCCESS}, the
|
||||
remainder of the reply has undefined values. The \code{handle}
|
||||
argument specifies the device handle that uniquely identifies the
|
||||
connection. The \code{resource} argument is used to request
|
||||
authentication. If it has a non-\code{NULL} value, the network
|
||||
backend should authenticate the specified resource and then retry this
|
||||
operation (see Section~\ref{sec:authorization} for details on how to
|
||||
authorize a resource).
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_CLOSE}}}
|
||||
|
||||
This RPC is used to close a connection to a remote SANE device.
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_Word handle} & \code{SANE\_Word dummy} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{handle} argument identifies the connection that should be
|
||||
closed.
|
||||
|
||||
In the reply, the \code{dummy} argument is unused. Its purpose is to
|
||||
ensure proper synchronization (without it, a net client would not be
|
||||
able to determine when the RPC has completed).
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_GET\_OPTION\_DESCRIPTORS}}}
|
||||
|
||||
This RPC is used to obtain {\em all\/} the option descriptors for a
|
||||
remote SANE device.
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_Word handle} & \code{Option\_Descriptor\_Array odesc} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{handle} argument identifies the remote device whose option
|
||||
descriptors should be obtained.
|
||||
|
||||
In the reply, the \code{odesc} argument is used to return the array of
|
||||
option descriptors. The option descriptor array has the following
|
||||
structure:
|
||||
\begin{quote}\index{Option\_Descriptor\_Array}
|
||||
\begin{verbatim}
|
||||
struct Option_Descriptor_Array
|
||||
{
|
||||
SANE_Word num_options;
|
||||
SANE_Option_Descriptor **desc;
|
||||
};
|
||||
\end{verbatim}
|
||||
\end{quote}
|
||||
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_CONTROL\_OPTION}}}
|
||||
|
||||
This RPC is used to control (inquire, set, or set to automatic) a
|
||||
specific option of a remote SANE device.
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_Word handle} & \code{SANE\_Status status} \\
|
||||
\code{SANE\_Word option} & \code{SANE\_Word info} \\
|
||||
\code{SANE\_Word action} & \code{SANE\_Word value\_type} \\
|
||||
\code{SANE\_Word value\_type} & \code{SANE\_Word value\_size} \\
|
||||
\code{SANE\_Word value\_size} & \code{void *value} \\
|
||||
\code{void *value} & \code{SANE\_String *resource} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{handle} argument identifies the remote device whose option
|
||||
should be controlled. Argument \code{option} is the number (index) of
|
||||
the option that should be controlled. Argument \code{action}
|
||||
specifies what action should be taken (get, set, or set automatic).
|
||||
Argument \code{value\_type} specifies the type of the option value
|
||||
(must be one of \code{SANE\_TYPE\_BOOL}, \code{SANE\_TYPE\_INT},
|
||||
\code{SANE\_TYPE\_FIXED}, \code{SANE\_TYPE\_STR\-ING},
|
||||
\code{SANE\_TYPE\_BUTTON}). Argument \code{value\_size} specifies
|
||||
the size of the option value in number of bytes (see
|
||||
Section~\ref{sec:valuesize} for the precise meaning of this value).
|
||||
Finally, argument \code{value} is a pointer to the option value. It
|
||||
must be a writeable area that is at least \code{value\_size} bytes
|
||||
large. (Note that this area must be writable even if the action is to
|
||||
set the option value. This is because the backend may not be able to
|
||||
set the exact option value, in which case the option value is used to
|
||||
return the next best value that the backend has chosen.)
|
||||
|
||||
In the reply, argument \code{resource} is set to the name of the
|
||||
resource that must be authorized before this call can be retried. If
|
||||
this value is non-\code{NULL}, all other arguments have undefined
|
||||
values (see Section~\ref{sec:authorization} for details on how to
|
||||
authorize a resource). Argument \code{status} indicates the
|
||||
completion status. If the value is anything other than
|
||||
\code{SANE\_STA\-TUS\_SUCCESS}, the remainder of the reply has undefined
|
||||
values. The \code{info} argument returns the information on how well
|
||||
the backend was able to satisfy the request. For details, see the
|
||||
description of the corresponding argument in
|
||||
Section~\ref{sec:control}. Arguments \code{value\_type} and
|
||||
\code{value\_size} have the same values as the arguments by the same
|
||||
name in corresponding request. The values are repeated here to ensure
|
||||
that both the request and the reply are self-contained (i.e., they can
|
||||
be encoded and decoded independently). Argument \code{value} is holds
|
||||
the value of the option that has become effective as a result of this
|
||||
RPC.
|
||||
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_GET\_PARAMETERS}}}
|
||||
|
||||
This RPC is used to obtain the scan parameters of a remote SANE
|
||||
device.
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_Word handle} & \code{SANE\_Status status} \\
|
||||
& \code{SANE\_Parameters params} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{handle} argument identifies the connection to the remote
|
||||
device whose scan parameters should be returned.
|
||||
|
||||
In the reply, \code{status} indicates the completion status. If the
|
||||
value is anything other than \code{SANE\_STA\-TUS\_SUC\-CESS}, the
|
||||
remainder of the reply has undefined values. The argument
|
||||
\code{params} is used to return the scan parameters.
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_START}}}
|
||||
|
||||
This RPC is used to start image acquisition (scanning).
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_Word handle} & \code{SANE\_Status status} \\
|
||||
& \code{SANE\_Word port} \\
|
||||
& \code{SANE\_Word byte\_order} \\
|
||||
& \code{SANE\_String resource} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{handle} argument identifies the connection to the remote
|
||||
device from which the image should be acquired.
|
||||
|
||||
In the reply, argument \code{resource} is set to the name of the
|
||||
resource that must be authorized before this call can be retried. If
|
||||
this value is non-\code{NULL}, all other arguments have undefined
|
||||
values (see Section~\ref{sec:authorization} for details on how to
|
||||
authorize a resource). Argument, \code{status} indicates the
|
||||
completion status. If the value is anything other than
|
||||
\code{SANE\_STA\-TUS\_SUCCESS}, the remainder of the reply has
|
||||
undefined values. The argument \code{port} returns the port number
|
||||
from which the image data will be available. To read the image data,
|
||||
a network client must connect to the remote host at the indicated port
|
||||
number. Through this port, the image data is transmitted as a
|
||||
sequence of data records. Each record starts with the data length in
|
||||
bytes. The data length is transmitted as a sequence of four bytes.
|
||||
These bytes should be interpreted as an unsigned integer in big-endian
|
||||
format. The four length bytes are followed by the number of data
|
||||
bytes indicated by the length. Except for byte-order, the data is in
|
||||
the same format as defined for \code{sane\_read()}. Since some
|
||||
records may contain no data at all, a length value of zero is
|
||||
perfectly valid. The special length value of \code{0xffffffff} is
|
||||
used to indicate the end of the data stream. That is, after receiving
|
||||
a record length of \code{0xffffffff}, the network client should close
|
||||
the data connection and stop reading data.
|
||||
|
||||
Argument \code{byte\_order} specifies the byte-order of the image
|
||||
data. A value of 0x1234 indicates little-endian format, a value of
|
||||
0x4321 indicates big-endian format. All other values are presently
|
||||
undefined and reserved for future enhancements of this protocol. The
|
||||
intent is that a network server sends data in its own byte-order and
|
||||
the client is responsible for adjusting the byte-order, if necessary.
|
||||
This approach causes no unnecessary overheads in the case where the
|
||||
server and client byte-order match and puts the extra burden on the
|
||||
client side when there is a byte-order mismatch. Putting the burden
|
||||
on the client-side improves the scalability properties of this
|
||||
protocol.
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_CANCEL}}}
|
||||
|
||||
This RPC is used to cancel the current operation of a remote SANE
|
||||
device.
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_Word handle} & \code{SANE\_Word dummy} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{handle} argument identifies the connection whose operation
|
||||
should be cancelled.
|
||||
|
||||
In the reply, the \code{dummy} argument is unused. Its purpose is to
|
||||
ensure proper synchronization (without it, a net client would not be
|
||||
able to determine when the RPC has completed).
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_AUTHORIZE}}}\label{sec:authorization}
|
||||
\index{network authorization}
|
||||
|
||||
This RPC is used to pass authorization data from the net client to the
|
||||
net server.
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
{\bf request:} & {\bf reply:} \\
|
||||
\code{SANE\_String resource} & \code{SANE\_Word dummy} \\
|
||||
\code{SANE\_String username} & \\
|
||||
\code{SANE\_String password} & \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
The \code{resource} argument specifies the name of the resource to be
|
||||
authorized. This argument should be set to the string returned in the
|
||||
\code{resource} argument of the RPC reply that required this
|
||||
authorization call. The \code{username} and \code{password} are the
|
||||
name of the user that is accessing the resource and the password for
|
||||
the specified resource/user pair.\footnote{The username and password
|
||||
should be encrypted before network transmission but currently they
|
||||
are always in plain text.}
|
||||
|
||||
In the reply, \code{dummy} is completely unused. Note that there is
|
||||
no direct failure indication. This is unnecessary since a net client
|
||||
will retry the RPC that resulted in the authorization request until
|
||||
that call succeeds (or until the request is cancelled).
|
||||
|
||||
|
||||
\subsection{\code{\defn{SANE\_NET\_EXIT}}}
|
||||
|
||||
This RPC is used to disconnect a net client from a net server. There
|
||||
are no request or reply arguments in this call. As a result of this
|
||||
call, the connection between the client and the server that was
|
||||
established by the \code{SANE\_NET\_INIT} call will be closed.
|
||||
|
||||
% Local Variables:
|
||||
% mode: latex
|
||||
% TeX-master: "sane.tex"
|
||||
% End:
|
||||
Plik diff jest za duży
Load Diff
Ładowanie…
Reference in New Issue