Как я могу улучшить скорость чтения pyusb? - PullRequest
0 голосов
/ 29 января 2019

Я использую python3.7 pyusb1.0.2 и libusb-win32-devel-filter-1.2.6.0 в Windows 10.
Моя ПЛИС отправляет данные на мой компьютер со скоростью 10 МБ / с через интерфейс USB после получения 0x1111.Это длится десять секунд.Я обнаружил, что моя программа на Python может принимать часть данных, около 4 МБ.Вот код:

import usb.core
import usb.util

filename = r'E:\FlowFluorescence\1.mywork\experiment\data\201901290000.txt'
file = open(filename,'wb')

dev = usb.core.find(idVendor=0x04b4, idProduct=0x00f1)

if dev is None:
   raise ValueError('Device not found')

dev.set_configuration()

cfg = dev.get_active_configuration()
intf = cfg[(0,0)]

data = b''
dev.write(0x02, b'\x11\x11')

while True:
     try:
        data = data + dev.read(0x86,512,100)
    except usb.core.USBError:
        break

file.write(data)
file.close()

Как улучшить скорость чтения pyusb?Мне нужно по крайней мере 10 МБ / с.Надеюсь на ваш ответ.

1 Ответ

0 голосов
/ 29 января 2019

Я обнаружил, что этот способ быстрее.

while True:
    try:
        #data = data + dev.read(0x86,512,100)
        data = dev.read(0x86,512,100)
        file.write(data)
    except usb.core.USBError:
        break

Таким образом, он наконец-то прочитал 28 МБ.

...