class USB_HID – USB-устройство человеко-машинного интерфейса (HID)¶
Класс USB_HID представляет интерфейс USB Human Interface Device OpenMV Cam. Его можно использовать для эмуляции периферийного устройства, такого как мышь или клавиатура.
Перед созданием объекта USB_HID вызовите pyb.usb_mode() с режимом, включающим HID (например, 'VCP+HID') — это перечисляет класс USB HID на хосте. Дескриптор отчёта, передаваемый в usb_mode, выбирает класс устройства; готовые кортежи доступны как pyb.hid_mouse и pyb.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¶
Отправляет входной HID-отчёт хосту USB.
data— это кортеж/список целых чисел или буфер типаbytes, чья структура зависит от используемого дескриптора отчёта. Для встроенного дескриптора мыши отчёт имеет вид(buttons, dx, dy, wheel); для дескриптора клавиатуры —(modifiers, 0, key1, key2, key3, key4, key5, key6). См.pyb.hid_mouseиpyb.hid_keyboard.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Принимает выходной HID-отчёт от хоста USB (например, состояние светодиодов клавиатуры). Возвращается немедленно, если отчёт уже буферизован.
data— это либоint(число байт для чтения в новый буфер), либо изменяемый буфер для заполнения принятыми байтами.timeout— максимальное время в миллисекундах ожидания отчёта.
Если
data— целое число, возвращается новый объектbytes; иначе возвращается число байт, записанных вdata.