class USB_HID – USB Human Interface Device (HID)

De klasse USB_HID vertegenwoordigt de USB Human Interface Device-interface van de OpenMV Cam. Het kan worden gebruikt om een randapparaat zoals een muis of toetsenbord te emuleren.

Roep, voordat u een USB_HID-object construeert, pyb.usb_mode() aan met een modus die HID bevat (bijv. 'VCP+HID') – dit enumereert de USB HID-klasse op de host. De report descriptor die aan usb_mode wordt doorgegeven, selecteert de apparaatklasse; vooraf samengestelde tuples zijn beschikbaar als pyb.hid_mouse en pyb.hid_keyboard.

Voorbeeld – stuur een linkermuisklik en verplaats deze vervolgens 5 pixels naar rechts:

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

Constructors

class pyb.USB_HID

Maak een nieuw USB_HID-object aan. Er is slechts één HID-interface, dus de constructor retourneert het singleton-object.

Methoden

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

Stuur een HID-invoerrapport naar de USB-host.

data is een tuple/lijst van gehele getallen of een bytes-achtige buffer waarvan de indeling afhangt van de gebruikte report descriptor. Voor de ingebouwde muis-descriptor is het rapport (buttons, dx, dy, wheel); voor de toetsenbord-descriptor is het (modifiers, 0, key1, key2, key3, key4, key5, key6). Zie pyb.hid_mouse en pyb.hid_keyboard.

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

Ontvang een HID-uitvoerrapport van de USB-host (bijv. de LED-status van het toetsenbord). Retourneert direct als er al een rapport is gebufferd.

  • data is ofwel een int (het aantal bytes dat in een nieuwe buffer moet worden gelezen) of een veranderbare buffer die met ontvangen bytes wordt gevuld.

  • timeout is de maximale tijd in milliseconden om op een rapport te wachten.

Als data een geheel getal is, wordt een nieuw bytes-object geretourneerd; anders wordt het aantal in data geschreven bytes geretourneerd.