class USB_HID – USB Human Interface Device (HID)

La classe USB_HID rappresenta l’interfaccia USB Human Interface Device dell’OpenMV Cam. Può essere usata per emulare una periferica come un mouse o una tastiera.

Prima di costruire un oggetto USB_HID, chiama pyb.usb_mode() con una modalità che includa HID (ad es. 'VCP+HID') – questo enumera la classe USB HID sull’host. Il report descriptor passato a usb_mode seleziona la classe del dispositivo; sono disponibili tuple pre-costruite come pyb.hid_mouse e pyb.hid_keyboard.

Esempio – invia un clic sinistro del mouse e poi lo sposta di 5 pixel a destra:

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

Costruttori

class pyb.USB_HID

Crea un nuovo oggetto USB_HID. C’è una sola interfaccia HID, quindi il costruttore restituisce l’oggetto singleton.

Metodi

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

Invia un input report HID all’host USB.

data è una tupla/lista di interi o un buffer di tipo bytes il cui layout dipende dal report descriptor in uso. Per il descriptor del mouse integrato il report è (buttons, dx, dy, wheel); per il descriptor della tastiera è (modifiers, 0, key1, key2, key3, key4, key5, key6). Vedi pyb.hid_mouse e pyb.hid_keyboard.

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

Riceve un output report HID dall’host USB (ad es. lo stato dei LED della tastiera). Restituisce immediatamente se un report è già bufferizzato.

  • data è un int (il numero di byte da leggere in un nuovo buffer) oppure un buffer mutabile da riempire con i byte ricevuti.

  • timeout è il tempo massimo in millisecondi per attendere un report.

Se data è un intero viene restituito un nuovo oggetto bytes; altrimenti viene restituito il numero di byte scritti in data.