Zum Hauptinhalt springen

00. Geräteliste

Alle angeschlossenen Haply-Geräte werden über die HTTP-REST-API erkannt (WebSocket ist nicht erforderlich). Dies ist ein einfacher Smoke-Test, um sicherzustellen, dass die Laufzeitumgebung gestartet ist und die Hardware erkannt wird.

Lerninhalte:

  • GET /devices Eine Abfrage durchführen, um eine Liste der Geräte „Inverse3“, „VerseGrip“ und „Wireless VerseGrip“ anzuzeigen
  • Die Geräte-ID aus der JSON-Antwort auslesen und nach Gerätetyp gruppieren
  • Mit dem Sitzungsselektorzwischen den rohen Gerätekordinaten und der Ansicht im Anwendungsraum der Sitzung umschalten

Workflow​

  1. GET http://localhost:10001/devices senden.
  2. Die JSON-Antwort wird analysiert. Es gibt drei Arrays auf oberster Ebene: inverse3、verse_grip、wireless_verse_grip。
  3. Die Geräte-IDs werden nach Typ gruppiert und ausgegeben. Ist das Array leer, bedeutet dies, dass keine Geräte dieses Typs erkannt wurden.
  4. Sitzungsauswahlを ?session=<selector> Wenn man dies hinzufügt, wird die Antwort auf das Gerät dieser Sitzung eingegrenzt, und die Koordinaten werden in den Anwendungsraum (unter Anwendung von „basis“, „mount“ und „workspace“) umgewandelt. Im Python-Beispiel wird dies --session SELECTOR als CLI-Argument veröffentlicht (:profile:instance、#id、:-1、:0(… werden entgegengenommen). Dies istTutorial 08 (HTTP-Fernkonfiguration)Da es sich um dieselben Flags und denselben Hilfetext handelt wie dort, können Sie die hier gefundenen Selektoren direkt in das entsprechende Tutorial einfügen. Das C++-Beispiel führt die Abfrage ohne Angabe eines Selektors durch.

Parameter​

ParameterStandardVerwendungszweck
Service-URLhttp://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(unterstützt die Wildcards von glob) — SelektorSiehe dazu. Im Python-Beispiel gilt: --session SELECTOR wurde veröffentlicht als (Tutorial 08(mit demselben Flag).

Wichtige Codes​

Im Python-Beispiel wird der Session-Selektor --session SELECTOR wird als argparse-Argument bereitgestellt. Wird dieses nicht angegeben, werden die Geräte in ihren rohen Geräteraumkoordinaten zurückgegeben. Bei Angabe wird die Ausgabe auf die Geräte der ausgewählten Sitzung eingegrenzt und in den Anwendungsraum umgewandelt. Der Hilfetext lautetTutorial 08 (HTTP-Fernkonfiguration)Da es sich um dasselbe handelt, können Sie den hier gefundenen Selektor unverändert in dasselbe Tutorial einfügen.

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 SDK-Installationsprogramm enthalten

Auch das Tutorial 00 ist zusammen mit dem SDK lokal installiert. Im Installationsverzeichnis des Dienstes unter tutorials/00-haply-inverse-device-list/ Bitte überprüfen Sie dies.

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

Siehe auch: JSON-Spezifikation · Selektoren · Sitzung