2010/8/7 Poul-Henning Kamp <p...@phk.freebsd.dk>:
>
> Relative to:
>        URL: http://pyusb.svn.sourceforge.net/svnroot/pyusb/trunk
>        Repository Root: http://pyusb.svn.sourceforge.net/svnroot/pyusb
>        Repository UUID: 3043e840-054b-0410-bc1a-858b58f158f7
>        Revision: 70
>
> I am hacking around with a USBTMC device and came up with this code:
>
>        import usb.core
>        import usb.util
>
>        def is_usbtmc(dev):
>                if dev.bDeviceClass != 0:
>                    return False
>                if dev.bDeviceSubClass != 0:
>                    return False
>                if dev.bDeviceProtocol != 0:
>                    return False
>                for cfg in dev:
>                        # XXX: help(usb.core.find) lacks "usb." pfx
>                        x = usb.util.find_descriptor(cfg, bInterfaceClass=0xfe)
>                        if x != None:
>                                return True
>                return False
>
>        for i in usb.core.find(custom_match=is_usbtmc):

You are supposed to iterator over a return value of find only when you pass
the find_all=True argument. Didn't it cause en error?

>                # XXX: Returns configuration
>                if isinstance(i, usb.core.Configuration):
>                        print("GOT CONFIG")
>                print("  ")
>                print(i)
>
> But I find that usb.core.find returns a Configuration instead of
> a Device in this case.
>
> The first XXX comment is fixed in this little patch, along with
> a typo in a URL.

Patches applied. Thank you.

>
> Poul-Henning
>
> Index: usb/core.py
> ===================================================================
> --- usb/core.py (revision 70)
> +++ usb/core.py (working copy)
> @@ -766,7 +766,7 @@
>         if dev.bDeviceClass == 7:
>             return True
>         for cfg in dev:
> -            if util.find_descriptor(cfg, bInterfaceClass=7) is not None:
> +            if usb.util.find_descriptor(cfg, bInterfaceClass=7) is not None:
>                 return True
>
>     printers = find(find_all=True, custom_match = is_printer)
> Index: README
> ===================================================================
> --- README      (revision 70)
> +++ README      (working copy)
> @@ -15,7 +15,7 @@
>  As with most Python modules, PyUSB's documentation is based on Python
>  doc strings and can therefore be manipulated by tools such as pydoc.
>
> -You can also find a tutorial at: 
> http://pyusb.sourceforge.net/docs/1.0/tutotial.html.
> +You can also find a tutorial at: 
> http://pyusb.sourceforge.net/docs/1.0/tutorial.html.
>
>  PyUSB is being developed and tested in Linux and Windows, but it should work
>  fine in any platform running Python >= 2.3, ctypes and at least one of the
>
>
> --
> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> p...@freebsd.org         | TCP/IP since RFC 956
> FreeBSD committer       | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.
>



-- 
Best Regards,
Wander Lairson Costa

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
pyusb-users mailing list
pyusb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyusb-users

Reply via email to