Haply Inverse 服务
Inverse Service作为后台进程在您的设备上运行,可实时将Haply 设备与您的应用程序连接起来。它负责处理代码层面的所有底层工作:设备检测、串行通信、安全监控以及状态流传输——因此您可以专注于打造用户体验。
系统要求与兼容性
该服务支持主流桌面平台,并可通过任何具备WebSocket客户端和JSON解析器的编程语言进行调用:
平台:Windows 10及以上版本(MSVC)、Linux(.deb软件包)、macOS
编程语言:Python、JavaScript/TypeScript、C++、C、C#、Rust、Go、Java……以及任何支持WebSocket+JSON的语言
Haply针对Haply Unity包、Toia、Geomagic Freeform以及NVIDIA Isaac Lab的第一方集成。除此之外,只要平台或运行时环境自带WebSocket客户端和JSON解析器,即可使用该服务——我们已将其与虚幻引擎(Unreal Engine)、TouchDesigner以及其他实时或模拟技术栈配合使用。只要您的环境能够建立WebSocket连接,就能驱动Inverse设备。有关特定语言的示例,请参阅公开的示例代码库:C++和Python。
通信接口
所有有效载荷均为JSON格式。有关标准信封、端口和内容类型的规则,请参阅JSON规范。
| 频道 | 端口 | 运输 | 目的 |
|---|---|---|---|
| 模拟 | 10001 | WebSocket | 实时命令/状态循环(1条消息输入→1个状态输出) |
| 模拟 | 10001 | WebSocket | 实时命令/状态循环(1条消息输入→1个状态输出) |
| 活动 | 10020 | WebSocket(只读) | 系统事件:安全、电池、连接、速率警告 |
| 超文本传输协议 | 10001 | REST | 无状态配置查询、设置、会话管理、设备检测 |
用例
| 目标 | 从哪里开始 |
|---|---|
| 将力或目标位置发送至触觉设备 | 实时控制 |
| 配置基频、调制、预设或滤波器 | 会话配置 |
| 在场景中移动(速度控制移动) | 导航模块 |
| 在场景中移动(速度控制移动) | 导航模块 |
| 监听系统事件(安全、电池、连接) | 事件与监控 |
| 监听系统事件(安全、电池、连接) | 事件与监控 |
| 通过实例学习 | 教程 |
坐标系
完整的坐标处理流程请参见"Mount & Workspace"。
- Mount——设备的物理偏移量(通过预设或显式设置)
- 工作区——用于摄像机/场景导航的运行时漂移(可手动设置或通过"导航"模块设置)
- 工作区——用于摄像机/场景导航的运行时漂移(可手动设置或通过"导航"模块设置)
运行该服务
Inverse服务支持两种运行模式:
集成于Haply中(推荐)——Haply已预装最新服务版本,并在Hub打开时自动启动。无需手动设置;您将始终获得最新的修复程序。
独立模式——使用Inverse Installer将特定服务版本安装为Windows服务或Unix守护进程。适用于持续集成(CI)、无头部署,或未运行Hub的机器。
管理独立服务
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 UI
- 模拟API参考 (AsyncAPI) ——交互式AsyncAPI查看器
迁移
从3.5版本开始,Haply Inverse服务支持从旧版本升级到新版本。请参阅迁移指南了解详细信息。
有关从旧版本迁移的详细信息,请参阅迁移至3.5页面。
