跳转至正文

参见设置

本文是 /settings/ 端点返回的所有设置 键, 类型(type_hint 标准), 约束条件(metadata.constraint.range 以及(如适用) locked 与(标准)一起列出。

locked 设置是 运行时只读是。配置文件或 Haply Hub 虽然可以通过“设置”页面进行更改,但要使更改生效, 必须完全重启该服务. 这些设置见下表 启动显示为。

构成​

在服务启动过程中,用于覆盖设置的配置文件位于以下位置:

平台位置
WindowsC:\ProgramData\Haply\Inverse\haply-inverse-service-config.json
macOS/Library/Application Support/Haply/Inverse/haply-inverse-service-config.json
Linux/etc/haply-inverse-service/haply-inverse-service-config.json

配置文件是将配置键映射到重写值的 扁平化 JSON 对象是。键是 /settings/ 必须是 HTTP 路由返回的有效配置键(API 参考 (注)未指定的键将使用服务的默认值。

例如,网络配置的重定义如下:

{
"communication/http/port": 8400,
"communication/websocket/port": 8500,
"communication/events/port": 9000,
"communication/bind_all_interfaces": true
}

是否显示及筛选​

/settings 列表端点(GET /settings, GET /settings/)基本上是 基本(basic) 仅返回设置。若要包含指定了 advanced 标志的设置,请 ?advanced=true如果要包含带有“已弃用”标记的别名,请 ?deprecated=true请传递该参数。隐藏设置仅供内部使用, POST /settings/misc/hidden_settings通过 misc/hidden_settings仅当已设置时才会显示(目前没有相应的查询参数)。过滤器标志以“AND”条件组合。 advanced哇 hidden 所有标志均已设置的密钥必须同时满足两个门限条件。针对已知密钥的POST和DELETE操作不受门限限制。

如果正确使用规范键(canonical key),则单键查询(GET /settings/<key>) 可绕过 advanced/deprecated 门。这对具备相关知识的客户端非常有用。隐藏密钥仍受该门的限制。

有三种运行时开关用于设置网关的初始值,该值在服务生命周期内保持不变:

键类型约束条件说明
misc/advanced_settingsbool—GET /settings 在列表中 advanced 包含已标记的设置(默认值 false). 对于所有请求, ?advanced=true这相当于传递……
misc/deprecated_settingsbool—GET /settings 在列表中 deprecated 包含已标记的设置(默认值 false). 对于所有请求, ?deprecated=true这相当于传递……

类型映射​

API 返回的类型提示对应于以下 JSON 格式:

  • STRING → string
  • BOOL → bool
  • INT → int
  • FLOAT → float
  • ARR_STRING → string[]
  • VEC3 → vec3 ({x, y, z} (具有属性的对象)
  • GENERIC → json (任意结构化值)

communication/…​

HTTP、WebSocket 和事件流服务器的网络端口及绑定地址。其中大部分项仅在启动时使用。

键类型约束条件说明
communication/serial/enabledbool—启用或禁用串行设备通信。
communication/bind_addressstring启动这是 HTTP 和 WebSocket 服务器将绑定的 IP 地址。
communication/bind_all_interfacesbool启动使用服务器代替 localhost 0.0.0.0绑定到。
communication/http/portint启动HTTP REST API 端口(默认值 10000).
communication/websocket/portint启动v3.1 WebSocket 默认端口(默认值 10001).
communication/websocket/legacy_portint启动Legacy v3.0 WebSocket 端口(默认值 10000).
communication/events/portint启动事件流 WebSocket 端口(默认值 10020).

devices/…​

devices/detection/…​

这是串行端口扫描策略。所有项目均属于高级(advanced)设置。

键类型约束条件说明
devices/detection/scan_period_msint范围 100–10000;启动时串行端口扫描间隔(毫秒)。
devices/detection/handshake_timeout_sint范围 1–15各端口的握手超时(秒)。
devices/detection/max_retriesint范围 1–10每个端口的最大握手重试次数。
devices/detection/failure_log_delay_sint范围 1–60在再次记录检测失败之前的时间延迟(秒)。
devices/detection/block_looping_portsbool—一旦检测到环路端口,将阻止设备进入就绪状态。
devices/detection/excluded_portsjson—检测时应跳过的串行端口路径。
devices/detection/additional_portsstring[]—无需任何条件即可进行扫描的额外串行端口路径。
devices/detection/allowed_vendor_id_filterstring[]—列举端口时允许的 USB 供应商 ID。
devices/detection/port_name_substring_filterstring[]—要与各平台进行匹配的端口名称的子字符串。
devices/detection/wireless_verse_grip_description_filterstring[]—用于无线 VerseGrip 检测的端口说明部分的字符串。
devices/detection/inverse3x_description_filterstring[]—Inverse3x 检测端口说明中的部分字符串。
devices/detection/extra_ports (已停用)string[]—相反 devices/detection/additional_ports。读写操作会通过正式密钥以透明方式进行。

devices/*inverse/…​

这是适用于所有Inverse3 系列设备的全局默认值。若在会话中进行了覆盖,则以会话设置为准。

在 3.5.1 版本中更名为

在 3.5.0 版本中,通配符模式 devices/inverse*/…并且,先行 *现在 inverse 位于前面。使用旧字面量的配置文件在 3.5.1 版本中会因绑定失败而无法运行,请进行更新。除此之外,该键本身并未发生任何变化。

键类型约束条件说明
devices/*inverse/filters/force_scale/gainfloat范围 0.0–2.0适用于所有设备的全局力输出倍率。
devices/*inverse/filters/force_gate/gainfloat范围 0.0–1.0新会话的默认功率门增益。
devices/*inverse/control_timeout_msint范围 50–10000在解除设备控制锁定之前的超时时间(毫秒)。
devices/*inverse/query_orientation_on_idlebool—当设备处于空闲状态时,固件会查询机身的方向。
devices/*inverse/safeties/expose_in_snapshotbool—GET /devices/{id} 在快照中包含各设备的安全标记。

devices/presets​

键类型约束条件说明
devices/presetsjson—按设备类型划分的默认设备配置预设(inverse_arm_front_*, inverse_led_front_*, minverse_*, verse_grip_default, wireless_verse_grip_default, custom_verse_grip_default(如坐标系转换、基等)。

devices/wireless_verse_grip/…​

键类型约束条件说明
devices/wireless_verse_grip/battery/low_thresholdint—触发低电量警告的电池电量(%)阈值。
devices/wireless_verse_grip/battery/critical_thresholdint—触发电池危险警告的电池电量(%)阈值。
devices/wireless_verse_grip/battery/reset_marginint—在解除电池警告之前的滞后裕量值。
devices/wireless_verse_grip/filters/orientation_filterjson启动时针对无线 VerseGrip 方向的 One Euro Filter 配置。

features/…​

features/calibration/…​

键类型约束条件说明
features/calibration/hall_thresholdint范围 1–32校准过程中,判断为已安装笔的孔传感器水准。

features/grip_hook/…​

这是一种自动握钩功能,可在直握握把时固定光标位置。

键类型约束条件说明
features/grip_hook/enabledbool—当将握把竖直握持时,将激活握把钩自动锁定功能。
features/grip_hook/use_hallbool—在握持检测中,使用孔传感器阈值而非方向。
features/grip_hook/hallint范围 1–32触发夹持锁定的霍尔传感器值阈值。
features/grip_hook/hold_durationint范围 10–1000触发后保持锁定的时间(毫秒)。

features/navigation/bubble/…​

这是气泡导航模块的默认值。 bubble 该操作在首次激活时会被传递给会话。每个字段的运行时行为是 导航模块 请参阅该页面。

键类型约束条件说明
features/navigation/bubble/centervec3—这是气泡的默认中心位置。
features/navigation/bubble/center_enabledbool—在首次启用气泡操作时设置的 center应用。
features/navigation/bubble/rotation_enabledbool—将工作空间旋转应用于导航方向。
features/navigation/bubble/scale_enabledbool—将工作区比例应用于导航速度。
features/navigation/bubble/center_drift_speedfloat≥ 0auto_follow 这是中心模式下的漂移速度(m/s)。
features/navigation/bubble/max_velocityfloat—这是该速度区间内的最大导航速度(m/s)。
features/navigation/bubble/velocity_zone_widthfloat—这是气泡表面外侧速度区域的宽度(米)。
features/navigation/bubble/reset_velocity_on_entrybool—当光标进入气泡时,将速度重置为0。
features/navigation/bubble/spring_innerfloat—这是气泡中心的弹簧刚度(N/m)。
features/navigation/bubble/spring_surfacefloat—这是气泡表面的弹簧刚度(N/m)。
features/navigation/bubble/spring_outerfloat—这是外边界处的弹簧刚度(N/m)。
features/navigation/bubble/damping_innerfloat—这是气泡中心处的衰减系数(Ns/m)。
features/navigation/bubble/damping_surfacefloat—这是气泡表面的衰减系数(Ns/m)。
features/navigation/bubble/damping_outerfloat—这是外边界处的衰减系数(Ns/m)。
features/navigation/bubble/wall_stiffnessfloat—这是位于外边界处的刚性壁的刚度(N/m)。
features/navigation/bubble/bump_widthfloat—这是气泡表面上触觉凸起的宽度(m)。
features/navigation/bubble/bump_stiffnessfloat—这是气泡表面触觉凸起处的刚度(N/m)。
features/navigation/bubble/stop_at_collisionbool—当碰撞处于活动状态时,阻止气泡中心沿碰撞方向漂移。
features/navigation/bubble/collision_thresholdfloat> 0这是用于检测碰撞的外力大小(N)。
features/navigation/bubble/collision_inflate_scalefloat≥ 1在冲突处于活动状态期间 velocity_zone_width这是乘以的倍率。
features/navigation/bubble/collision_exit_ratiofloat范围 (0,1]这是滞后比。 |ext_force|a collision_threshold × this 向下坠落时,将解除碰撞状态。 1.0这将禁用滞后效应。
features/navigation/bubble/avatar_boundary_enabledbool—将化身的世界位置设置为 avatar_boundary 限制在 SDF 形状内。

features/safe_trajectory/…​

这是用于末端执行器动作的速度限制器。

键类型约束条件说明
features/safe_trajectory/enabledbool—启用“安全轨迹(safe-trajectory)”限速器。
features/safe_trajectory/max_velfloat范围 0.01–2.0这是允许的最大末端执行器速度(m/s)。

features/screensaver/…​

当会话未进行控制时,Inverse3 设备上播放的空闲动画。

键类型约束条件说明
features/screensaver/enabledbool—Inverse3 在设备上启用空闲时的屏幕保护程序动画。
features/screensaver/speedfloat范围 0.001–0.2这是屏幕保护程序动画的速度。
features/screensaver/distracted_speedfloat范围 0.001–0.2这是当用户在附近但未进行交互时的动画速度。

features/sdf/…​

这是带符号距离场(SDF)触觉效果模块(SDF HFX)。

键类型约束条件说明
features/sdf/enabledbool—启用或禁用 SDF 触觉效果模块。
features/sdf/state_outputbool—默认情况下,设备输出有效载荷中包含 SDF 状态。
features/sdf/max_countint范围 0–128活动 SDF 效果的最大数量(0 = 无限制)です。
features/sdf/events/createdbool—当生成新的 SDF 效果时,会触发该事件。
features/sdf/events/deletedbool—当 SDF 效果被移除时,会触发该事件。
features/sdf/events/updatedbool—当 SDF 效果更新时,会触发该事件。
features/sdf/probe_on_zero_force/enabledbool—当施加的力接近0时,会自动探测SDF场。
features/sdf/probe_on_zero_force/delayfloat范围 0.001–60.0这是能量降至0后,直至开始自动探测所经历的延迟时间(秒)。

features/verse_grip_pairing/…​

Inverse3 这是一项用于跟踪设备与(有线或无线)Verse Grip 之间连接/断开状态的功能。它是Haply Hub 配对用户界面的基础。

键类型约束条件说明
features/verse_grip_pairing/enabledbool—启用配对及连接/断开跟踪功能。
features/verse_grip_pairing/hall_threshold_vgint范围 1–32根据有线VerseGrip连接判断的孔位级别。
features/verse_grip_pairing/hall_threshold_wvgint范围 1–32这是根据无线 VerseGrip 连接判断的孔位级别。
features/verse_grip_pairing/detach_debounce_msint范围 0–1000这是在确定分离之前反跳的时间段(毫秒)。
features/verse_grip_pairing/heartbeat_msint范围 100–10000强制重新提醒之间的间隔(毫秒)。
features/verse_grip_pairing/force_attachedbool—绕过霍尔传感器来检测连接状态 true将其永久固定(用于绕过硬件故障)。

session/serialization/…​

“Transform” 输出格式 — 会影响 WebSocket 和 HTTP JSON 负载。为了反映按会话范围的特性,这些键在 3.5.1 版本中 serialization/*在……中 session/serialization/*已重定向至该地址。原有路径仍可通过“已弃用(deprecated)”别名进行解析。

键类型约束条件说明
session/serialization/explicit_fieldsbool—在序列化输出中包含与恒等默认值相同的 transform 字段(例如: position: {0,0,0}, rotation: {w:1,…}). 当客户端要求所有字段都必须明确存在时,此选项非常有用。默认值: false.
session/serialization/force_complete_transformsbool—包括方向专用设备(Verse Grip、Wireless Verse Grip)在内的所有 transform 输出 position, rotation, 还有 scale总是输出。否则,这些设备会 rotation仅输出。 session/serialization/explicit_fields包括。默认值: false.
serialization/explicit_fields (停止支持)bool—相反 session/serialization/explicit_fields。读写操作会通过正式密钥以透明方式进行。
serialization/force_complete_transforms (停止支持)bool—相反 session/serialization/force_complete_transforms。读写操作会通过正式密钥以透明方式进行。

session/…​

这是会话调度程序。

键类型约束条件说明
session/min_simulation_rate_hzint范围 20–500这是触发警告前的设备模拟速度(Hz)的最低允许值。

rate/…​

这是服务分批处理。该功能在 3.5.1 版本中引入——以下四个 rate/websocket/* 基此前曾 session/commands/* 它位于下方,而原有路径仍可通过“已弃用(deprecated)”别名进行解析。

键类型约束条件说明
rate/websocket/zoh_window_msint—零阶保持(zero-order-hold)窗口——抑制在此窗口内接收到的探针(毫秒)。
rate/websocket/drop_warning_thresholdint—这是在触发警告之前,在窗口中拖放的命令数量。
rate/websocket/drop_warning_window_msint—这是用于聚合已丢弃命令的滑动窗口大小(毫秒)。
rate/websocket/tick_on_empty_batchbool高级即使整个 WebSocket 批处理被丢弃, main_loop 预约Tik。
session/commands/zoh_window_ms (停止支持)int—相反 rate/websocket/zoh_window_ms使用。读写操作会以透明的方式进行转发。
session/commands/drop_warning_threshold (停止支持)int—相反 rate/websocket/drop_warning_threshold使用。读写操作会以透明的方式进行转发。
session/commands/drop_warning_window_ms (停止支持)int—相反 rate/websocket/drop_warning_window_ms使用。读写操作会以透明的方式进行转发。
session/commands/tick_on_empty_batch (停止支持)bool—相反 rate/websocket/tick_on_empty_batch使用。读写操作会以透明的方式进行转发。

仅限内部使用的设置​

在 3.5.1 版本中,有多个设置系列 hidden以……形式提供,并保留作内部使用—— rate/dispatch/*(AIMD 发送速率上限及背压阈值), session/freeform/*(基于行为的指纹识别), session/serialization/preview/*(包括欧拉四元数输出和 Wireless VerseGrip 路由等发布前的串行化实验)。为了调试, misc/hidden_settings虽然可以通过该方式访问,但后续的小版本更新中可能会将其升级、更名或移除,因此请勿将客户端的行为固定在此设置上。