On Jun 22, 2007, at 8:00 AM, Jorgen Lundman wrote: > Or perhaps I do not need the Usage Path.. if the code I am porting has > the calls like: > > ret=usb_control_msg(dev_h,USB_MSG_OUT, > 0x9,0x200,0x03,PACKET,length,TIME_OUT); > and > ret=usb_interrupt_read(dev_h,0x00000081,data,URB_LENGTH,TIME_OUT); > > > I would need to replace these calls with a libhid equivalent. It would > seem to me that the latter should be compatible with; > > ret=hid_interrupt_read(hid,0x00000081,data,URB_LENGTH,TIME_OUT);
That looks about right. Since the only "backend" to libhid is libusb (at the moment), it's just a thin layer on top - not much translation of parameters, as you can see in the code (src/hid_exchange.c). > But what do I do about usb_control_msg() ? I tried doing something > naughty like: > > ret=usb_control_msg(hid->dev_handle,USB_MSG_OUT, > 0x9,0x200,0x03,PACKET,length,TIME_OUT); > > Which claims to send 16 bytes (length is 16), but the > hid_interrupt_read() always return -22. And I'm not sure the device is > entirely happy afterwards (had to powercycle the device at least once) Not sure what to tell you here. (BTW, you can use hid_strerror() to map the return code to a real error message - beats counting lines in hid.h) Can you generate any debug output on a platform where the code you're porting actually runs properly? There's a new USB trace feature in recent Linux kernels, if you can get the device to a Linux box. -- Charles Lepple _______________________________________________ libhid-discuss mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/libhid-discuss

