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.
dataist ein Tupel/eine Liste von Ganzzahlen oder einbytes-ä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). Siehepyb.hid_mouseundpyb.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.
dataist entweder einint(die Anzahl der Bytes, die in einen neuen Puffer gelesen werden sollen) oder ein veränderbarer Puffer, der mit empfangenen Bytes gefüllt wird.timeoutist die maximale Zeit in Millisekunden, die auf einen Report gewartet wird.
Wenn
dataeine Ganzzahl ist, wird ein neuesbytes-Objekt zurückgegeben; andernfalls wird die Anzahl der indatageschriebenen Bytes zurückgegeben.