Comment 3 for bug 394297

Revision history for this message
Michael Hofmann (mh21) wrote :

It may be very well hardware related. The current use of libusb is a hack for the interrupt transfers of the gps tracker. Normally, an asynchronous usb interrupt read must be started first, and a command may be sent *afterwards*. Because libusb (version 0.1) supports only synchronous reads and writes, the interrupt read is started right after the command is sent at the moment, which works good enough on most hardware, but may screw up the wire protocol of the gps tracker so that only a disconnect helps.

This could be fixed with a kernel driver or the use of libusb 1.0 (which only works on Linux at the moment, not Mac OS X), but I don't have enough time to implement it at the moment. If you want to have a go at it, take a look at libusbconnection.cpp/h and see whether it can be adopted for libusb 1.0 :-).