If it's an interrupt pipe then you have to submit your buffer before you 
send the command down.  Interrupt pipes are only polled when you pass a 
buffer to the USB subsystem to use (i.e. to put poll data in).  You need 
to submit several buffers so the USb subsystem always has a buffer to put 
data in, and can thus maintain the spec-required polling interval for 
interrupt endpoints.

So try submitting the in-direction buffer first.  Then send out the 
command, and you should get the expected packet back.  Don't forget to not 
let the USB subsystem run out of in-direction buffers.

On Fri, 29 Apr 2005, Dmitri Kostioukov wrote:

>I've been trying to program x10 usb home automation interface and I always have
>this problem - the first device response is always missing after my program
>starts up. I see the same behavior with 3 different devices from 2 different
>manufacturers. There's no special processing I do for the first response - they
>all follow the same code path. As you can see from the enclosed log, I send out
>the same command (0x8b) but the first response is missing. I can see only the
>second 8 byte response. However the second request produces a correct response.
>Everything else from that point on work fine. It might be something I do
>incorrectly, of course, but I don't think so. Is there any other way to
>troubleshoot it? Here's the trace:
>
>Device found
>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/043
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75]
>Got Request
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[127] Submitting Request.
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[145] Submitting ClaimInterface
>Request.
>[default](3) JavaxUsbInterfaceRequest.c.claim_interface[87] Claiming interface >0
>[default](3) JavaxUsbInterfaceRequest.c.claim_interface[96] Claimed interface 0
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78]
>Completed Request
>Listening
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75]
>Got Request
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[127] Submitting Request.
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[131] Submitting Pipe Request.
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[62] Submitting URB
>[default](2) JavaxUsbKernel.c.setKernelVersion[45] Kernel version string 2.4.30
>parsed as 2.4.30
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[75] Submitted URB
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78]
>Completed Request
>Out: 8b 0 0 0 0 0 0 0 
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75]
>Got Request
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[127] Submitting Request.
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[131] Submitting Pipe Request.
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[62] Submitting URB
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[75] Submitted URB
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78]
>Completed Request
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[91]
>Got completed URB
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[113] Completing URB.
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[126] Completed URB.
>Sent
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[95]
>Finished completed URB
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[91]
>Got completed URB
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[113] Completing URB.
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[126] Completed URB.
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[95]
>Finished completed URB
>In: 0 0 0 0 0 0 0 0 
>Done
>Listening
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75]
>Got Request
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[127] Submitting Request.
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[131] Submitting Pipe Request.
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[62] Submitting URB
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[75] Submitted URB
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78]
>Completed Request
>Out: 8b 0 0 0 0 0 0 0 
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75]
>Got Request
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[127] Submitting Request.
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[131] Submitting Pipe Request.
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[62] Submitting URB
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[75] Submitted URB
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78]
>Completed Request
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[91]
>Got completed URB
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[113] Completing URB.
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[126] Completed URB.
>Sent
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[95]
>Finished completed URB
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[91]
>Got completed URB
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[113] Completing URB.
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[126] Completed URB.
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[95]
>Finished completed URB
>In: 0 0 35 0 0 1 1 2 
>Done
>Listening
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75]
>Got Request
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[127] Submitting Request.
>[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[131] Submitting Pipe Request.
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[62] Submitting URB
>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[75] Submitted URB
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78]
>Completed Request
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[91]
>Got completed URB
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[113] Completing URB.
>[xfer](2) JavaxUsbPipeRequest.c.complete_pipe_request[126] Completed URB.
>[xfer](2)
>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[95]
>Finished completed URB
>In: 0 0 0 0 0 0 0 0 
>Done
>
>
>
>-------------------------------------------------------
>SF.Net email is sponsored by: Tell us your software development plans!
>Take this survey and enter to win a one-year sub to SourceForge.net
>Plus IDC's 2005 look-ahead and a copy of this survey
>Click here to start!  http://www.idcswdc.com/cgi-bin/survey?id=105hix
>_______________________________________________
>javax-usb-devel mailing list
>javax-usb-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/javax-usb-devel
>

-- 
Dan Streetman
[EMAIL PROTECTED]
---------------------
186,272 miles per second:
It isn't just a good idea, it's the law!


-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
javax-usb-devel mailing list
javax-usb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel

Reply via email to