我正在使用pyusb访问海洋光谱单元并收集数据。以前,我以前曾认为主要访问是通过FTDI芯片,但是在使用Wireshark sniff sniff之后,通过不同Windows计算机上的专有软件发送的命令,它似乎是通过QE65000的0x01和0x82端点。
我模仿了我在Wireshark捕获中发现的批量数据的发送/接收,但是每次尝试阅读端点0x82时,我都会得到以下内容:
usb.core.USBError: [Errno 60] Operation timed out
此外,看上去好像在阅读Wireshark上的端点时,返回的数据包长度为2588字节,而0x82端点列出的最大数据包大小为512个字节。以下是我试图读取端点的代码,并以IN和OUT端点的数组,设备和暂停为参数。
。def read_endpoint(dev, ep, timeout = 7520):
endpoint = ep[1]
data = dev.read(endpoint.bEndpointAddress,endpoint.wMaxPacketSize)
return(data)
Operation timed out
表示您在端点上没有读取任何内容。也许您之前必须为设备写一个命令。例如,对于质量存储设备,您首先在OUT端点上写下命令:
device.write(ep[0], unhexlify(b"555342430f3100006000000080000603000000600000000000000000000000"), timeout=timeout)
然后您阅读答案。
数据包大小定义了交换的数据包的大小,但是,没有任何内容显示设备通过多个数据包发送或接收的命令。