From: bob 2. <ica...@29...> - 2012-04-13 15:24:01
|
I'm still very much a USB/libusb-1.0 newbie. I've been trying to teach myself the libusb-1.0 library against a Phidgets SBC board. This board comes with libusb-0.1 source code, albeit a tad difficult to follow. The relevant libusb-0.1 call I'm trying to emulate in async libusb-1.0 is: ========= begin Phidget lib snip ============= BytesWritten = usb_control_msg((usb_dev_handle *)phid->deviceHandle, USB_ENDPOINT_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, USB_REQ_SET_CONFIGURATION, 0x0200, /* value */ phid->deviceDef->pdd_iid, /* index*/ (char *)buffer, phid->outputReportByteLength, /* size */ 500); /* FIXME? timeout */ =========== end Phidget lib snip =========== Recently I tried programming an async control transfer message by adding some modifications to the dpfp.c example (documented at http://www.icanprogram.com/opndrs/phidgets/2012Apr13.html). The relevant code is: ========== begin my dpfp.c snip ============= libusb_fill_control_setup(ctrlbuf, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_INTERFACE, 0x09, 0x0200, 0, 6); ctrlbuf[8]=0x1; printf("go2: ctrlbuf0-7]=0x%X-%X-%X-%X-%X-%X-%X-%X\n", ctrlbuf[0], ctrlbuf[1], ctrlbuf[2], ctrlbuf[3], ctrlbuf[4], ctrlbuf[5], ctrlbuf[6], ctrlbuf[7]); printf("go3: ctrlbuf[8-15]=0x%X-%X-%X-%X-%X-%X-%X-%X\n", ctrlbuf[8], ctrlbuf[9], ctrlbuf[10], ctrlbuf[11], ctrlbuf[12], ctrlbuf[13], ctrlbuf[14], ctrlbuf[15]); libusb_fill_control_transfer(ctrl_transfer, devh, ctrlbuf, cb_ctrl, NULL, 0); ========== end my dpfp.c snip ============== What does it mean when the control transfer returns a LIBUSB_TRANSFER_STALL? Thanks in advance for your help. bob |