[libhid-discuss] Still can't interrupt_read() properly

Charles Lepple clepple at ghz.cc
Thu Sep 4 00:29:28 UTC 2008


On Sep 3, 2008, at 10:44 AM, Marian Aldenhoevel wrote:

> I have used "Snoopy Pro" to spy on the conversation with my device  
> while a Windows-Program that uses the device is running. It sends  
> two commands and receives two replies. The full log in Snoopy- 
> Format is attached, excerpts
> from it are made in plain text.

It doesn't look like the full log came through. (Please remember to  
compress it.)

> But now the trouble starts. I cannot get the response. Note that my  
> code first calculates that it will expect Report ID 0x45 for a  
> total of 76 bytes which again matches the windows snoop log:
>
> > [DEBUG]: (V4KU) Expecting 67 bytes of data, handled by report ID  
> 0x45, report should be 76 bytes
> >  TRACE: hid_interrupt_read(): retrieving interrupt report from  
> device 001/007[0] ...
> >WARNING: hid_interrupt_read(): failed to get all of interrupt  
> report from device 001/007[0]; requested: 76 bytes, sent: 0 bytes.
> >2008-09-03 16:22:32 [FATAL]: (libHID) hid_interrupt_read() failed  
> (21: HID_RET_FAIL_INT_READ)

What if you set the USB_DEBUG environment variable to something non- 
zero? Do you get any more debug information about the failed transfer?

> I have experimented with a number of timeout options. Short, long,  
> very long. So I do not think this is because of the time the device  
> needs to process the second command.

What is "very long"? Remember that the timeouts are in milliseconds,  
and transfer time is important here.

Also note that there are seven seconds between these transfers:
>
> >21	??? down	n/a	17.689	BULK_OR_INTERRUPT_TRANSFER	-	
> >URB Header (length: 72)
> >SequenceNumber: 21
> >Function: 0009 (BULK_OR_INTERRUPT_TRANSFER)
> >TransferFlags: 0x00000003
> >
> >No TransferBuffer
> >
> >22	out down	n/a	24.666	CLASS_INTERFACE	02 00 03 43 56 30 00 >00


-- 
Charles Lepple






More information about the libhid-discuss mailing list