Aller directement au corps du texte

00. Liste des appareils

Recherche tous les appareils Haply connectés via l'API REST HTTP — cela fonctionne même sans WebSocket. Il s'agit d'un simple test de fonctionnement visant à vérifier que le runtime est en cours d'exécution et qu'il détecte bien le matériel.

Contenu pédagogique :

  • GET /devicesAppeler Inverse3 pour consulter la liste des appareils VerseGrip et VerseGrip sans fil
  • Lire l'identifiant de l'appareil dans la réponse JSON et le regrouper par type d'appareil
  • Utilisation du sélecteur de sessionpour basculer entre les coordonnées brutes de l'appareil et la vue de l'espace applicatif de la session

Flux de travail​

  1. GET http://localhost:10001/devices J'envoie ma demande.
  2. Analyse de la réponse JSON — Il y a trois tableaux de niveau supérieur : inverse3, verse_grip, wireless_verse_grip.
  3. Les identifiants des appareils sont affichés regroupés par type. Si le tableau est vide, cela signifie qu'aucun appareil de ce type n'a été détecté.
  4. Sélecteur de sessionle ?session=<selector> Pour préciser davantage, les réponses sont filtrées en fonction de l'appareil de la session concernée et les coordonnées sont converties dans l'espace applicatif de la session (en tenant compte des bases « basis », « mount » et « workspace »). L'exemple en Python illustre cela --session SELECTOR Disponible via l'interface CLI (:profile:instance, #id, :-1, :0, … autorisé). Ce drapeau et le texte d'aide sont Tutoriel n° 8 (Configuration à distance via HTTP)Comme il s'agit du même sélecteur que celui utilisé là-bas, vous pouvez copier-coller tel quel le sélecteur trouvé ici. L'exemple en C++ effectue la requête sans sélecteur.

Paramètres​

ParamètresValeur par défautUtilisation
URL du servicehttp://localhost:10001URL HTTP par défaut
point d'extrémité/devicesPoint de terminaison de recherche d'appareils
Sélecteur de session(aucun)?session=:0, ?session=:-1, ?session=:my_profile:0, ?session=co.haply.hub::*:0 (Prise en charge des caractères génériques « * ») — Sélecteur Remarque : dans l'exemple Python, --session SELECTORest visible (Tutoriel n° 08(avec le même indicateur).

Code principal​

L'exemple Python utilise le sélecteur de session --session SELECTOR est exposé en tant qu’argument de `argparse`. En l’absence de cet argument, le périphérique est renvoyé sous forme de coordonnées brutes dans l’espace du périphérique ; si l’argument est spécifié, le périphérique est filtré en fonction de la session sélectionnée et converti dans l’espace de l’application. Le texte d’aide est Tutoriel n° 8 (Configuration à distance via HTTP)Comme c'est identique, vous pouvez copier-coller tel quel le sélecteur trouvé ici à cet endroit.

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"))
Inclus dans le programme d'installation du SDK

Le tutoriel 00 est installé localement avec le SDK — dans le répertoire d'installation du service, sous tutorials/00-haply-inverse-device-list/Veuillez consulter cette page.

Source : Python · C++ · C++ Glaze

Documents associés : Conventions JSON · Sélecteurs · Session