>> That's the problem. The supposedly synchronous function calls each return >> success >> as I call them in order: OUT 1KB, IN 16B, OUT 1KB, IN 16B >> But the bus trace shows: OUT 2KB, IN 16B, IN 16B >> This is the case even if I add a 5 second delay after each call to >> libusb_bulk_transfer. >> > > Which bus analyser are you using? Can you expand the transfers and see > the timing of individual packets for that transfer? > > If the host isn't sending a ZLP then the bus analyser (or it's software) > might be grouping all 4 out data packets into the same transfer as it > has no way of knowing that they were separate transfers. > > Regards, > > Toby
OK, I feel better, stupid, but better... I'm using Ellisys Visual USB, I had transfer grouping turned on in the trace display. I assumed they would still be in chronological order. Looking closer at the packet times, I get: OUT 512B OUT 512B IN 16B OUT 512B OUT 512B IN 16B Just as I sent them in my test code. So the out-of-order mystery is solved because they aren't actually out-of-order. Now I just need to figure out how to inject a ZLP so my device will recognize the transfers as complete. Any advice on how to proceed? ~QSE ------------------------------------------------------------------------------ Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with <2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel