Haply 逆向服务
Inverse Service作为后台进程在您的计算机上运行,并实时将Haply 上的触觉设备与您的应用程序连接起来。该进程负责处理您代码底层的所有工作:设备识别、串行通信、安全监控和状态传输——这样您就可以专注于实现用户体验。
系统要求与兼容性
该服务可在主流桌面平台上运行,并可通过 WebSocket 客户端和 JSON 解析器以任何编程语言进行调用:
- 平台: Windows 10 及以上版本(MSVC)、Linux(
.deb-Paket),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。
通信接口
该服务提供了两个通信渠道:
| Kanal | 港口 | 运输 | Zweck |
|---|---|---|---|
| 模拟 | 10001 | WebSocket | 实时命令/状态循环(1条消息输入 → 1个状态输出) |
| 活动 | 10020 | WebSocket(仅读取) | 系统事件:安全、电池、连接、控制速率警告 |
| 超文本传输协定 | 10001 | REST | 无状态配置查询、设置、会话管理、设备检测 |
所有有效数据均为 JSON 格式。有关标准封装、端口和内容类型规则,请参阅JSON 规范。
应用场景
| Ziel | 入门 |
|---|---|
| 向触觉设备发送力或位置目标 | 实时控制 |
| 配置基础设置、安装、预设或滤波器 | 会议配置 |
| 在场景中移动(通过鼠标控制移动) | 导航模块 |
| 监听系统事件(安全、电池、连接) | 事件与监控 |
| 通过实例学习 | 教程 |
坐标系
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 参考
有关每个端点和每条消息的完整、可机读规范:
- HTTP API 参考(OpenAPI)——交互式 Swagger 界面
- 模拟-API-参考(AsyncAPI)——交互式 AsyncAPI 查看器