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