Simon Heywood wrote:
>
> Having had a poke around with the USB-sniffer program (the latest version
> of which was broken :-( ) I managed to produce the output -
>
> http://www.warwick.ac.uk/~phucq/scanner/usb-init.txt
I'm no expert however I have been working with a device that uses
control transfers so that is all that I can help with.
00000038 00:22:22 >>>>>>> URB 29 going down...
00000039 00:22:22 -- URB_FUNCTION_CLASS_OTHER:
00000040 00:22:22 TransferFlags =
00000003 (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
00000041 00:22:22 TransferBufferLength =
00000004
00000042 00:22:22 TransferBuffer =
c178d490
00000043 00:22:22 TransferBufferMDL =
00000000
00000044 00:22:22 UrbLink =
00000000
00000045 00:22:22 RequestTypeReservedBits = a3
00000046 00:22:22 Request = 00
00000047 00:22:22 Value =
0000
00000048 00:22:22 Index =
0001
00000049 00:22:22
00000050 00:22:22 <<<<<<< URB 29 coming back...
00000051 00:22:22 --
URB_FUNCTION_CONTROL_TRANSFER:
00000052 00:22:22 PipeHandle =
c17af49c
00000053 00:22:22 TransferFlags = 00000003
(USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
00000054 00:22:22 TransferBufferLength =
00000004
00000055 00:22:22 TransferBuffer =
c178d490
00000056 00:22:22 TransferBufferMDL =
c179ed40
00000057 00:22:22 0000:
00000058 00:22:22 01 01 01 00
00000059 00:22:22 UrbLink =
00000000
00000060 00:22:22 SetupPacket : a3 00 00
00 01 00 04 00
The last line contains the setup packet and is described on page
183 of the USB 1.1 spec. In the originating URB this information
has already been decoded for you by usbsnoopy.
> - but unfortunately I'm not too clued up on USB programming; the
> documentation at www.usb.org isn't exactly in plain English.
>
> Please could someone enlighten me as to how to go about deciphering this
> output (produced when I plugged the scanner in under Win98) and reproduce
> the effect under Linux (possibly as some variant of Vladimir's ct.c code.
We have some perl scripts that can extract relevant info from the
logs. The scripts are specific to the Microtek Scanmaker 3600
would proabably provide you with a good starting point.
Have a look at http://sm3600.sourceforge.net for some backgound
info and get the microtek3600.tar.gz tarball from
http://privat.schlund.de/eichholz (it will also be in CVS on
sourceforge soon, this weekend maybe).
There is also a modifed version of usbsnoopy that does not log the
bulk transfer buffer. We found that the debugview program couldn't
keep up with the messages and we were losing important parts of
the logs. I'm not sure if it is available for downloaded yet but
mail me if you want it.
As for reproducing the ouptut, if you are using Linux, there is a
tool called usb-robot available from sourceforge. It can replay
some snoopy logs using libusb, it didn't work for the scanmaker
3600 but provided a good starting point and is an example of how
to use libusb.
HTH
g
-- Glenn Ramsey glenn@componic.com-- Source code, list archive, and docs: http://www.mostang.com/sane/ To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com
This archive was generated by hypermail 2b29 : Fri Mar 23 2001 - 13:36:57 PST