USB_HID osztály – USB Human Interface Device (HID)

A USB_HID osztály az OpenMV Cam USB Human Interface Device interfészét reprezentálja. Használható perifériák, például egér vagy billentyűzet emulálására.

Egy USB_HID objektum létrehozása előtt hívja meg a pyb.usb_mode() függvényt egy olyan móddal, amely tartalmazza a HID értéket (pl. 'VCP+HID') – ez felsorolja az USB HID osztályt a gazdagépen. A usb_mode függvénynek átadott report descriptor választja ki az eszközosztályt; előre elkészített tuple-ök érhetők el a pyb.hid_mouse és pyb.hid_keyboard formájában.

Példa – egér bal kattintás küldése, majd mozgatása 5 képponttal jobbra:

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

Konstruktorok

class pyb.USB_HID

Létrehoz egy új USB_HID objektumot. Csak egyetlen HID interfész van, így a konstruktor a singleton objektumot adja vissza.

Metódusok

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

HID bemeneti jelentést küld az USB gazdagépnek.

A data egész számok tuple-je/listája vagy egy bytes-szerű puffer, amelynek elrendezése a használt report descriptortól függ. A beépített egér descriptor esetén a jelentés (buttons, dx, dy, wheel); a billentyűzet descriptor esetén (modifiers, 0, key1, key2, key3, key4, key5, key6). Lásd: pyb.hid_mouse és pyb.hid_keyboard.

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

HID kimeneti jelentést fogad az USB gazdagéptől (pl. billentyűzet LED állapota). Azonnal visszatér, ha már van pufferelt jelentés.

  • A data vagy egy int (egy friss pufferbe olvasandó bájtok száma), vagy egy módosítható puffer, amelyet a fogadott bájtokkal kell feltölteni.

  • A timeout a jelentésre való várakozás maximális ideje milliszekundumban.

Ha a data egész szám, egy friss bytes objektum kerül visszaadásra; ellenkező esetben a data pufferbe írt bájtok száma kerül visszaadásra.