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.