跳过至主要内容

Haply 逆向服务

Inverse Service作为后台进程在您的机器上运行,可将 Haply 触觉设备实时连接到您的应用程序。它会在应用程序代码之下的一层处理设备的检测、串行通信、安全监控以及状态流传输等所有工作,因此您可以专注于构建用户体验。

要求与兼容性​

该服务可在主流桌面平台上运行,并支持通过配备 WebSocket 客户端和 JSON 解析器的任意编程语言进行操作:

  • 平台: Windows 10 及更高版本(MSVC)、Linux(.deb软件包)、macOS
  • 编程语言:Python、JavaScript / TypeScript、C++、C#、Rust、Go、Java、…… 所有支持 WebSocket + JSON 的语言

官方支持的集成​

Haply 为Haply Inverse Unity Package、Toia、Geomagic Freeform以及NVIDIA Isaac Lab提供并维护官方集成支持。

除上述情况外,只要是具备 WebSocket 客户端和 JSON 解析器的平台或运行时,均可使用此服务。我们已验证该服务可与Unreal Engine、TouchDesigner以及其他实时和模拟技术栈配合使用。只要您的环境能够建立 WebSocket 连接,即可操作 Inverse 设备。

有关各编程语言的示例,请参阅公开的示例代码库:C++和Python。

通信接口​

该服务公开了两个通信通道:

频道端口运输用途
模拟10001WebSocket实时命令/状态循环(1条消息输入 → 1个状态输出)
活动10020WebSocket(只读)系统事件:安全、电池、连接、速率警告
超文本传输协定10001REST无状态的配置查询、配置、会话管理、设备信息查询

所有有效载荷均采用 JSON 格式。有关标准信封、端口和内容类型的规则,请参阅JSON 规范。

用例​

目的起始地点
将力或位置的目标值发送至力反馈设备实时控制
设置:底层、安装、预设、滤镜会话设置
场景导航(通过速率控制移动)导航模块
接收系统事件(安全、电池、连接)事件与监控
通过示例学习教程

坐标系​

Haply 的内部坐标系为右手系,Z 轴向上(+X 向右、+Y 向前、+Z 向上)。可通过使用单一基底的变换,将其转换为应用程序的坐标系。一旦设置完成,所有输入和输出都会自动进行转换。

在场景中,有两种用于确定设备位置的变换:

关于坐标转换管道的整体情况,请参阅“坐标系”和“工作空间”部分。

服务执行​

Inverse Service 支持两种运行模式:

  • Haply 集成到 Hub 中(推荐)—Haply Hub 包含最新的服务版本,并在 Hub 打开时自动启动。无需手动配置,即可始终使用最新的修复程序。
  • 独立模式—使用 Inverse Installer将特定服务版本安装为 Windows 服务或 Unix 守护进程。这在持续集成(CI)、向无头环境部署以及在未运行 Hub 的机器上使用时非常方便。

独立服务的管理​

Windows — 打开服务应用: Win+R按下,services.msc输入该内容,找到“Haply 反向服务”,右键单击并选择“启动”、“停止”或“重启”。

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

API参考(完整版)​

关于所有端点和消息,其完整的机器可读规范如下: