我有一个声音计(SLM-25),我想接收使用 Python 生成声音(分贝)到 RaspberryPi 的数据。
我已经通过 USB 将声音计与 RaspberryPi 连接并接收设备的主要信息,但我无法接收设备跟踪的声音(分贝)数据。
特别是我使用了以下脚本,但是当我尝试使用时失败了: ctrl_transfer of PyUSB。
#!/usr/bin/python
import sys
import usb.core
import requests
import time
dev=usb.core.find(idVendor=0x10C4,idProduct=0x82CD)
print (dev)
结果是:
DEVICE ID 10c4:82cd on Bus 001 Address 005 =================
bLength : 0x12 (18 bytes)
bDescriptorType : 0x1 Device
bcdUSB : 0x110 USB 1.1
bDeviceClass : 0x0 Specified at interface
bDeviceSubClass : 0x0
bDeviceProtocol : 0x0
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x10c4
idProduct : 0x82cd
bcdDevice : 0x0 Device 0.0
iManufacturer : 0x1 Error Accessing String
iProduct : 0x2 Error Accessing String
iSerialNumber : 0x0
bNumConfigurations : 0x1
CONFIGURATION 1: 64 mA ===================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x2 Configuration
wTotalLength : 0x29 (41 bytes)
bNumInterfaces : 0x1
bConfigurationValue : 0x1
iConfiguration : 0x0
bmAttributes : 0x80 Bus Powered
bMaxPower : 0x20 (64 mA)
INTERFACE 0: Human Interface Device ====================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x0
bAlternateSetting : 0x0
bNumEndpoints : 0x2
bInterfaceClass : 0x3 Human Interface Device
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x0
ENDPOINT 0x81: Interrupt IN ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x81 IN
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0xa
ENDPOINT 0x1: Interrupt OUT ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x1 OUT
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0xa
我尝试了以下(有很多组合),但我未能获取数据:
for bRequest in range(255):
try:
ret = dev.ctrl_transfer(0x40, bRequest, 0, 0, 2)
print (ret)
我必须做什么才能接收分贝计的数据?