Zum Hauptinhalt springen

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:

KanalHafenTransportZweck
Simulation10001WebSocketEchtzeit-Befehls-/Zustandsschleife (1 Nachricht ein → 1 Zustand aus)
Veranstaltungen10020WebSocket (nur lesend)Systemereignisse: Sicherheit, Akku, Verbindung, Warnungen zu Steuerraten
HTTP10001RESTZustandsunabhä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​

ZielEinstieg
Kräfte oder Positionsziele an ein Haptikgerät sendenEchtzeitsteuerung
Konfiguration von Basis, Montage, Voreinstellung oder FilternSitzungskonfiguration
In einer Szene navigieren (Fortbewegung über die Pfeiltasten)Navigationsmodul
Systemereignisse überwachen (Sicherheit, Akku, Verbindung)Veranstaltungen & Überwachung
Anhand von Beispielen lernenAnleitungen

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: