Service Inverse de Haply
Le service Inverse s'exécute en arrière-plan sur votre machine et connecte les périphériques Haply à votre application en temps réel. Il gère tout ce qui se passe en amont de votre code : détection des périphériques, communication série, surveillance de la sécurité et transmission des états — vous permettant ainsi de vous concentrer pleinement sur la conception de l'expérience utilisateur.
Configuration requise et compatibilité
Le service fonctionne sur les principales plateformes de bureau et peut être utilisé à partir de n'importe quel langage disposant d'un client WebSocket et d'un analyseur JSON:
- Plateformes : Windows 10 et versions ultérieures (MSVC), Linux (
.deb(paquet), macOS - Langages : Python, JavaScript / TypeScript, C++, C#, Rust, Go, Java, … tout ce qui prend en charge WebSocket + JSON
Intégrations officiellement prises en charge
Haply des intégrations natives pour le packageHaply Unity, Toia, Geomagic Freeform et NVIDIA Isaac Lab.
Au-delà de cela, le service est accessible depuis n'importe quelle plateforme ou environnement d'exécution intégrant un client WebSocket et un analyseur JSON — nous l'avons utilisé avec Unreal Engine, TouchDesigner et d'autres piles logicielles de simulation ou en temps réel. Si votre environnement peut établir une connexion WebSocket, il peut piloter un dispositif Inverse.
Pour des exemples spécifiques à chaque langage, consultez les dépôts d'exemples publics : C++ et Python.
Interfaces de communication
Le service met à disposition deux canaux de communication :
| Chaîne | Port | Transports | Objectif |
|---|---|---|---|
| Simulation | 10001 | WebSocket | Boucle commande/état en temps réel (1 message entrant → 1 état sortant) |
| Evénements | 10020 | WebSocket (en lecture seule) | Événements système : sécurité, batterie, connexion, alertes de débit |
| HTTP | 10001 | REST | Requêtes de configuration sans état, paramètres, gestion des sessions, analyse des appareils |
Toutes les charges utiles sont au format JSON. Consultez les conventions JSON pour connaître les règles relatives à l'enveloppe standard, aux ports et au type de contenu.
Cas d'utilisation
| Objectif | Par où commencer |
|---|---|
| Envoyer des forces ou des cibles de positionnement à un dispositif haptique | Contrôle en temps réel |
| Configurer la base, le montage, les préréglages ou les filtres | Configuration de la session |
| Se déplacer dans une scène (locomotion à vitesse contrôlée) | Module de navigation |
| Surveiller les événements système (sécurité, batterie, connexion) | Événements et surveillance |
| Apprendre par l'exemple | Tutoriels |
Système de coordonnées
Le repère interne Haply est orienté vers la droite (axe Z vers le haut: +X à droite, +Y vers l'avant, +Z vers le haut). Vous pouvez le remapper sur le repère de votre application à l'aide d'une simple permutation de bases: une fois cette configuration définie, toutes les entrées et sorties sont automatiquement converties.
Deux transformations permettent de positionner l'appareil dans votre scène :
- Mount — le décalage physique du périphérique (défini via un préréglage ou explicitement)
- Espace de travail — décalage d'exécution pour la navigation entre les caméras et les scènes (définissable manuellement ou via le module Navigation)
Consultez la section « Mount & Workspace » pour découvrir l'ensemble du processus de traitement des coordonnées.
Exécution du service
Le service Inverse peut fonctionner selon deux modes :
- Intégré au Haply (recommandé) — le Haply intègre la dernière version du service et la lance automatiquement dès que le Hub est ouvert. Aucune configuration manuelle n'est nécessaire ; vous bénéficiez toujours des derniers correctifs.
- Autonome — installez une version spécifique du service en tant que service Windows ou démon Unix à l'aide de l'Inverse Installer. Utile pour l'intégration continue (CI), les déploiements sans interface graphique ou les machines sur lesquelles le Hub n'est pas exécuté.
Gestion du service autonome
Windows — Ouvrez l'application Services : appuyez sur Win+R, tapez services.msc, recherchez «Haply Service », cliquez avec le bouton droit → Démarrer / Arrêter / Redémarrer.
Linux (systemd) :
systemctl start haply-inverse-service.service
systemctl stop haply-inverse-service.service
systemctl restart haply-inverse-service.service
systemctl enable haply-inverse-service.service # auto-start on boot
Référence complète de l'API
Pour consulter la spécification complète, lisible par machine, de chaque point de terminaison et de chaque message :
- Référence de l'API HTTP (OpenAPI) — Interface utilisateur interactive Swagger
- Référence de l'API de simulation (AsyncAPI) — visualiseur interactif AsyncAPI