Aller au contenu principal

00. Liste des appareils

Détecte tous les appareils Haply connectés via l'API HTTP REST, sans avoir besoin de WebSocket. Un simple test de fonctionnement qui vérifie si l'environnement d'exécution est actif et s'il détecte le matériel.

Ce que vous apprendrez :

  • Consultation de GET /devices, euh Inverse3, pour répertorier les appareils VerseGrip et VerseGrip sans fil
  • Extraction des identifiants des appareils à partir de la réponse JSON, regroupés par type d'appareil
  • Utilisation d'un sélecteur de session pour basculer entre les coordonnées brutes de l'appareil et la vue de l'espace applicatif d'une session

Déroulement​

  1. Envoyez GET http://localhost:10001/devices.
  2. Analysez la réponse JSON — trois tableaux de niveau supérieur : inverse3, verse_grip, wireless_verse_grip.
  3. Affichez les identifiants des appareils regroupés par type. Les tableaux vides indiquent qu'aucun appareil de ce type n'a été détecté.
  4. Si un Sélecteur de session als ?session=<selector> Lorsqu'il est ajouté, la réponse est filtrée en fonction des périphériques de cette session et les coordonnées sont converties dans leur espace d'application (application de la base, du montage et de l'espace de travail). L'exemple Python présente cela sous forme d'argument CLI --session SELECTOR prêt (accepté) :profile:instance, #id, :-1, :0, …) — avec le même indicateur et le même texte d'aide que ceux utilisés par Tutoriel n° 08 (Configuration à distance via HTTP) est utilisé, ce qui permet d'y insérer directement un sélecteur trouvé ici. Les exemples en C++ effectuent la requête sans sélecteur.

Paramètres​

ParamètresStandardObjet
URL du servicehttp://localhost:10001URL de base du protocole HTTP
Point final/devicesPoint de terminaison pour la détection des périphériques
Sélecteur de session(aucun)?session=:0, ?session=:-1, ?session=:my_profile:0, ?session=co.haply.hub::*:0 (Les caractères génériques globaux sont pris en charge) — voir Sélecteurs. Dans l'exemple Python, sous la forme --session SELECTOR disponible (même indicateur que Tutoriel 08).

Code important​

L'exemple Python présente le sélecteur de session comme argument argparse --session SELECTOR prêt. Sans cet argument, les périphériques sont renvoyés dans leurs coordonnées brutes ; avec cet argument, ils sont filtrés en fonction de la session sélectionnée et convertis dans l'espace de l'application. Le texte d'aide correspond à celui de Tutoriel n° 08 (Configuration à distance via HTTP), de sorte qu'un sélecteur trouvé ici puisse être directement inséré à 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 également installé localement avec le SDK — vous le trouverez dans le répertoire d'installation du service, sous tutorials/00-haply-inverse-device-list/ nach.

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

À lire également : Conventions JSON · Sélecteurs · Sessions