คลาส USB_HID -- อุปกรณ์อินเทอร์เฟซของมนุษย์ USB (HID)

คลาส USB_HID แทนอินเทอร์เฟซ USB Human Interface Device ของ OpenMV Cam สามารถใช้จำลองอุปกรณ์ต่อพ่วง เช่น เมาส์หรือคีย์บอร์ด

ก่อนสร้างออบเจกต์ USB_HID ให้เรียก pyb.usb_mode() ด้วยโหมดที่มี HID (เช่น 'VCP+HID') -- ซึ่งจะลงทะเบียนคลาส USB HID บนโฮสต์ ตัวบ่งชี้รายงานที่ส่งให้ usb_mode จะเลือกคลาสอุปกรณ์ ทูเพิลที่สร้างไว้ล่วงหน้ามีให้ใช้เป็น pyb.hid_mouse และ pyb.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 เพียงตัวเดียว ดังนั้นคอนสตรักเตอร์จะคืนค่าออบเจกต์ singleton

เมธอด

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

ส่งรายงานอินพุต HID ไปยังโฮสต์ USB

data คือทูเพิล/รายการของจำนวนเต็ม หรือบัฟเฟอร์คล้าย bytes ที่มีรูปแบบขึ้นอยู่กับตัวบ่งชี้รายงานที่ใช้งาน สำหรับตัวบ่งชี้เมาส์ในตัว รายงานคือ (buttons, dx, dy, wheel) สำหรับตัวบ่งชี้คีย์บอร์ดคือ (modifiers, 0, key1, key2, key3, key4, key5, key6) ดู pyb.hid_mouse และ pyb.hid_keyboard

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

รับรายงานเอาต์พุต HID จากโฮสต์ USB (เช่น สถานะ LED ของคีย์บอร์ด) ส่งคืนทันทีหากมีรายงานที่บัฟเฟอร์ไว้แล้ว

  • data เป็นได้ทั้ง int (จำนวนไบต์ที่จะอ่านลงในบัฟเฟอร์ใหม่) หรือบัฟเฟอร์ที่แก้ไขได้สำหรับเก็บไบต์ที่รับมา

  • timeout คือเวลาสูงสุดเป็นมิลลิวินาทีที่รอรายงาน

หาก data เป็นจำนวนเต็ม จะคืนค่าออบเจกต์ bytes ใหม่ ไม่เช่นนั้นจะคืนค่าจำนวนไบต์ที่เขียนลงใน data