|
From: Graeme G. <gr...@ar...> - 2006-10-18 05:18:13
|
I'm looking at some SnoopyPro output, and (not being terribly
familiar with USB details), struggling to relate the information
it displays with either the USB spec., or the libusb interface.
An example transaction:
URB Header (length: 80)
SequenceNumber: 4
Function: 0019 (VENDOR_ENDPOINT)
PipeHandle: 00000000
SetupPacket:
0000: 00 01 00 00 01 00 00 00
bmRequestType: 00
DIR: Host-To-Device
TYPE: Standard
RECIPIENT: Device
bRequest: 01
CLEAR_FEATURE
No TransferBuffer
Now things like bmRequestType and bRequest are explained directly
in the USB spec., but I can't find any reference to a "Function" code 0x19
called VENDOR_ENDPOINT (or any similar functions, such
as 0x00 SELECT_CONFIGURATION, 0x08 CONTROL_TRANSFER,
0x0b GET_DESCRIPTOR_FROM_DEVICE etc.), nor can I see how one
would trigger such transactions using libusb.
How would I create a VENDOR_ENDPOINT transaction above ?
Can I do this with a call to usb_control_msg() ? If so,
how do I setup for function 0x19, as the arguments to
usb_control_msg() seem to correspond to the bmRequestType
and bRequest fields documented in the USB spec., and
according to the above, have a value of 0x00 and 0x01,
rather than something like 0x42 and 0x01, that might seem
to be the right values for Vendor + Endpoint ? How
would 0x42 relate to function 0x19 ?
If not, what function call is appropriate ?
Any help in pointing me in the right direction would
be much appreciated.
thanks,
Graeme Gill.
|