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.
datais een tuple/lijst van gehele getallen of eenbytes-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). Ziepyb.hid_mouseenpyb.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.
datais ofwel eenint(het aantal bytes dat in een nieuwe buffer moet worden gelezen) of een veranderbare buffer die met ontvangen bytes wordt gevuld.timeoutis de maximale tijd in milliseconden om op een rapport te wachten.
Als
dataeen geheel getal is, wordt een nieuwbytes-object geretourneerd; anders wordt het aantal indatageschreven bytes geretourneerd.