2012/2/10 Lance R. Vick <la...@lrvick.net>:
> Good call on checking the interfaces more carefully. It turns out interface
> 0 is not being used at all and I updated the c accordingly.
>
> For clarity I simplified and combined all the c into one file. I verified it
> compiles and that the binary dumps temperature from my device properly after
> multiple disconnects/reconnects:
>
> http://pastie.org/3354572
>
>
> From learning that only interface 1 is used I updated the python as follows:
>
> ------------------
>
> import usb.core
>
> dev = usb.core.find(idVendor=0x0c45,idProduct=0x7401)
>
> if dev.is_kernel_driver_active(1):
>     dev.detach_kernel_driver(1)
>
> dev.set_configuration()
>
> request = ''.join([chr(x) for x in
> [0x01,0x80,0x33,0x01,0x00,0x00,0x00,0x00]])
>
> dev.ctrl_transfer(0x21,9,0x200,0x1,request,8)
>
> ret = dev.read(0x82,8,1,500)
>
> print(ret)
>
> ------------------
>
> I now get a Resource Busy error:
>
> ------------------
>
>
> Traceback (most recent call last):
>   File "temper1.py", line 9, in <module>
>     dev.set_configuration()
>   File
> "/home/lrvick/.virtualenvs/temper1/lib/python3.2/site-packages/usb/core.py",
> line 530, in set_configuration
>     self._ctx.managed_set_configuration(self, configuration)
>   File
> "/home/lrvick/.virtualenvs/temper1/lib/python3.2/site-packages/usb/core.py",
> line 92, in managed_set_configuration
>     self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
>   File
> "/home/lrvick/.virtualenvs/temper1/lib/python3.2/site-packages/usb/_debug.py",
> line 52, in do_trace
>     return f(*args, **named_args)
>   File
> "/home/lrvick/.virtualenvs/temper1/lib/python3.2/site-packages/usb/backend/libusb10.py",
> line 455, in set_configuration
>     _check(_lib.libusb_set_configuration(dev_handle, config_value))
>   File
> "/home/lrvick/.virtualenvs/temper1/lib/python3.2/site-packages/usb/backend/libusb10.py",
> line 357, in _check
>     raise USBError(_str_error[retval.value])
> usb.core.USBError: Resource busy
>
> -------------------
>

Altough you are not using interface 0, you should detach it in order
to the kernel driver to get unloaded.

-- 
Best Regards,
Wander Lairson Costa

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
pyusb-users mailing list
pyusb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyusb-users

Reply via email to