2011/6/10 Safoura <s.seddig...@gmail.com>: > > wander.lairson <wander.lairson@...> writes: > >> >> 2011/3/15 Xiaofan Chen <xiaofanc@...>: >> > On Tue, Mar 15, 2011 at 10:55 PM, Emmanuel Blot <eblot.ml@...> wrote: >> >> I need to detach *all* the interfaces from the (Linux) kernel, or I >> >> sometime get an error (not a big deal for my use case) >> >> I also need to call dev.set_configuration() to configure the device. >> >> Nothing unusual I guess. >> >> >> >> The troubles happen when I need to open two serial ports, that is two >> >> interfaces from the same USB device. >> >> On the second initialization call, when dev.set_configuration() is >> >> called for the second time, the first open interface gets in trouble: >> >> Exception: UsbError: No such device (it may have been disconnected) >> >> It seems set_configuration() cannot be called another time if an >> >> interface is already being actively used. >> >> >> >> I don't know how to avoid calling set_configuration() more that once, >> >> as I don't know how to identify that the USB device has already been >> >> configured. >> >> >> > >> > You can call set_configuration() once and then call claim_interface >> > for each interface. At least this is how libusb works for USB composite >> > device. >> > >> You can do this through util.claim_interface function. >> > > Hi Wander, > > I am trying to communicate with a Lego WeDO device using PyUSB. > Right at the beginning when self.dev.is_kernel_driver_active(0) is called, > I get the error > > File "C:\Users\DevTech\workspace\test1\src\WeDoMore.py", line 14, in __init__ > if self.dev.is_kernel_driver_active(0): > File "C:\Python26\lib\site-packages\usb\core.py", line 687, in > is_kernel_driver_active > return self._ctx.backend.is_kernel_driver_active(self._ctx.handle, > interface) > File "C:\Python26\lib\site-packages\usb\backend\__init__.py", line 355, in > is_kernel_driver_active > _not_implemented(self.is_kernel_driver_active) > File "C:\Python26\lib\site-packages\usb\backend\__init__.py", line 79, in > _not_implemented > raise NotImplementedError(func.__name__) > NotImplementedError: is_kernel_driver_active > These functions are available on all platforms because there are not in libusb. But for Windows, they even make sense, because libusb (either libusb 1.0 or libusb-win32) does need a driver attached to the device in order to work. Thus, I don't think you need to call kernel driver related functions...
Wander ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ pyusb-users mailing list pyusb-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pyusb-users