klassen USB_HID – USB Human Interface Device (HID)

Klassen USB_HID representerar OpenMV Cam:ens gränssnitt för USB Human Interface Device. Den kan användas för att emulera en kringutrustning som en mus eller ett tangentbord.

Innan du konstruerar ett USB_HID-objekt, anropa pyb.usb_mode() med ett läge som inkluderar HID (t.ex. 'VCP+HID') – detta enumererar USB HID-klassen på värden. Rapportdeskriptorn som skickas till usb_mode väljer enhetsklassen; färdigbyggda tupler finns tillgängliga som pyb.hid_mouse och pyb.hid_keyboard.

Exempel – skicka ett vänsterklick med musen och flytta den sedan 5 pixlar åt höger:

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

Konstruktorer

class pyb.USB_HID

Skapa ett nytt USB_HID-objekt. Det finns endast ett HID-gränssnitt, så konstruktorn returnerar singleton-objektet.

Metoder

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

Skicka en HID-inmatningsrapport till USB-värden.

data är en tupel/lista med heltal eller en bytes-liknande buffert vars layout beror på vilken rapportdeskriptor som används. För den inbyggda musdeskriptorn är rapporten (buttons, dx, dy, wheel); för tangentbordsdeskriptorn är den (modifiers, 0, key1, key2, key3, key4, key5, key6). Se pyb.hid_mouse och pyb.hid_keyboard.

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

Ta emot en HID-utmatningsrapport från USB-värden (t.ex. tangentbordets LED-status). Returnerar omedelbart om en rapport redan är buffrad.

  • data är antingen ett int (antalet byte som ska läsas in i en ny buffert) eller en muterbar buffert som ska fyllas med mottagna byte.

  • timeout är den maximala tiden i millisekunder att vänta på en rapport.

Om data är ett heltal returneras ett nytt bytes-objekt; annars returneras antalet byte som skrevs in i data.