usb_hid
– USB 人机接口设备¶
该 usb_hid
模块允许您将数据作为 HID 设备输出。
在这些板上可用
-
usb_hid.
devices
:Tuple[Device, Ellipsis]¶ 所有活动 HID 设备接口的元组。默认设备集是,在默认情况下禁用的板上,是一个空元组。
Device.KEYBOARD, Device.MOUSE, Device.CONSUMER_CONTROL
usb_hid
devices
-
usb_hid.
disable
() → None¶ 不要将任何 USB HID 设备呈现给主机。可以在
boot.py
连接USB之前调用。HID 复合设备通常默认启用,但在某些端点有限的板上,包括 STM32F4,默认禁用。您必须关闭另一个 USB 设备,例如usb_cdc
或storage
以释放端点以供 使用usb_hid
。
-
usb_hid.
enable
(devices: Optional[Sequence[Device]]) → None¶ 指定可用的 USB HID 设备。可以在
boot.py
连接USB之前调用。- 参数
设备 (Sequence) –
Device
对象。如果devices
为空,则禁用 HID。的顺序Devices
可能对主机很重要。例如,对于 MacOS,将鼠标设备放在任何 Gamepad 或 Digitizer HID 设备之前,否则它将无法工作。
如果您一次启用太多设备,您将耗尽 USB 端点。可用端点的数量因微控制器而异。
boot.py
如果没有足够的端点可用,CircuitPython 将在运行后进入安全模式以通知您。
-
class
usb_hid.
Device
(*, descriptor: _typing.ReadableBuffer, usage_page: int, usage: int, report_ids: Sequence[int], in_report_lengths: Sequence[int], out_report_lengths: Sequence[int])¶ HID 设备规格
创建 USB HID 设备的描述。当你通过一个创建实际的设备
Device
来usb_hid.enable()
。- 参数
report_descriptor (ReadableBuffer) –USB HID 报告描述符字节。未验证描述符的正确性;由您来确保它没有格式错误。
usage_page (int) – 来自描述符的 Usage Page 值。必须匹配描述符中的内容。
usage (int) – 描述符中的用法值。必须匹配描述符中的内容。
report_ids (Sequence[int]) – 描述符使用的报告 ID 序列。如果
report_descriptor
未指定任何报告 ID,请使用(0,)
。in_report_lengths (Sequence[int]) – 发送到主机的 HID 报告的字节大小序列。大小按
report_ids
. Use a size of0
对不是 IN 报告的报告使用大小。“IN”是关于主机的。out_report_lengths (int) – 从主机接收到的 HID 报告的字节大小序列。大小按
report_ids
. Use a size of0
对不是 OUT 报告的报告使用大小。“OUT”是关于主机的。
report_ids
,in_report_lengths
, 和 都out_report_lengths
必须是相同的长度。这是一个
Device
带有指定两个报告 ID 3 和 4 的描述符的示例。报告 ID 3 发送长度为 5 的 IN 报告,并接收长度为 6 的 OUT 报告。报告 ID 4 发送长度为 2 的 IN 报告,并且没有收到 OUT 报告:device = usb_hid.Device( descriptor=b"...", # Omitted for brevity. report_ids=(3, 4), in_report_lengths=(5, 2), out_report_lengths=(6, 0), )
-
KEYBOARD
:设备¶ 支持键码 0x00-0xDD、修饰符 0xE-0xE7 和五个 LED 指示灯的标准键盘设备。将报告 ID 1 用于其 IN 和 OUT 报告。
-
MOUSE
:设备¶ 标准鼠标设备支持五个鼠标按钮,每个报告中的 X 和 Y 相对移动从 -127 到 127,以及每个报告中的相对鼠标滚轮从 -127 变为 127。使用报告 ID 2 作为其 IN 报告。
-
CONSUMER_CONTROL
:设备¶ 消费者控制设备支持从 1 到 652 的发送值,无翻转。对其 IN 报告使用报告 ID 3。
-
last_received_report
:字节¶ HID OUT 报告为
bytes
(只读)。None
如果没有收到。同get_last_received_report()
不带参数。已弃用:将在 CircutPython 8.0.0 中删除。使用
get_last_received_report()
来代替。
-
usage_page
:int¶ 设备使用页面标识符,用于指定设备类别。(只读)
-
usage
:int¶ 设备使用标识符,用于指定特定类型的设备。(只读)
例如,在通用桌面使用页面 0x01 中,键盘是 0x06。鼠标在同一使用页面内为 0x02。
-
send_report
(self, buf: _typing.ReadableBuffer, report_id: Optional[int] = None) → None¶ 发送 HID 报告。如果设备描述符指定了零个或一个报告 ID,您可以提供
None
(默认)作为 的值report_id
。否则,您必须指定在发送报告时使用哪个报告 ID。