From: Rich v. L. <rhv...@gm...> - 2011-09-21 15:42:22
|
Thanks for confirming that, Alan. I took your suggestion and it seems to be working, BTW. On Wed, Sep 21, 2011 at 10:30 AM, Alan Stern <st...@ro...>wrote: > On Wed, 21 Sep 2011, Rich von Lehe wrote: > > > I saw a thread from an archive where a few WinUSB settings were debated. > I > > *think* this is the right forum to ask this, but forgive me if it's not. > > > > > http://libusb.6.n5.nabble.com/To-understand-the-behavior-of-WinUSB-backend-td510213.html > > > > In that thread it looked like it was decided to always set > > SHORT_PACKET_TERMINATE to false (0). I was just curious if this decision > > was final or if there was any way I could enable that feature in WinUSB > from > > Libusb-1.0. I disagree with the characterization that it is meant to > > support bad or non-compliant devices. In our case, the USB silicon > simply > > provides the segments of the payload as they arrive. The firmware must > see > > a final segment that is less than a full 64-byte segment to determine > > completion. If the overall payload is a multiple of 64 bytes, we need > the > > zero-length packet to indicate completion. > > Currently libusb doesn't support this at all, although there's no > reason it couldn't. It shouldn't be done by setting a WinUSB option, > though; it should be integrated directly into libusb for use on all > operating systems. > > In the meantime, you can always accomplish the same effect by sending > an explicit 0-length packet to your device at the end of each transfer > whose total length is multiple of 64. > > Alan Stern > > |