třída USB_HID – USB Human Interface Device (HID)

Třída USB_HID představuje rozhraní USB Human Interface Device kamery OpenMV Cam. Lze ji použít k emulaci periferie, jako je myš nebo klávesnice.

Před vytvořením objektu USB_HID zavolejte pyb.usb_mode() s režimem, který zahrnuje HID (např. 'VCP+HID') – tím se na hostiteli vyčíslí třída USB HID. Deskriptor reportu předaný do usb_mode vybírá třídu zařízení; předpřipravené n-tice jsou k dispozici jako pyb.hid_mouse a pyb.hid_keyboard.

Příklad – odešle levé kliknutí myší a poté ji posune o 5 pixelů doprava:

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

Konstruktory

class pyb.USB_HID

Vytvoří nový objekt USB_HID. Existuje pouze jedno rozhraní HID, takže konstruktor vrací singleton objekt.

Metody

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

Odešle vstupní report HID USB hostiteli.

data je n-tice/seznam celých čísel nebo buffer typu bytes, jehož rozložení závisí na použitém deskriptoru reportu. Pro vestavěný deskriptor myši je report (buttons, dx, dy, wheel); pro deskriptor klávesnice je to (modifiers, 0, key1, key2, key3, key4, key5, key6). Viz pyb.hid_mouse a pyb.hid_keyboard.

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

Přijme výstupní report HID od USB hostitele (např. stav LED klávesnice). Vrátí se okamžitě, pokud je report již v bufferu.

  • data je buď int (počet bajtů, které se mají načíst do nového bufferu), nebo měnitelný buffer, který se naplní přijatými bajty.

  • timeout je maximální doba v milisekundách pro čekání na report.

Pokud je data celé číslo, vrátí se nový objekt bytes; jinak se vrátí počet bajtů zapsaných do data.