class USB_HID -- USB 人機介面裝置(HID)

USB_HID 類別代表 OpenMV Cam 的 USB 人機介面裝置(Human Interface Device)介面。它可用於模擬諸如滑鼠或鍵盤之類的周邊裝置。

在建構 USB_HID 物件之前,請以包含 HID 的模式(例如 'VCP+HID')呼叫 pyb.usb_mode() ── 這會在主機上列舉 USB HID 類別。傳遞給 usb_mode 的報告描述子會選擇裝置類別;預先建好的 tuple 可透過 pyb.hid_mousepyb.hid_keyboard 取得。

範例 ── 送出一次滑鼠左鍵點擊,然後將其向右移動 5 個像素::

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

建構子

class pyb.USB_HID

建立一個新的 USB_HID 物件。HID 介面只有一個,因此建構子會傳回該單例物件。

方法

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

向 USB 主機送出一份 HID 輸入報告。

data 是一個整數的 tuple/list,或一個類 bytes 緩衝區,其佈局取決於所使用的報告描述子。對於內建的滑鼠描述子,報告為 (buttons, dx, dy, wheel);對於鍵盤描述子,報告為 (modifiers, 0, key1, key2, key3, key4, key5, key6)。請參閱 pyb.hid_mousepyb.hid_keyboard

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

從 USB 主機接收一份 HID 輸出報告(例如鍵盤 LED 狀態)。若已有報告被緩衝,則立即傳回。

  • data 可為一個 int(要讀入新緩衝區的位元組數),或一個要以所接收位元組填入的可變緩衝區。

  • timeout 是等待報告的最長時間(以毫秒為單位)。

data 是整數,則傳回一個新的 bytes 物件;否則傳回寫入 data 的位元組數。