class USB_HID -- USB 人机接口设备 (HID)

USB_HID 类表示 OpenMV Cam 的 USB 人机接口设备接口。它可用于模拟诸如鼠标或键盘之类的外设。

在构造 USB_HID 对象之前,请使用包含 HID 的模式(例如 'VCP+HID')调用 pyb.usb_mode() —— 这会在主机上枚举 USB HID 类。传递给 usb_mode 的报告描述符决定了设备类别;可用的预构建元组有 pyb.hid_mousepyb.hid_keyboard

示例 —— 发送一次鼠标左键单击,然后将其向右移动 5 像素::

import pyb

pyb.usb_mode("VCP+HID", hid=pyb.hid_mouse)
hid = pyb.USB_HID()

# report layout: (buttons, dx, dy, wheel)
hid.send((1, 0, 0, 0))   # press left button
hid.send((0, 0, 0, 0))   # release
hid.send((0, 5, 0, 0))   # move +5 in X

构造函数

class pyb.USB_HID

创建一个新的 USB_HID 对象。HID 接口只有一个,因此构造函数返回单例对象。

方法

send(data: Tuple[int, ...] | List[int] | bytes | bytearray) None

向 USB 主机发送一个 HID 输入报告。

data 是一个整数元组/列表,或一个类 bytes 缓冲区,其布局取决于所使用的报告描述符。对于内置的鼠标描述符,报告为 (buttons, dx, dy, wheel);对于键盘描述符,则为 (modifiers, 0, key1, key2, key3, key4, key5, key6)。请参阅 pyb.hid_mousepyb.hid_keyboard

recv(data: int | bytearray, *, timeout: int = 5000) bytes | int

从 USB 主机接收一个 HID 输出报告(例如键盘 LED 状态)。如果已有缓冲的报告,则立即返回。

  • data 可以是一个 int(要读入新缓冲区的字节数),也可以是一个用于填充接收字节的可变缓冲区。

  • timeout 是等待报告的最长时间,单位为毫秒。

如果 data 是整数,则返回一个新的 bytes 对象;否则返回写入 data 的字节数。