1141cc406Sopenharmony_ciMade by Kyushu Matsushita Electric, a.k.a. Panasonic
2141cc406Sopenharmony_cihttp://www.kme.panasonic.co.jp/
3141cc406Sopenharmony_cihttp://panasonic.com/
4141cc406Sopenharmony_ci
5141cc406Sopenharmony_ciThe same twain driver handle these scanners:
6141cc406Sopenharmony_ciSame family as  KV-SS25, KV-SS50, KV-SS55, KV-SS50EX, KV-SS55EX, KV-SS850, KV-SS855.
7141cc406Sopenharmony_ci
8141cc406Sopenharmony_ciAnother driver handle the KV-S2055L, KV-S2055W.
9141cc406Sopenharmony_ci
10141cc406Sopenharmony_ciHowever all these scanner show similarities.
11141cc406Sopenharmony_ci
12141cc406Sopenharmony_ci/*--------------------------------------------------------------------------*/
13141cc406Sopenharmony_ci
14141cc406Sopenharmony_ciSCSI commands supported by the KV-SS25:
15141cc406Sopenharmony_ci
16141cc406Sopenharmony_ciTEST UNIT READY:
17141cc406Sopenharmony_ci00 00 00 00 00 00
18141cc406Sopenharmony_ci
19141cc406Sopenharmony_ciREQUEST SENSE:
20141cc406Sopenharmony_ci03 00 00 00 0E 00
21141cc406Sopenharmony_ci  a return after a short read is:
22141cc406Sopenharmony_ci      f0 00 60 00 00 00 02 0a 00 00 00 00 00 00 00 00
23141cc406Sopenharmony_ci  a return after a jam (sure?)
24141cc406Sopenharmony_ci      f0 00 03 00 00 00 00 0a 00 00 00 00 80 01 00 00
25141cc406Sopenharmony_ci  no paper
26141cc406Sopenharmony_ci      f0 00 03 00 00 00 00 0a 00 00 00 00 3a 00 00 00
27141cc406Sopenharmony_ci  jam door open:
28141cc406Sopenharmony_ci	  f0 00 02 00 00 00 00 0a 00 00 00 00 04 81 00 00
29141cc406Sopenharmony_ci  paper jam
30141cc406Sopenharmony_ci	  f0 00 03 00 00 00 00 0a 00 00 00 00 80 04 00 00
31141cc406Sopenharmony_ci  after a power cycle
32141cc406Sopenharmony_ci      f0 00 06 00 00 00 00 0a 00 00 00 00 29 00 00 00
33141cc406Sopenharmony_ci  after ????
34141cc406Sopenharmony_ci      f0 00 05 00 00 00 00 0a 00 00 00 00 2c 02 00 00
35141cc406Sopenharmony_ci  out of memory (scan data too big for scanner)
36141cc406Sopenharmony_ci      f0 00 05 00 00 00 00 0a 00 00 00 00 2c 80 00 00
37141cc406Sopenharmony_ci
38141cc406Sopenharmony_ciINQUIRY:
39141cc406Sopenharmony_ci12 00 00 00 60 00
40141cc406Sopenharmony_ci  result:
41141cc406Sopenharmony_ci    06 00 02 02 5B 00 00 10 4B 2E 4D 2E 45 2E 20 20
42141cc406Sopenharmony_ci    4B 56 2D 53 53 32 35 41 20 20 20 20 20 20 20 20
43141cc406Sopenharmony_ci    31 2E 30 35 00 00 00 00 00 00 00 00 00 00 00 00
44141cc406Sopenharmony_ci    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
45141cc406Sopenharmony_ci    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
46141cc406Sopenharmony_ci    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
47141cc406Sopenharmony_ci
48141cc406Sopenharmony_ciSET WINDOWS:
49141cc406Sopenharmony_ci24 00 00 00 00 00 00 00 00 00
50141cc406Sopenharmony_ci   reset (?)
51141cc406Sopenharmony_ci24 00 00 00 00 00 00 00 48 00
52141cc406Sopenharmony_ci   72 bytes.
53141cc406Sopenharmony_ci   6-7 = 0x40 = window descriptor length
54141cc406Sopenharmony_ci
55141cc406Sopenharmony_ci   Window Descriptor Block:
56141cc406Sopenharmony_ci   0 = page side
57141cc406Sopenharmony_ci	 0x00 = front
58141cc406Sopenharmony_ci	 0x80 = back
59141cc406Sopenharmony_ci   2-3 = X resolution
60141cc406Sopenharmony_ci   4-5 = Y Resolution
61141cc406Sopenharmony_ci   14-17 = width  (size in inches * 1200)
62141cc406Sopenharmony_ci   18-21 = length (size in inches * 1200)
63141cc406Sopenharmony_ci   22 = 255 - brightness
64141cc406Sopenharmony_ci   23 = same as 22
65141cc406Sopenharmony_ci   24 = contrast
66141cc406Sopenharmony_ci   25 = image composition
67141cc406Sopenharmony_ci        0x00 = black&white (1 bit)
68141cc406Sopenharmony_ci		0x01 = black&white with halftone pattern
69141cc406Sopenharmony_ci		0x02 = grayscale
70141cc406Sopenharmony_ci   26 = bits/pixel
71141cc406Sopenharmony_ci        0x01, if image comp == 0
72141cc406Sopenharmony_ci        0x04, if image comp == (0x01 || 0x02) -> grayscale 4 bits
73141cc406Sopenharmony_ci		0x08, if image comp == 0x02 -> grayscale 8 bits
74141cc406Sopenharmony_ci   28 = haltone pattern
75141cc406Sopenharmony_ci      0x00 = Bayer 64
76141cc406Sopenharmony_ci      0x01 = Bayer 16
77141cc406Sopenharmony_ci	  0x02 = Dot 32
78141cc406Sopenharmony_ci	  0x03 = Dot 64
79141cc406Sopenharmony_ci	  0x04 = Error diffusion
80141cc406Sopenharmony_ci	  0x80 = User downloaded pattern
81141cc406Sopenharmony_ci   29 = reverse image
82141cc406Sopenharmony_ci      0x00 = no reverse
83141cc406Sopenharmony_ci      0x80 = reverse
84141cc406Sopenharmony_ci   43 = image emphasis
85141cc406Sopenharmony_ci	  0x80 smooth
86141cc406Sopenharmony_ci	  0x00 none
87141cc406Sopenharmony_ci	  0x01 low
88141cc406Sopenharmony_ci	  0x30 medium (twain default)
89141cc406Sopenharmony_ci	  0x50 high
90141cc406Sopenharmony_ci   44 = gamma (Gray 4/8 only)
91141cc406Sopenharmony_ci      0x00 normal
92141cc406Sopenharmony_ci	  0x01 from CRT
93141cc406Sopenharmony_ci	  0x80 gamma table 0 (previously downloaded)
94141cc406Sopenharmony_ci	  0x81 gamma table 1 (previously downloaded)
95141cc406Sopenharmony_ci	  0x82 gamma table 2 (previously downloaded)
96141cc406Sopenharmony_ci	  0x83 gamma table 3 (previously downloaded)
97141cc406Sopenharmony_ci   47 = ? (only used by the ISIS driver)
98141cc406Sopenharmony_ci      bit 7 = ? set by the ISIS driver
99141cc406Sopenharmony_ci      bit 6 = length control
100141cc406Sopenharmony_ci      bit 2 = ? set by the ISIS driver
101141cc406Sopenharmony_ci      bit 1 = ? set by the ISIS driver
102141cc406Sopenharmony_ci   48-51 = width (again?, maybe paper size)
103141cc406Sopenharmony_ci   52-55 = length (again?, maybe paper size)
104141cc406Sopenharmony_ci   57 = feeder mode
105141cc406Sopenharmony_ci      0x00 = one page
106141cc406Sopenharmony_ci	  other = number of pages to read (TWAIN driver defaults to 0xff)
107141cc406Sopenharmony_ci   58 = auto threshold
108141cc406Sopenharmony_ci      0x00 = none (twain default)
109141cc406Sopenharmony_ci	  0x80 = mode 1
110141cc406Sopenharmony_ci	  0x81 = mode 2
111141cc406Sopenharmony_ci	  0x82 = mode 3
112141cc406Sopenharmony_ci   59 = automatic separation
113141cc406Sopenharmony_ci	  0x00 = no (twain default)
114141cc406Sopenharmony_ci	  0x80 = yes
115141cc406Sopenharmony_ci   60 = white level
116141cc406Sopenharmony_ci      0x00 = from white stick (twain default)
117141cc406Sopenharmony_ci	  0x80 = from paper
118141cc406Sopenharmony_ci	  0x81 = automatic
119141cc406Sopenharmony_ci   61 = noise reduction
120141cc406Sopenharmony_ci      0x00 = none (twain default)
121141cc406Sopenharmony_ci	  0x01 = 1x1
122141cc406Sopenharmony_ci	  0x02 = 2x2
123141cc406Sopenharmony_ci	  0x03 = 3x3
124141cc406Sopenharmony_ci	  0x04 = 4x4
125141cc406Sopenharmony_ci	  0x05 = 5x5
126141cc406Sopenharmony_ci
127141cc406Sopenharmony_ciREAD:
128141cc406Sopenharmony_ci28 00 80 00 00 00 00 00 10 00
129141cc406Sopenharmony_ci28 00 00 00 00 00 00 80 00 00
130141cc406Sopenharmony_ci   2 = data type code
131141cc406Sopenharmony_ci	  0x00 image data
132141cc406Sopenharmony_ci	    The TWAIN driver always reads 0x8000 bytes at the time, except for
133141cc406Sopenharmony_ci		the last packet where it read the size left plus 2 more bytes (and
134141cc406Sopenharmony_ci		thus generating a check condition).
135141cc406Sopenharmony_ci
136141cc406Sopenharmony_ci        5: page side
137141cc406Sopenharmony_ci		   0x00 = front
138141cc406Sopenharmony_ci		   0x80 = back
139141cc406Sopenharmony_ci
140141cc406Sopenharmony_ci      0x80 image size in dots
141141cc406Sopenharmony_ci         3(?)-4: number of the page to read. Multipage mode.
142141cc406Sopenharmony_ci
143141cc406Sopenharmony_ci         returns 16 bytes:
144141cc406Sopenharmony_ci	       0-3: length in pixels
145141cc406Sopenharmony_ci	       4-7: width in lines
146141cc406Sopenharmony_ci
147141cc406Sopenharmony_ciSEND(10):
148141cc406Sopenharmony_ci  2A 00 03 00 00 01 00 01 0A 00
149141cc406Sopenharmony_ci  2 = data type code
150141cc406Sopenharmony_ci    0x02 = halftone pattern
151141cc406Sopenharmony_ci       data is 10 bytes of header + 64 bytes for the matrix
152141cc406Sopenharmony_ci    0x03 = gamma table
153141cc406Sopenharmony_ci       data is 10 bytes of header + 256 bytes for the table
154141cc406Sopenharmony_ci  5 = gamma table number (data type code is 2)
155141cc406Sopenharmony_ci    the scanner can store 4 gamma tables (from 0 to 3)
156141cc406Sopenharmony_ci  7-8 = length
157141cc406Sopenharmony_ci
158141cc406Sopenharmony_ciSET AREA (?)
159141cc406Sopenharmony_ciC0 00 00 00 00 00 00 00 58 00
160141cc406Sopenharmony_ciTotal message length = 88 bytes
161141cc406Sopenharmony_ci  7     = length -> 0x40 = 64 bytes
162141cc406Sopenharmony_ci  14-17 = area 1 X
163141cc406Sopenharmony_ci  18-21 = area 1 Y
164141cc406Sopenharmony_ci  22-25 = area 1 width
165141cc406Sopenharmony_ci  26-29 = area 1 length
166141cc406Sopenharmony_ci  33    = image composition
167141cc406Sopenharmony_ci            1 = halftone
168141cc406Sopenharmony_ci  36    = haltone pattern (if image composition == 1)
169141cc406Sopenharmony_ci		    0x00 = Bayer 64
170141cc406Sopenharmony_ci			0x01 = Bayer 16
171141cc406Sopenharmony_ci			0x02 = Dot 32
172141cc406Sopenharmony_ci			0x03 = Dot 64
173141cc406Sopenharmony_ci			0x04 = Error diffusion
174141cc406Sopenharmony_ci  50-53 = area 2 X
175141cc406Sopenharmony_ci  54-57 = area 2 Y
176141cc406Sopenharmony_ci  58-61 = area 2 width
177141cc406Sopenharmony_ci  62-65 = area 2 length
178141cc406Sopenharmony_ci  68-71 = area 3 X
179141cc406Sopenharmony_ci  72-75 = area 3 Y
180141cc406Sopenharmony_ci  76-79 = area 3 width
181141cc406Sopenharmony_ci  80-83 = area 3 length
182141cc406Sopenharmony_ci
183141cc406Sopenharmony_ci
184141cc406Sopenharmony_ciOther supported commands:
185141cc406Sopenharmony_ci16 RESERVE UNIT
186141cc406Sopenharmony_ci17 RELEASE UNIT
187141cc406Sopenharmony_ci1D SEND DIAGNOSTIC
188141cc406Sopenharmony_ci31 OBJECT POSITION
189141cc406Sopenharmony_ci3B WRITE BUFFER
190