跳至主要内容

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 可以以两种模式运行:

管理独立服务​

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

关于每个端点和消息的完整机器可读规范: