Passer directement au contenu principal

00. Liste des appareils

Détecte tous les appareils Haply connectés via l'API REST HTTP (WebSocket n'est pas nécessaire). Il s'agit d'un test de fonctionnement simple permettant de vérifier que l'environnement d'exécution est lancé et que le matériel est bien détecté.

Contenu pédagogique :

  • GET /devices Effectuer une requête pour afficher la liste des appareils «Inverse3», « VerseGrip » et « VerseGrip sans fil »
  • Lire l'identifiant de l'appareil à partir de la réponse JSON et regrouper les appareils par type.
  • Utiliser le 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 Je vais l'envoyer.
  2. Nous analysons la réponse JSON. Il y a trois tableaux de niveau supérieur : inverse3,verse_grip,wireless_verse_grip。
  3. Les identifiants des périphériques sont regroupés par type et affichés. Si le tableau est vide, cela signifie qu'aucun périphérique de ce type n'a été détecté.
  4. Sélecteur de sessionを ?session=<selector> Lorsqu'on l'ajoute, la réponse est limitée à l'appareil de cette session, et les coordonnées sont converties dans l'espace de l'application (en appliquant les systèmes de référence « basis », « mount » et « workspace »). Dans l'exemple Python, cela se traduit par --session SELECTOR Nous le proposons en tant qu'argument de ligne de commande (CLI) (:profile:instance,#id,:-1,:0(… sont acceptées). Il s'agit deTutoriel n° 8 (Configuration à distance via HTTP)Comme il s'agit des mêmes indicateurs et des mêmes textes d'aide que ceux utilisés dans ce tutoriel, vous pouvez copier-coller tels quels les sélecteurs que vous trouverez ici dans ce même tutoriel. L'exemple en C++ effectue la requête sans spécifier de sélecteur.

Paramètres​

ParamètresPar défautUtilisation
URL du servicehttp://localhost:10001URL de base HTTP
point d'extrémité/devicesPoint de terminaison de détection des périphériques
Sélecteur de session(aucun)?session=:0,?session=:-1,?session=:my_profile:0,?session=co.haply.hub::*:0(Compatible avec les caractères génériques de glob) — SélecteurVeuillez vous y référer. Dans l'exemple en Python, --session SELECTOR est publié sous le titre (Tutoriel n° 08(avec le même indicateur).

Code principal​

Dans l'exemple Python, le sélecteur de session est --session SELECTOR est disponible en tant qu'argument argparse. Si ce paramètre n'est pas spécifié, le périphérique est renvoyé avec ses coordonnées brutes dans l'espace du périphérique. S'il est spécifié, le résultat est limité aux périphériques de la session sélectionnée et converti dans l'espace de l'application. Le texte d'aide estTutoriel n° 8 (Configuration à distance via HTTP)Comme c'est identique, vous pouvez copier-coller tel quel le sélecteur trouvé ici dans ce tutoriel.

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. Dans le répertoire d'installation du service, sous tutorials/00-haply-inverse-device-list/ Veuillez vérifier.

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

Voir aussi : Spécifications JSON · Sélecteurs · Session