From: Tim R. <ti...@pr...> - 2009-07-06 19:15:56
|
Nuno Santos wrote: > Today I was doing some experiments on control transfers with libusb. I > was setting a custom request to process on the device side, > and then invoking a control transfer on the host side to activate that > request. > > I was getting pipe error on the transaction. > > My device is only composed by a unique custom endpoint but I was > assuming the use of the default control endpoint. > > Why could this not be working? What can possibly be the most direct > cause? > What exactly was the request you were trying? One of the bit fields in the request code (in bmRequestType) says whether the request is aimed at the device, the interface, the endpoint, or "other". If you pick "interface" or "endpoint", then you must have claimed the interface number that is specified in the request. This trips up some people, because the Windows kernel does not enforce this. The Linux kernel does. However, I think that reports an EACCESS error, so I could be blowing smoke. How large was the transfer? Control transfers are quite limited in size. -- Tim Roberts, ti...@pr... Providenza & Boekelheide, Inc. |