Quoting Dan Streetman <[EMAIL PROTECTED]>:

> 
> Your emailer is line-wrapping the JNI trace...can you resend as an 
> attachment?

Attached
 
> I just want to verify with the JNI trace that the in-direction buffer is 
> getting submitted before the out-direction buffer.  It looked like, from 
> the JNI trace you sent, that the out-direction buffer was getting sent out 
> before the in-direction buffer.

I'm not sure which is out and which is in-direction in the trace. 

> Remember that creating threads takes time, so if you're doing:
> 
> inThread.start();
> outPipe.syncSubmit(buffer);

Just to elliminate this issue, I put it to sleep for 3 seconds after starting
threads. I think it should be enough time.

With all that in mind, it's quite possible that something is going on in my
kernel that causes it which is why I'd like to run some kind of sniffer if I
knew how.

> chances are the out-direction buffer will ALWAYS get to the device well 
> before the in-direction buffer.  If you're using a seperate Thread 
> to manage the in-direction buffer(s), maybe you should add a 10ms (or 
> more) delay to make sure the in-direction buffer(s) get to the device 
> before submitting the out-direction buffer?
> 
> 
> On Mon, 9 May 2005, Dmitri Kostioukov wrote:
> 
> >Quoting Dan Streetman <[EMAIL PROTECTED]>:
> >
> >> 
> >> I have to assume the device is really not sending the first response you 
> >> are expecting.  Without knowing the device protocol, I have no idea why 
> >> your device would skip that.
> >
> >At first I assumed it was a problem with a device itself. But like I
> mentioned
> >earlier - it happens with 3 different devices by 2 different manufacturers
> with
> >independent communication protocol. I can send pretty much and command and
> even
> >if the command itself is acknowledged by the device, I still do not the the
> very
> >first 8 byte response.
> >
> > 
> >> If you can get a USB bus trace, you could check if the device was actually
> 
> >> sending the first response (and so show that javax.usb is dropping/losing
> 
> >> the response).  However I think it's much more likely the device just 
> >> isn't sending that response.
> >
> >What's the easiest way to do it? I'll try.
> > 
> >> On Mon, 2 May 2005, Dmitri Kostioukov wrote:
> >> 
> >> >Quoting Dan Streetman <[EMAIL PROTECTED]>:
> >> >
> >> >> 
> >> >> 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
> 
> >> >
> >> >I definitely do.
> >> >
> >> >> 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.
> >> >
> >> >What I do is start a separate threat which does nothing but submits the
> >> >in-buffer but just in case it could be the root of the problem, I
> modified
> >> it to
> >> >start multiple threads instead. The problem still exists. The output is
> >> below:
> >> >
> >> >Device found
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Listening
> >> >Out: 8b 0 0 0 0 0 0 0 
> >> >Sent
> >> >In: 0 4 0 0 0 0 0 0 
> >> >Done
> >> >Out: 8b 0 0 0 0 0 0 0 
> >> >Sent
> >> >In: 0 0 3 0 0 1 1 2 
> >> >Done
> >> >In: 0 4 0 0 0 0 0 0 
> >> >Done
> >> >
> >> > 
> >
> 
> -- 
> Dan Streetman
> [EMAIL PROTECTED]
> ---------------------
> 186,272 miles per second:
> It isn't just a good idea, it's the law!
> 


[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/001
[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/002
[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/003
Device found
[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/002
[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
Listening
Listening
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
Listening
Listening
Listening
Listening
Listening
Listening
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.
[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
Sent
Done
In: 0 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
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.
[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
Sent
In: 0 0 d 0 0 1 1 2 
Done
[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
[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

Reply via email to