본문으로 바로 가기

00. 장비 목록

HTTP REST API를 통해 연결된 모든 Haply 기기를 감지합니다. WebSocket이 필요하지 않습니다. 런타임 환경이 활성화되어 있는지, 하드웨어를 인식하는지 확인하는 간단한 스모크 테스트입니다.

학습 내용:

  • 조회 GET /devices, 음 Inverse3, VerseGrip 및 무선 VerseGrip 기기를 나열하기
  • JSON 응답에서 장치 ID를 추출하고, 장치 유형별로 그룹화하기
  • 세션 선택기를 사용하여 세션의 원시 장치 좌표와 애플리케이션 공간 뷰 간을 전환하기

진행 절차​

  1. 보내주세요 GET http://localhost:10001/devices.
  2. JSON 응답을 파싱하세요 — 최상위 수준에 세 개의 배열이 있습니다: inverse3, verse_grip, wireless_verse_grip.
  3. 장치 ID를 유형별로 그룹화하여 표시하십시오. 빈 배열은 해당 유형의 장치가 감지되지 않았음을 의미합니다.
  4. 만약 한 세션 선택기 als ?session=<selector> 이 옵션이 추가되면, 해당 세션의 장치에 대한 응답이 필터링되고 좌표가 해당 애플리케이션 공간으로 변환됩니다(기저, 장착 및 작업 공간 적용). Python 예제에서는 이를 CLI 인수로 --session SELECTOR 준비됨 (승인됨) :profile:instance, #id, :-1, :0, …) — 다음에서와 동일한 플래그와 도움말 텍스트를 사용하여 튜토리얼 08 (HTTP 원격 구성) 사용되므로, 여기서 찾은 선택자를 바로 그곳에 삽입할 수 있습니다. C++ 예제에서는 선택자 없이 쿼리를 수행합니다.

매개변수​

매개변수표준Zweck
서비스 URLhttp://localhost:10001HTTP의 기본 URL
종점/devices장치 인식의 종단점
세션 선택기(keiner)?session=:0, ?session=:-1, ?session=:my_profile:0, ?session=co.haply.hub::*:0 (글로브 와일드카드 지원) — 참조 셀렉토렌. 파이썬 예제에서는 다음과 같이 --session SELECTOR 사용 가능 (다음과 동일한 플래그: 튜토리얼 08).

중요한 코드​

이 파이썬 예제에서는 세션 선택기를 argparse 인수로 --session SELECTOR bereit. 이 인수가 없으면 장치가 원시 장치 좌표로 반환되며, 인수가 지정되면 선택된 세션으로 필터링되어 애플리케이션 좌표계로 변환됩니다. 도움말 텍스트는 다음의 내용과 동일합니다. 튜토리얼 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/ nach.

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

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