klasa USB_HID – urządzenie interfejsu człowieka USB (HID)

Klasa USB_HID reprezentuje interfejs urządzenia interfejsu człowieka (HID) USB w OpenMV Cam. Można jej użyć do emulacji urządzenia peryferyjnego, takiego jak mysz lub klawiatura.

Przed utworzeniem obiektu USB_HID wywołaj pyb.usb_mode() z trybem zawierającym HID (np. 'VCP+HID') – spowoduje to wyliczenie klasy USB HID na hoście. Deskryptor raportu przekazywany do usb_mode wybiera klasę urządzenia; gotowe krotki są dostępne jako pyb.hid_mouse i pyb.hid_keyboard.

Przykład – wyślij lewe kliknięcie myszy, a następnie przesuń ją o 5 pikseli w prawo:

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

Konstruktory

class pyb.USB_HID

Tworzy nowy obiekt USB_HID. Istnieje tylko jeden interfejs HID, więc konstruktor zwraca obiekt singleton.

Metody

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

Wysyła raport wejściowy HID do hosta USB.

data to krotka/lista liczb całkowitych lub bufor podobny do bytes, którego układ zależy od używanego deskryptora raportu. Dla wbudowanego deskryptora myszy raport ma postać (buttons, dx, dy, wheel); dla deskryptora klawiatury jest to (modifiers, 0, key1, key2, key3, key4, key5, key6). Zobacz pyb.hid_mouse i pyb.hid_keyboard.

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

Odbiera raport wyjściowy HID z hosta USB (np. stan diod LED klawiatury). Zwraca natychmiast, jeśli raport jest już zbuforowany.

  • data to albo int (liczba bajtów do odczytania do nowego bufora), albo modyfikowalny bufor do wypełnienia odebranymi bajtami.

  • timeout to maksymalny czas w milisekundach oczekiwania na raport.

Jeśli data jest liczbą całkowitą, zwracany jest nowy obiekt bytes; w przeciwnym razie zwracana jest liczba bajtów zapisanych do data.