Daniel Ribeiro wrote:
> > > On USB identifying device instances is not an issue, even without
> > > iSerial: Bus/Device numbers are unique.
> > The serial number is the correct way to distinguish two identical USB
> > devices per spec. Everything else is a workaround for broken devices.
> Sure, but the point here is to distinguish two _connected_ USB devices,
> i don't really need to distinguish two _physical_ devices.
The serial number is what tells which is which. I would use it.
> I can see the portability benefit of using a libusb-only approach, but
> it would also make it a lot harder to reuse the plugin/driver code for
> real-serial connected devices using the same serial protocol.
Maybe there could be an extra function that takes care of actual IO,
so that it doesn't matter if the serial protocol goes over actual
serial or bulk transfers.
> Anyway, I will not implement userspace libusb logic for cm210x's
> usbserial hardware specifics, its not that small and easy...
It is quite easy, but that is your choice.
> Its already implemented on kernelspace for most platforms and
> rewriting it for libusb seems a waste of resources.
The point is again that it makes for nice plug and play on all
systems but Windows. As we discussed on IRC, the SiLabs serial port
driver is used on Windows, and in order to go from there to libusb
the kernel driver would need to be replaced. This can be done
automatically using http://libusb.org/wiki/libwdi but then the driver
would need to be switched back again to use the original application.
That doesn't make much sense, another solution would be much better.
> If you know an open source project that has such 'cm210x libusb'
> implementation that i can easily copynpaste, please tell me! ;)
Would use bulk transfers to send data. One function call. May need to
look a little at the kernel driver, or the device datasheet, to craft
the control transfer that sets correct port mode and speed.