跳至主要内容
版本:3.5.x

Haply 逆向服务

Inverse Service作为后台进程在您的设备上运行,可实时将Haply 设备与您的应用程序连接起来。它负责处理代码层面的所有底层工作:设备检测、串行通信、安全监控以及状态流传输——因此您可以专注于打造用户体验。

系统要求与兼容性

该服务支持主流桌面平台,并可通过任何具备 WebSocket 客户端和 JSON 解析器的编程语言进行调用:

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

官方支持的集成

Haply 针对Haply Unity 包ToiaGeomagic 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 向上)。您可以通过一次基向量变换将其映射到应用程序的坐标系——一旦设置完成,所有输入和输出都会自动转换。

有两个变换用于将设备定位在场景中:

  • Mount— 设备的物理偏移量(通过预设或显式设置)
  • 工作区— 用于摄像机/场景导航的运行时漂移(可手动设置或通过“导航”模块设置)

完整的坐标处理流程请参见“Mount & Workspace”

运行该服务

Inverse 服务支持两种运行模式:

  • 集成于Haply 中 (推荐) Haply 已预装最新服务版本,并在 Hub 打开时自动启动。无需手动设置;您将始终获得最新的修复程序。
  • 独立模式— 使用Inverse Installer 将特定服务版本安装为Windows 服务或 Unix 守护进程。适用于持续集成(CI)、无头部署,或未运行 Hub 的机器。

管理独立服务

Windows — 打开“服务”应用:按下 Win+R, 输入 services.msc,找到“Haply Service”,右键单击 → 启动 / 停止 / 重启。

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 参考

如需查看每个端点和消息的完整机器可读规范: