如何在windows环境下使用pyusb从USB设备获取数据?

2024-09-29 00:15:49 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:你能帮我吗?在

import sys
import usb
import array
class UsbDevice(object):

    def __init__(self, _vend, _prod):
        self._dev = usb.core.find(idVendor=_vend, idProduct=_prod)
        self.device = self.getDevice(_vend, _prod)
        self.handle = None
        if self.device == None:
            print("not find device")
        else:
            self.handle = self.openDevice(self.device)
        print( self.handle)
        print( self.device)
        print(self._dev )


    def getDevice(self, _vend, _prod):
        # get device 
        busses = usb.busses()
        for bus in busses:
            devices = bus.devices
            for device in devices:
                if device.idVendor == _vend and device.idProduct == _prod:
                    return device
        return None

    def openDevice(self, device):
        # open device 
        self.handle = device.open()
        return self.handle

    def write_data(self,ep, sendlist,timeout=100):
        '''write a list to ep'''
        print(self._dev.write(1,startlist,100))

        #print(self.handle.interruptWrite(ep, sendlist, timeout)) #return bytes written


    def read_data(self,ep, size, timeout=100):
        '''read data from ep and return a list'''
        try:
            return self.handle.interruptRead(ep, size, timeout) # return data read
        except:
            return []


if __name__ == '__main__':
    startlist=[0x44]     
    myDevice = UsbDevice(0xAAAA, 0xAA97)
    myDevice.write_data(0x01, startlist,1000)          
    #send 0x44 to ep 01 begin to Transmit data
    while True:
        my_data_list=myDevice.read_data(0x85,100,1000)       #read 
        print(my_data_list)

Tags: importselfreaddatareturndevicedeftimeout