Hi Rolf, On Thursday, 17. January 2013 22:49:53 [email protected] wrote: > thanks for your thoughts. Yes, we have our own VID/PID. However, our > software needs to operate multiple devices with the same VID/PID > (multi-threaded). The only difference between the devices is the serial > number, which is unique for each device. We have settings and > configuration data for the devices, which applies to the specific device > (i.e. serial number). Depending on the serial number (i.e. device type) > we boot different FPGA bitstreams. > > Actually I don't think any application could be broken by the patch. If > the device is not found, the code still returns the error. It's just > that right now the search for the device ends if another device that > comes first in the list has already been opened. From my point of view > this is a bug (but one that only happens if you play with multiple > devices from the same process). > > I understand that you don't want to apply any changes before the 1.0 > release. That's fine, I don't use the release code but the git head. But > it would be good if the patch could be applied after the release is out. > Right now we have patched our git clone and are merging on each pull > from upstream.
I've taken a close look at the code in ftdi_usb_open_desc_index(). If I apply your patch in the current form, the -8 and -9 error code will stop to work. This can be a problem if there's a permission issue reading the string descriptors, the function will always return -3: "device not found" instead of -8 or -9. How about using ftdi_usb_find_all() to get a list of all your devices. Then you can try to get the strings via ftdi_usb_get_strings() and if you f.e. get a serial the device is not in use. Would that work? Otherwise we need to come up with a different solution. Thomas -- libftdi - see http://www.intra2net.com/en/developer/libftdi for details. To unsubscribe send a mail to [email protected]
