python获取usb数据_如何使用Python获取原始的USB键盘数据?

我正在Python中使用PyUSB,因为我将不得不监听USB端口以从电子卡中检索数据.目前,我必须通过读取连接到Raspberry-Pi的小键盘(USB连接)的直接输入来训练自己.当然,我不想读取键入的字符串,例如,我希望获得ASCII码.我只是不知道如何从USB键盘读取输入.我已经找到了一些片段:import usb.coreimport usb.utilVENDOR_ID = 0x0922PR...
摘要由CSDN通过智能技术生成

我正在Python中使用PyUSB,因为我将不得不监听USB端口以从电子卡中检索数据.目前,我必须通过读取连接到Raspberry-Pi的小键盘(USB连接)的直接输入来训练自己.当然,我不想读取键入的字符串,例如,我希望获得ASCII码.我只是不知道如何从USB键盘读取输入.

我已经找到了一些片段:

import usb.core

import usb.util

VENDOR_ID = 0x0922

PRODUCT_ID = 0x8003

# find the USB device

device = usb.core.find(idVendor=VENDOR_ID,

idProduct=PRODUCT_ID)

# use the first/default configuration

device.set_configuration()

# first endpoint

endpoint = device[0][(0,0)][0]

# read a data packet

attempts = 10

data = None

while data is None and attempts > 0:

try:

data = device.read(endpoint.bEndpointAddress,

endpoint.wMaxPacketSize)

except usb.core.USBError as e:

data = None

if e.args == ('Operation timed out',):

attempts -= 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以通过hidapi库来实现USB HID设备的读写操作。首先需要安装hidapi库,可以通过pip命令来安装: ``` pip install hidapi ``` 然后可以使用hidapi库中的hid.device类来打开和读写设备。下面是一个简单的示例代码,用于读取一个USB HID设备的输入报告: ``` python import hid # 打开设备 device = hid.device() device.open(0x1234, 0x5678) # 发送读取报告的命令 command = [0x01, 0x02, 0x03] device.write(command) # 读取输入报告 report = device.read(64) print(report) # 关闭设备 device.close() ``` 在上面的代码中,`open`方法用于打开设备,参数为设备的vendor id和product id。`write`方法用于向设备发送命令,参数为一个字节数组。`read`方法用于读取设备的输入报告,参数为读取的最大字节数。在读取输入报告时,如果设备没有输入报告,该方法会阻塞等待,直到有输入报告为止。 需要注意的是,不同的USB HID设备的输入报告格式可能不同,需要根据具体的设备协议来解析输入报告。 ### 回答2: Python支持通过USB HID(人机界面设备)进行通信。HID是一种通信协议,用于连接计算机和外部的输入设备,如键盘、鼠标、游戏手柄等。 在Python中,可以使用第三方库PyUSB来实现与USB HID设备的交互。该库提供了一组功能,用于在Python中访问和控制USB设备。 首先,我们需要安装PyUSB库。可以使用pip命令在命令行中安装: ``` pip install pyusb ``` 一旦安装完成,就可以在Python脚本中导入并使用该库来与USB HID设备进行通信。 首先,我们需要找到所连接的USB设备的设备号。可以使用PyUSB提供的功能来获取设备列表和设备信息。然后,可以选择我们想要与之通信的设备,并打开它。 接下来,可以使用读取和写入函数来进行与USB HID设备的通信。PyUSB提供了`ctrl_transfer`函数,用于发送控制传输命令。此外,还可以使用`write`函数来发送数据,并使用`read`函数来接收数据。 需要注意的是,与USB HID设备进行通信需要具有相应的权限。在某些操作系统中,可能需要以管理员或超级用户的身份运行Python脚本。 总结起来,通过PyUSB库,我们可以在Python中实现与USB HID设备的通信。这让我们能够控制和交互各种外部输入设备,从而在我们的程序中添加更多的功能和交互性。 ### 回答3: Python USB HID是一个用于与USB HID设备进行通信的Python库。HID代表Human Interface Device,意为人机界面设备,例如键盘、鼠标和游戏控制器等。 使用Python USB HID,我们可以从Python程序中读取和写入HID设备的数据。它提供了简单易用的API,使我们能够轻松地与HID设备进行交互。 首先,我们需要安装Python USB HID库。可以通过pip命令来安装,例如: ``` pip install pyusb ``` 安装完成后,我们可以引入相关的模块并创建HID设备对象。然后,我们可以使用该对象来读取和写入数据。 例如,如果我们要读取设备的数据,可以使用`read()`方法来读取指定长度的数据。示例代码如下: ```python import usb.core import usb.util device = usb.core.find(idVendor=vendor_id, idProduct=product_id) # 根据设备的vendor id和product id查找设备 endpoint = device[0].bEndpointAddress # 获取设备的读取端点地址 device.reset() # 重置设备 device.set_configuration() # 设置设备配置 data = device.read(endpoint, size) # 读取指定长度的数据 ``` 类似地,如果我们要向设备写入数据,可以使用`write()`方法来写入指定的数据。示例代码如下: ```python import usb.core import usb.util device = usb.core.find(idVendor=vendor_id, idProduct=product_id) # 根据设备的vendor id和product id查找设备 endpoint = device[0].bEndpointAddress # 获取设备的写入端点地址 device.reset() # 重置设备 device.set_configuration() # 设置设备配置 data = bytearray([0x01, 0x02, 0x03]) # 要写入的数据 device.write(endpoint, data) # 写入数据 ``` 总之,Python USB HID库使得与USB HID设备的通信变得简单而直观。我们可以使用它来读取和写入HID设备的数据,以实现与设备之间的交互和控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值