Haply Inverse Service
Inverse Service läuft als Hintergrundprozess auf Ihrem Rechner und verbindet Haply-Haptikgeräte in Echtzeit mit Ihrer Anwendung. Dieser Prozess übernimmt alles, was unterhalb Ihres Codes liegt: Geräteerkennung, serielle Kommunikation, Sicherheitsüberwachung und Zustandsübertragung — damit Sie sich auf die Umsetzung des Nutzererlebnisses konzentrieren können.
Anforderungen und Kompatibilität
Der Dienst läuft auf den gängigen Desktop-Plattformen und lässt sich aus jeder Sprache mit einem WebSocket-Client und einem JSON-Parser ansteuern:
- Plattformen: Windows 10+ (MSVC), Linux (
.deb-Paket), macOS - Sprachen: Python, JavaScript / TypeScript, C++, C#, Rust, Go, Java, … alles, was WebSocket + JSON spricht
Offiziell unterstützte Integrationen
Haply pflegt eigene Integrationen für Haply Inverse Unity Package, Toia, Geomagic Freeform und NVIDIA Isaac Lab.
Darüber hinaus lässt sich der Dienst auf jeder Plattform oder Laufzeitumgebung nutzen, die einen WebSocket-Client und einen JSON-Parser mitbringt — wir haben ihn bereits zusammen mit Unreal Engine, TouchDesigner und anderen Echtzeit- oder Simulationsstacks eingesetzt. Wenn sich Ihre Umgebung über WebSocket anbinden lässt, kann sie ein Inverse-Gerät ansteuern.
Sprachspezifische Beispiele finden Sie in den öffentlichen Beispiel-Repositories: C++ und Python.
Kommunikationsschnittstellen
Der Dienst stellt zwei Kommunikationskanäle bereit:
| Kanal | Port | Transport | Zweck |
|---|---|---|---|
| Simulation | 10001 | WebSocket | Echtzeit-Befehls-/Zustandsschleife (1 Nachricht ein → 1 Zustand aus) |
| Events | 10020 | WebSocket (nur lesend) | Systemereignisse: Sicherheit, Akku, Verbindung, Warnungen zu Steuerraten |
| HTTP | 10001 | REST | Zustandslose Konfigurationsabfragen, Einstellungen, Sitzungsverwaltung, Geräteprüfung |
Alle Nutzdaten sind JSON. Siehe JSON-Konventionen für den Standard-Umschlag, die Ports und die Content-Type-Regeln.
Anwendungsfälle
| Ziel | Einstieg |
|---|---|
| Kräfte oder Positionsziele senden an ein Haptikgerät | Echtzeitsteuerung |
| Konfigurieren von Basis, Montage, Preset oder Filtern | Sitzungskonfiguration |
| In einer Szene navigieren (Fortbewegung per Ratensteuerung) | Navigationsmodul |
| Systemereignisse abhören (Sicherheit, Akku, Verbindung) | Events & Monitoring |
| Anhand von Beispielen lernen | Tutorials |
Koordinatensystem
Das interne Koordinatensystem von Haply ist rechtshändig, Z nach oben (+X rechts, +Y vorne, +Z oben). Sie können es mit einer einzigen Basispermutation auf das Koordinatensystem Ihrer Anwendung abbilden — einmal gesetzt, werden alle Ein- und Ausgaben automatisch umgerechnet.
Zwei Transformationen positionieren das Gerät in Ihrer Szene:
- Montage — der physische Versatz des Geräts (über ein Preset oder explizit gesetzt)
- Workspace — eine Laufzeit-Verschiebung für die Kamera- bzw. Szenennavigation (manuell oder über das Navigationsmodul gesetzt)
Die vollständige Koordinaten-Pipeline finden Sie unter Montage & Workspace.
Den Dienst ausführen
Inverse Service kann in zwei Modi laufen:
- Eingebettet in Haply Hub (empfohlen) — Haply Hub enthält die neueste Dienstversion und startet sie automatisch, sobald der Hub geöffnet ist. Keine manuelle Einrichtung; Sie erhalten stets die neuesten Fehlerbehebungen.
- Eigenständig — installieren Sie eine bestimmte Dienstversion als Windows-Dienst oder Unix-Daemon mit dem Inverse Installer. Nützlich für CI, Headless-Deployments oder Rechner, auf denen der Hub nicht läuft.
Verwalten des eigenständigen Dienstes
Windows — öffnen Sie die Dienste-App: Drücken Sie Win+R, geben Sie services.msc ein, suchen Sie "Haply Inverse Service" und klicken Sie mit der rechten Maustaste → Starten / Beenden / Neu starten.
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
Vollständige API-Referenz
Für die vollständige, maschinenlesbare Spezifikation jedes Endpunkts und jeder Nachricht:
- HTTP-API-Referenz (OpenAPI) — interaktive Swagger-UI
- Simulations-API-Referenz (AsyncAPI) — interaktiver AsyncAPI-Viewer