felHR85 / WinUsbPy

A python wrapper over WinUsb library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python 3.6 cannot import WinUsbPy module

zolinux opened this issue · comments

  • in File winusbpy.py line 12 the letter 'L' in the GUID throws exception.
  • in the same file the indentation rules are violated from line 176.

these two issues make it not importable in the source code. Please fix it. I uploaded my corrected version as attachment.
winusbpy.txt

However the API seems not to work for me, because it does not find any of my USB devices which I can have access in C++ using the WinUsbApi.

I ran into the same issue, needing to fix indentation and the GUID size.

Furthermore, the api is not finding my USB devices either - I get an invalid handle when trying to invoke SetupDiGetClassDevs and SetupDiEnumDeviceInterfaces.

This fork
https://github.com/Vlastbia/WinUsbPy
are working in python 3, but

  1. not in python x64 (?)
  2. perhaps some code should be improved:

in winusbutils.py

def is_device(vid, pid, path):
#example: vid, pid = "VID_13AB","PID_0050" #strings to find in path.upper()
    path = path.upper()
    return path.find(vid) != -1 and path.find(pid) != -1

in winusbpy.py

    def read(self, pipe_id, length_buffer):
        read_buffer = create_string_buffer(length_buffer)
        bytes_read = c_ulong(0)
        result = self.api.exec_function_winusb(WinUsb_ReadPipe, self.handle_winusb, 
            c_ubyte(pipe_id), read_buffer, c_ulong(length_buffer), byref(bytes_read), None)
        if result != 0:
            return read_buffer[:bytes_read.value]
        else:
            return None