跳至主要内容
版本:3.5.x

00. 设备列表

通过 HTTP REST API 发现所有已连接的Haply ——无需 WebSocket。这是一个简单的初步测试,用于验证运行时是否正常运行并能检测到硬件。

您将学到:

  • 查询 GET /devices 列出Inverse3、VerseGrip 和 Wireless VerseGrip 设备
  • 从 JSON 响应中读取设备 ID,并按设备类型分组
  • 使用会话选择器在原始设备坐标与会话的应用空间视图之间切换

工作流程

  1. 发送 GET http://localhost:10001/devices.
  2. 解析 JSON 响应——包含三个顶级数组: inverse3, verse_grip, wireless_verse_grip.
  3. 按类型分组打印设备 ID。空数组表示未检测到该类型的设备。
  4. 如果一个 会话选择器 作为附件附上 ?session=<selector>,响应会被过滤为该会话的设备,坐标会被转换为该会话的应用空间(应用了基面、安装面和工作空间)。Python 示例将此功能作为命令行参数提供;C++ 示例则不使用选择器进行查询。

参数

参数默认目的
服务网址http://localhost:10001HTTP 基础 URL
端点/devices设备发现端点
会话选择器(无)?session=:0, ?session=:-1, ?session=:my_profile:0 — 参见 选择器. 在 Python 示例中作为 CLI 参数提供。

密钥代码

该 Python 示例将会话选择器作为命令行参数提供。如果不指定该参数,返回的设备坐标为原始设备空间坐标;如果指定了该参数,则会将设备过滤为所选会话中的设备,并转换为应用程序空间坐标。

def main():
session = sys.argv[1] if len(sys.argv) > 1 else None

url = f"{BASE_URL}/devices"
if session:
url += f"?session={session}"
print(f"Querying devices for session '{session}' (application space)\n")
else:
print("Querying all detected devices (device space)\n")

r = requests.get(url, timeout=3)
r.raise_for_status()
data = r.json()

print_devices("Inverse3", data.get("inverse3"))
print_devices("Wired Verse Grip", data.get("verse_grip"))
print_devices("Wireless Verse Grip", data.get("wireless_verse_grip"))

来源: Python·C++·C++ Glaze

相关: JSON 规范·选择器·会话