Seems that I have a good news...

Several months ago almost finished implementing the backend for
Konica-Minolta devices (BizHub 162/132, DiMage 1611 to name them).
Looking through the sniffs Reinhold and Jean-Marc collected I could
say that the protocol is kind of similar.

Commands I've found:
Start scan                      0x08
Get last error          0x09
Stop scan               0x0a
Get image params        0x0b
Set scan area           0x0c
Get status              0x0d
Read                            0x0e
Get buttons             0x0f
Set button wait         0x10

Basic command structure is:
03 [1  byte] (could be counted as 'signature')
command [1 byte]
argument1 size [4 byte]
argument1 [argument1 size]
...
argumentN size [4 byte]
argumentN [argumentN size]
end-of-record [4 byte] 00 00 00 00

Contents of the commands and arguments are little-endian (host order).
First argument serves also as a return value (if a command has one).

Now the differences:
- those devices I investigated are only black-white machines, also
with fixed size of scan area (scanner accepts no X/Y coordinates, just
an index of a predefined area). I workarounded the fixed area issue by
scanning at a suitable predefined area (implemented) and than cropping
to what frontend requested (not finished).
- device has several endpoints of same type in one interface
descriptor (3 and 5 being OUT, 4 and 6 being IN, uses 5 and 6 for
scanning functions). SANE USB layer ignores them all but first. This
is the reason I didn't submit the backend - didn't finish the USB
layer changes. As I see MagiColor devices have separate
descriptors/configurations for different functions, though.

Since I changed the job I have no access to the machines, thus the
process was freezed.
I could provide the backend sources, looks like it would be suitable
to operate MagiColor devices with some modifications.

Best regards,
-- 
?Ilia Sotnikov

Reply via email to