Haply Inverser Dienst
Inverse Service läuft als Hintergrundprozess auf Ihrem Computer und verbindet Haply-Haptikgeräte in Echtzeit mit Ihrer Anwendung. Dieser Prozess übernimmt alle Aufgaben, die unterhalb Ihres Codes liegen: Geräteerkennung, serielle Kommunikation, Sicherheitsüberwachung und Statusübertragung – damit Sie sich ganz auf die Umsetzung des Nutzererlebnisses konzentrieren können.
Anforderungen und Kompatibilität
Der Dienst läuft auf den gängigen Desktop-Plattformen und kann von jeder Programmiersprache aus über einen WebSocket-Client und einen JSON-Parser angesteuert werden:
- Plattformen: Windows 10+ (MSVC), Linux (
.deb-Paket), macOS - Programmiersprachen: Python, JavaScript / TypeScript, C++, C#, Rust, Go, Java, … alles, was WebSocket und JSON unterstützt
Offiziell unterstützte Integrationen
Haply pflegt eigene Integrationen für das „Haply “, das „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 über einen WebSocket-Client und einen JSON-Parser verfügt – wir haben ihn bereits zusammen mit Unreal Engine, TouchDesigner und anderen Echtzeit- oder Simulations-Stacks eingesetzt. Wenn sich Ihre Umgebung über WebSocket anbinden lässt, kann sie ein Inverse-Gerät ansteuern.
Beispiele für die einzelnen Sprachen finden Sie in den öffentlichen Beispiel-Repositorys: C++ und Python.
Kommunikationsschnittstellen
Der Dienst stellt zwei Kommunikationskanäle zur Verfügung:
| Kanal | Hafen | Transport | Zweck |
|---|---|---|---|
| Simulation | 10001 | WebSocket | Echtzeit-Befehls-/Zustandsschleife (1 Nachricht ein → 1 Zustand aus) |
| Veranstaltungen | 10020 | WebSocket (nur lesend) | Systemereignisse: Sicherheit, Akku, Verbindung, Warnungen zu Steuerraten |
| HTTP | 10001 | REST | Zustandsunabhängige Konfigurationsabfragen, Einstellungen, Sitzungsverwaltung, Geräteprüfung |
Alle Nutzdaten liegen im JSON-Format vor. Siehe die JSON-Konventionen für den Standard-Header, die Ports und die Content-Type-Regeln.
Anwendungsfälle
| Ziel | Einstieg |
|---|---|
| Kräfte oder Positionsziele an ein Haptikgerät senden | Echtzeitsteuerung |
| Konfiguration von Basis, Montage, Voreinstellung oder Filtern | Sitzungskonfiguration |
| In einer Szene navigieren (Fortbewegung über die Pfeiltasten) | Navigationsmodul |
| Systemereignisse überwachen (Sicherheit, Akku, Verbindung) | Veranstaltungen & Überwachung |
| Anhand von Beispielen lernen | Anleitungen |
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 festgelegt, werden alle Ein- und Ausgaben automatisch umgerechnet.
Zwei Transformationen positionieren das Gerät in Ihrer Szene:
- Montage – die physische Verschiebung des Geräts (über ein Preset oder explizit festgelegt)
- Workspace – eine Laufzeitverschiebung für die Kamera- bzw. Szenennavigation (manuell oder über das Navigationsmodul eingestellt)
Die vollständige Koordinaten-Pipeline finden Sie unter „Montage & Arbeitsbereich“.
Den Dienst ausführen
Inverse Service kann in zwei Modi betrieben werden:
- Eingebettet in den „ Haply “-Hub (empfohlen) — Der „Haply “-Hub enthält die neueste Version des Dienstes und startet diese automatisch, sobald der Hub geöffnet wird. Es ist keine manuelle Einrichtung erforderlich; 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-Bereitstellungen oder Rechner, auf denen der Hub nicht läuft.
Verwaltung des eigenständigen Dienstes
Windows — Öffnen Sie die Dienste-App: Drücken Sie Win+R, geben Sie services.msc Suchen Sie „Haply -Inverse-Service“ und klicken Sie mit der rechten Maustaste darauf → 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
Die vollständige, maschinenlesbare Spezifikation jedes Endpunkts und jeder Nachricht finden Sie hier:
- HTTP-API-Referenz (OpenAPI) – interaktive Swagger-Benutzeroberfläche
- Simulations-API-Referenz (AsyncAPI) – interaktiver AsyncAPI-Viewer