Klasse USB_HID – USB Human Interface Device (HID)

Die Klasse USB_HID repräsentiert die USB-Human-Interface-Device-Schnittstelle der OpenMV Cam. Sie kann verwendet werden, um ein Peripheriegerät wie eine Maus oder Tastatur zu emulieren.

Bevor Sie ein USB_HID-Objekt konstruieren, rufen Sie pyb.usb_mode() mit einem Modus auf, der HID enthält (z. B. 'VCP+HID') – dies enumeriert die USB-HID-Klasse auf dem Host. Der an usb_mode übergebene Report-Deskriptor wählt die Geräteklasse aus; vorgefertigte Tupel sind als pyb.hid_mouse und pyb.hid_keyboard verfügbar.

Beispiel – einen linken Mausklick senden und die Maus dann 5 Pixel nach rechts bewegen:

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

Konstruktoren

class pyb.USB_HID

Erstellt ein neues USB_HID-Objekt. Es gibt nur eine HID-Schnittstelle, daher gibt der Konstruktor das Singleton-Objekt zurück.

Methoden

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

Sendet einen HID-Input-Report an den USB-Host.

data ist ein Tupel/eine Liste von Ganzzahlen oder ein bytes-ähnlicher Puffer, dessen Aufbau vom verwendeten Report-Deskriptor abhängt. Für den eingebauten Maus-Deskriptor lautet der Report (buttons, dx, dy, wheel); für den Tastatur-Deskriptor lautet er (modifiers, 0, key1, key2, key3, key4, key5, key6). Siehe pyb.hid_mouse und pyb.hid_keyboard.

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

Empfängt einen HID-Output-Report vom USB-Host (z. B. den LED-Zustand der Tastatur). Kehrt sofort zurück, wenn bereits ein Report gepuffert ist.

  • data ist entweder ein int (die Anzahl der Bytes, die in einen neuen Puffer gelesen werden sollen) oder ein veränderbarer Puffer, der mit empfangenen Bytes gefüllt wird.

  • timeout ist die maximale Zeit in Millisekunden, die auf einen Report gewartet wird.

Wenn data eine Ganzzahl ist, wird ein neues bytes-Objekt zurückgegeben; andernfalls wird die Anzahl der in data geschriebenen Bytes zurückgegeben.