通过USB发送数据有四种不同的方式:控制,中断,批量和同步 . book ref 1从书籍book ref 1第330页:

...批量 endpoints 传输大量数据 . 这些 endpoints 通常要大得多(它们可以同时容纳更多字符)中断 endpoints . ...

当我得到我的 endpoints 输入时,我使用以下命令 .

import usb.core
import usb.util
dev = usb.core.find(idVendor=0x0683, idProduct=0x4108)

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

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

epi = usb.util.find_descriptor(
                              intf,
                              # match the first IN endpoint
                              custom_match = \
                              lambda e: \
                              usb.util.endpoint_direction(e.bEndpointAddress) ==\
                              usb.util.ENDPOINT_IN)

我试图添加,但它给我一个我不完全理解的sytax错误:

usb.util.endpoint_type()== \
                              usb.util.ENDPOINT_TYPE_BULK

这是关于如何使用USB的另一个非常好的来源link 1

似乎usb endpoints 具有可以在python中指定的参数

其中bEndpointAddress指示此描述符描述的 endpoints .

bmAttributes 指定传输类型 . 这可以是控制,中断,同步或批量传输 . 如果指定了等时 endpoints ,则可以选择其他属性,例如同步和使用类型 .

wMaxPacketSize 表示此 endpoints 的最大有效负载大小 .

bInterval 用于指定某些传输的轮询间隔 . 单位以帧表示,因此对于低速/全速设备而言均为1ms,对于高速设备则为125us .

我试过了:

epi.wMaxPacketSize = 72000000 #to make the buffer large
epi.bmAttributes = 3 # 3 = 10 in binary. to change the mode to bulk

我的问题是:

我在哪里指定我用于Windows和(或)Linux的 endpoints 类型以及如何执行此操作?以及如何更改每个 endpoints 上的缓冲区大小?