Skip to main content
Version : 3.5.x

00. Liste des appareils

Détecte tous Haply connectés via l'API REST HTTP — aucun WebSocket n'est nécessaire. Un simple test de fonctionnement permettant de vérifier que l'environnement d'exécution est opérationnel et détecte le matériel.

Ce que vous apprendrez :

  • Interrogation GET /devices pour répertorier les appareils Inverse3, VerseGrip et Wireless VerseGrip
  • Lecture des identifiants des appareils dans la réponse JSON, regroupés par type d'appareil
  • Utilisation d'un sélecteur de session pour basculer entre les coordonnées brutes du périphérique et la vue dans l'espace applicatif d'une session

Flux de travail

  1. Envoyer GET http://localhost:10001/devices.
  2. Analyser la réponse JSON — trois tableaux de niveau supérieur : inverse3, verse_grip, wireless_verse_grip.
  3. Affichez les identifiants des périphériques regroupés par type. Les tableaux vides indiquent qu'aucun périphérique de ce type n'a été détecté.
  4. Si un sélecteur de session est joint en annexe sous la forme ?session=<selector>, la réponse est filtrée pour les appareils de cette session et les coordonnées sont converties dans son espace d'application (base, montage et espace de travail appliqués). L'exemple Python expose cette fonctionnalité sous forme d'argument de ligne de commande ; les exemples C++ effectuent la requête sans sélecteur.

Paramètres

ParamètresPar défautObjectif
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 — voir Sélecteurs. Exposé sous forme d'argument CLI dans l'exemple Python.

Code d'accès

L'exemple Python expose le sélecteur de session sous forme d'argument de ligne de commande. Sans cet argument, les périphériques sont renvoyés sous forme de coordonnées brutes dans l'espace périphérique ; avec cet argument, ils sont filtrés en fonction de la session sélectionnée et convertis dans l'espace applicatif.

def main():
session = sys.argv[1] if len(sys.argv) > 1 else 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"))

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

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