classe USB_HID – Dispositivo de Interface Humana USB (HID)

A classe USB_HID representa a interface USB Human Interface Device da OpenMV Cam. Pode ser utilizada para emular um periférico tal como um rato ou teclado.

Antes de construir um objeto USB_HID, chame pyb.usb_mode() com um modo que inclua HID (p. ex. 'VCP+HID') – isto enumera a classe USB HID no host. O descritor de relatório passado para usb_mode seleciona a classe de dispositivo; tuplos pré-construídos estão disponíveis como pyb.hid_mouse e pyb.hid_keyboard.

Exemplo – enviar um clique esquerdo do rato e depois movê-lo 5 pixels para a direita:

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

Construtores

class pyb.USB_HID

Cria um novo objeto USB_HID. Existe apenas uma interface HID, por isso o construtor devolve o objeto singleton.

Métodos

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

Envia um relatório de entrada HID ao host USB.

data é um tuplo/lista de inteiros ou um buffer do tipo bytes cujo layout depende do descritor de relatório em uso. Para o descritor de rato incorporado, o relatório é (buttons, dx, dy, wheel); para o descritor de teclado é (modifiers, 0, key1, key2, key3, key4, key5, key6). Consulte pyb.hid_mouse e pyb.hid_keyboard.

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

Recebe um relatório de saída HID do host USB (p. ex. estado dos LEDs do teclado). Retorna imediatamente se já houver um relatório em buffer.

  • data é um int (o número de bytes a ler para um novo buffer) ou um buffer mutável a preencher com os bytes recebidos.

  • timeout é o tempo máximo em milissegundos para aguardar um relatório.

Se data for um inteiro, é devolvido um novo objeto bytes; caso contrário, é devolvido o número de bytes escritos em data.