читать данные с помощью pyusb - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть цифровой штангенциркуль и я хочу получить выходные данные через usb, но пока безрезультатно

Вот что я пробовал:

после чтения документов pyusb Мне нужно использовать функцию read() для данных этого типа.

, поэтому мне нужно сначала найти правильный адрес конечной точки


import usb.core
import usb.util

dev = usb.core.find(idVendor=0x0403, idProduct=0x6001)

ENDPOINT 0x81: Bulk IN ===============================

       bEndpointAddress :   0x81 IN # Endpoint in

       wMaxPacketSize   :   0x40 (64 bytes)


Второй параметр - полезная нагрузка данных (запись ) или количество байтов для чтения (чтения) Я не уверен, но я предполагаю, что его wMaxPacketSize : 0x40 (64 bytes)

для аргумента времени ожидания, я использую свойство Device.default_timeout в качестве времени ожидания операции.

поэтому я написал al oop чтобы дождаться получения данных

import usb.core
import usb.util




dev = usb.core.find(idVendor=0x0403, idProduct=0x6001)

while True:
    ret = dev.read(0x81, 0x44 )
    print(ret)


и получил raise USBError(_strerror(ret), ret, _libusb_errno[ret]) usb.core.USBError: [Errno 10060] Operation timed out

Чего мне здесь не хватает?


Полное описание устройства

DEVICE ID 0403:6001 on Bus 001 Address 007 =================
 bLength                :   0x12 (18 bytes)
 bDescriptorType        :    0x1 Device
 bcdUSB                 :  0x200 USB 2.0
 bDeviceClass           :    0x0 Specified at interface
 bDeviceSubClass        :    0x0
 bDeviceProtocol        :    0x0
 bMaxPacketSize0        :    0x8 (8 bytes)
 idVendor               : 0x0403
 idProduct              : 0x6001
 bcdDevice              :  0x400 Device 4.0
 iManufacturer          :    0x1 MAHR
 iProduct               :    0x2 16EXu
 iSerialNumber          :    0x3 MAO74LCR
 bNumConfigurations     :    0x1
  CONFIGURATION 1: 44 mA ===================================
   bLength              :    0x9 (9 bytes)
   bDescriptorType      :    0x2 Configuration
   wTotalLength         :   0x20 (32 bytes)
   bNumInterfaces       :    0x1
   bConfigurationValue  :    0x1
   iConfiguration       :    0x0 
   bmAttributes         :   0xa0 Bus Powered, Remote Wakeup
   bMaxPower            :   0x16 (44 mA)
    INTERFACE 0: Vendor Specific ===========================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x0
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x2
     bInterfaceClass    :   0xff Vendor Specific
     bInterfaceSubClass :   0xff
     bInterfaceProtocol :   0xff
     iInterface         :    0x2 16EXu
      ENDPOINT 0x81: Bulk IN ===============================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x81 IN
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x0
      ENDPOINT 0x2: Bulk OUT ===============================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :    0x2 OUT
       bmAttributes     :    0x2 Bulk
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x0

...