HID API
概述
Matrix OS 中的 HID(人机接口设备)系统允许设备模拟键盘、手柄和自定义通信协议的 USB HID 设备。HID API 可通过 MatrixOS.HID
访问,包含针对不同设备类型的多个子模块。
Python HID API 实现位于 Applications/Python/PikaPython/MatrixOS_HID.py,类型提示位于 Applications/Python/PikaPython/_MatrixOS_HID.pyi。
MatrixOS.HID.Ready
def Ready() -> bool
检查 HID 子系统是否准备就绪。
返回值:
bool
:HID 准备就绪时返回 True,否则返回 False
示例:
if MatrixOS.HID.Ready():
print("HID 系统已准备就绪")
# 可以安全使用 HID 功能
else:
print("HID 系统不可用")
HID 子模块
Keyboard API - 键盘输入设备
键盘 HID 接口可向连接的设备发送键盘输入。详 细信息参见 Keyboard 文档:
- 按键按下和释放事件
- 键盘快捷键和组合键
- 文本输入模拟
- 功能键和特殊键
示例:
if MatrixOS.HID.Ready():
# 输入字母 'A'
MatrixOS.HID.Keyboard.Tap(KeyboardKeycode.KEY_A)
# 发送 Ctrl+C 快捷键
MatrixOS.HID.Keyboard.Press(KeyboardKeycode.KEY_LEFT_CTRL)
MatrixOS.HID.Keyboard.Press(KeyboardKeycode.KEY_C)
MatrixOS.HID.Keyboard.Release(KeyboardKeycode.KEY_C)
MatrixOS.HID.Keyboard.Release(KeyboardKeycode.KEY_LEFT_CTRL)
Gamepad API - 游戏控制器设备
手柄 HID 接口让设备表现为游戏控制器。详细信息参见 Gamepad 文档:
- 按钮映射和状态
- 模拟摇杆模拟
- 方向键控制
- 手柄特定功能
RawHID API - 自定义 HID 通信
原始 HID 接口提供自定义通信协议。详细信息参见 RawHID 文档:
- 自定义数据协议
- 双向通信
- 应用特定消息传递
- 原始数据传输
HID 设备管理
检查 HID 状态
def check_hid_status():
"""检查各种 HID 接口是否准备就绪"""
if MatrixOS.HID.Ready():
print("✓ HID 系统已准备就绪")
# 测试键盘可用性
try:
MatrixOS.HID.Keyboard.Tap(KeyboardKeycode.KEY_A)
print("✓ 键盘 HID 正常工作")
except:
print("✗ 键盘 HID 不可用")
else:
print("✗ HID 系统未准备就绪")
check_hid_status()
HID 模式检测
def detect_hid_capabilities():
"""检测可用的 HID 功能"""
capabilities = {
"keyboard": False,
"gamepad": False,
"rawhid": False
}
if MatrixOS.HID.Ready():
# 测试每个 HID 接口
try:
# 测试键盘
MatrixOS.HID.Keyboard.Press(KeyboardKeycode.KEY_A)
MatrixOS.HID.Keyboard.Release(KeyboardKeycode.KEY_A)
capabilities["keyboard"] = True
except:
pass
# 其他功能测试将在此处添加
return capabilities
caps = detect_hid_capabilities()
print("可用的 HID 功能:", caps)