주요 콘텐츠로 건너뛰기
버전: 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 응답을 파싱합니다 — 최상위 배열 3개: inverse3, verse_grip, wireless_verse_grip.
  3. 장치 ID를 유형별로 그룹화하여 출력합니다. 배열이 비어 있으면 해당 유형의 장치가 감지되지 않았음을 의미합니다.
  4. 만약 세션 선택기 다음과 같이 추가됩니다 ?session=<selector>, 응답은 해당 세션의 장치로 필터링되며 좌표는 해당 애플리케이션 공간으로 변환됩니다(기저, 마운트, 작업 공간 적용). Python 샘플은 이를 --session SELECTOR CLI 인수 (다음 형식을 지원함) :profile:instance, #id, :-1, :0, …) — 동일한 도움말 텍스트가 포함된 동일한 플래그가 튜토리얼 08 (HTTP 원격 구성) 사용법이 동일하므로, 여기서 찾은 선택기를 그대로 붙여넣을 수 있습니다. C++ 예제에서는 선택기 없이 쿼리를 수행합니다.

매개변수

매개변수기본값목적
서비스 URLhttp://localhost:10001HTTP 기본 URL
엔드포인트/devices장치 검색 엔드포인트
세션 선택기(없음)?session=:0, ?session=:-1, ?session=:my_profile:0, ?session=co.haply.hub::*:0 (glob 와일드카드 지원) — 참조 선택기. 드러난 사실은 --session SELECTOR 파이썬 예제에서 (다음과 동일한 플래그) 튜토리얼 08).

키 코드

이 Python 예제는 세션 선택기를 --session SELECTOR argparse 인자입니다. 이 인자를 생략하면 장치가 원시 장치 좌표계로 반환되며, 이 인자를 지정하면 선택한 세션으로 필터링되어 애플리케이션 좌표계로 변환됩니다. 도움말 텍스트는 다음과 같습니다. 튜토리얼 08 (HTTP 원격 구성) 따라서 여기에서 찾은 선택기를 바로 그곳에 붙여넣을 수 있습니다.

def parse_args():
parser = argparse.ArgumentParser(
description="List connected Haply Inverse devices via the HTTP API.")
parser.add_argument(
"--session", type=str, default="",
help=(
"Session selector. Formats:\n"
" :profile:instance by profile name (e.g. ':my_profile:0')\n"
" pattern:instance glob wildcard in profile (e.g. 'co.haply.hub::*:0')\n"
" '*' matches any sequence, '?' one character\n"
" #session_id by numeric id (e.g. '#42' — quote in shells to escape '#')\n"
" :-1 the last active session\n"
" :0 the first session"
))
return parser.parse_args()

def main():
args = parse_args()
session = args.session or 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"))
SDK 설치 프로그램과 함께 제공

튜토리얼 00은 SDK와 함께 로컬에 설치됩니다. 다음 경로를 확인해 보세요. tutorials/00-haply-inverse-device-list/ 서비스 설치 디렉터리 아래에.

출처: Python · C++ · C++ Glaze

관련 항목: JSON 규칙 · 선택자 · 세션