Zum Hauptinhalt springen
Version: 3.5.x

00. Geräteliste

Erkennt alle verbundenen Haply über die HTTP-REST-API – kein WebSocket erforderlich. Ein einfacher Funktionstest, um zu überprüfen, ob die Laufzeitumgebung läuft und Hardware erkennt.

Was Sie lernen werden:

  • Abfragen GET /devices um die Geräte Inverse3, VerseGrip und Wireless VerseGrip aufzulisten
  • Auslesen der Geräte-IDs aus der JSON-Antwort, gruppiert nach Gerätetyp
  • Verwendung eines Sitzungsselektors zum Wechseln zwischen den Rohkoordinaten des Geräts und der Ansicht im Anwendungsraum einer Sitzung

Arbeitsablauf

  1. Senden GET http://localhost:10001/devices.
  2. Die JSON-Antwort analysieren – drei Arrays auf oberster Ebene: inverse3, verse_grip, wireless_verse_grip.
  3. Gib die Geräte-IDs nach Typ gruppiert aus. Leere Arrays bedeuten, dass kein Gerät dieses Typs erkannt wurde.
  4. Wenn ein Sitzungsauswahl wird angehängt als ?session=<selector>wird die Antwort auf die Geräte dieser Sitzung gefiltert und die Koordinaten werden in den Anwendungsraum dieser Sitzung umgewandelt (Basis, Mount, Arbeitsbereich angewendet). Das Python-Beispiel stellt dies als --session SELECTOR Befehlszeilenargument (akzeptiert :profile:instance, #id, :-1, :0, …) – dieselbe Flagge mit demselben Hilfetext, der Tutorial 08 (HTTP-Fernkonfiguration) Verwendungszwecke, sodass ein hier gefundener Selektor direkt dort eingefügt werden kann. Die C++-Beispiele führen die Abfrage ohne Selektor durch.

Parameter

ParameterStandardZweck
URL des Diensteshttp://localhost:10001HTTP-Basis-URL
Endpunkt/devicesEndpunkt für die Geräteerkennung
Sitzungsauswahl(keine)?session=:0, ?session=:-1, ?session=:my_profile:0, ?session=co.haply.hub::*:0 (globale Platzhalter werden unterstützt) — siehe Auswahlkriterien. Entlarvt als --session SELECTOR im Python-Beispiel (dasselbe Flag wie Anleitung 08).

Schlüsselcode

Das Python-Beispiel stellt den Sitzungsselektor als --session SELECTOR argparse-Argument. Ohne dieses Argument werden Geräte in rohen Gerätekoordinaten zurückgegeben; mit diesem Argument werden sie auf die ausgewählte Sitzung gefiltert und in Anwendungskoordinaten umgewandelt. Der Hilfetext lautet Tutorial 08 (HTTP-Fernkonfiguration) So kann ein hier gefundener Selektor direkt dort eingefügt werden.

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"))
Im Lieferumfang des SDK-Installationsprogramms enthalten

Das Tutorial 00 wird ebenfalls lokal mit dem SDK installiert – schau mal unter tutorials/00-haply-inverse-device-list/ im Installationsverzeichnis des Dienstes.

Quelle: Python · C++ · C++ Glaze

Siehe auch: JSON-Konventionen · Selektoren · Sitzungen