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