From: Tim R. <ti...@pr...> - 2008-07-23 16:49:27
|
seeism wrote: > Error I am getting is " error sending control message: Broken pipe " > > Also the return value is -32 . > > ret =usb_control_msg(usb_handle, > 0x80, 0x06,0x0001,0x0000,Buffer,64, 5000); > This is my code.I am expecting the value from device in Buffer.That logic is > correct right. "EPIPE" from the USB driver means the pipe is stalled. That can happen if you give it a bad command, or a command at an unexpected time, or a command it does not support, etc. > I am sending the std requests of GET_DESCRIPTOR and the > parameter values got from vendor. > Ah, I didn't examine the command codes to see what you were doing. Yes, this is an illegal request. The 4th parameter (0x0001, the wValue parameter) says you are trying to fetch descriptor type 0, number 1. There is no descriptor type 0. That will cause a stalled pipe. Which descriptor are you trying to get? There are other libusb APIs that can return the device and configuration descriptors to you in a format that has already been converted to friendly C structures. You should never have to use usb_control_msg to fetch a descriptor. -- Tim Roberts, ti...@pr... Providenza & Boekelheide, Inc. |