On Tue, 17 Apr 2007, John Wojnaroski wrote:

> Hmm,  now I'm puzzled.  Does the byte order actually depict the sequence 
> of the bits sent by the OS?

Yes, although the way in which the order depicts the sequence depends on 
the formatting of the particular message in question.

>  Is this a difference in 
> bigendian/littleendian digits? If so, I goofed, so on to the fix and 
> next step.
> 
> Excerpt from the usbmon.txt  in ../Linux/Documentaton/usb
> <<<<<<<<<<<<<<<<,
> - Setup packet, if present, consists of 5 words: one of each for 
> bmRequestType,
>   bRequest, wValue, wIndex, wLength, as specified by the USB 
> Specification 2.0.
>   These words are safe to decode if Setup Tag was 's'. Otherwise, the setup
>   packet was present, but not captured, and the fields contain filler.
>  >>>>>>>>>>>>>>>>.
> Here is the usbmon report when I set the wValue to 0x0200
> 
> df99e540 2476601557 S Co:002:00 s 21 09 0200 0000 0003 3 = 020202
> df99e540 2476606432 C Co:002:00 0 3 >
> 
> so,  that now matches the URB #9 from the SNoopyPro report under windows;
> 
> bmRequestType = 21
> bRequest = 09;
> wValue = 0x0200
> wIndex = 0x0000
> wLength = 0x0003

As it shoud.  Note that the three word-sized quantities are transmitted in 
little-endian byte order on the USB bus.  That shouldn't matter as far as 
you are concerned, however.

> according to the description cited above.  And with the "s" that would 
> indicate the packet was captured, but still not getting a response from 
> the device.....

What makes you think you should get a response from the device?  Your
usbmon trace doesn't show that you asked for one.  You sent a control-OUT
message with the three bytes 0x02 0x02 0x02, but you didn't submit any IN
transfers.

> Just for completness, here is a series of four frames for each call to 
> the control msg.
> 
> df99e540 2476601557 S Co:002:00 s 21 09 0200 0000 0003 3 = 020202
> df99e540 2476606432 C Co:002:00 0 3 >

That's your control-OUT.

> df99e540 2476606551 S Co:002:00 s 01 0b 0000 0000 0000 0
> df99e540 2476609431 C Co:002:00 0 0

That's the kernel restoring altsetting 0 after your program ended.

> df99e540 2478577426 S Co:002:00 s 00 09 0001 0000 0000 0
> df99e540 2478580115 C Co:002:00 0 0
> df99e540 2478580265 S Co:002:00 s 01 0b 0000 0000 0000 0
> df99e540 2478583113 C Co:002:00 0 0
> df99e540 2478583236 S Co:002:00 s 21 09 0200 0000 0003 3 = 020202

This looks like your program running again, doing a Set-Config and a
Set-Interface and then sending the control-OUT message.

If the device ever did want to send any data back, your program didn't 
give it a chance.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to