跳转至主要内容

v3.5.1

3.5.1 是一个稳定版和质量版。其重点包括:在 1↔1 配置下,通过Inverse3 和手柄实现自动配对,以及通过 GET /devices/{id} 无需保持 WebSocket 连接处于活动状态,在功率模式与位置模式之间切换时消除吱吱声,以及在持续负载下为服务 tick 提供自适应调度程序。

亮点​

  • 适用于Inverse3 和手柄的1↔1安装的自动配对功能。 一旦Inverse3 和手柄就绪,SDK就会自动检测到配对。 pen_attached 在多设备配置中,Minverse 校准的启用操作不再出现错误。
  • 关于的最新快照 GET /devices/{id} 不举行公开会议。 对于运行固件版本 v7.5 及以上版本的Inverse3 、Inverse3x 和Minverse ,现在将以 20 Hz 的频率查询运动状态,且该查询与 WebSocket 的活动状态无关。固件版本低于 v7.5 的设备将跳过此查询,并仅发出一次警告。
  • 在“动力”和“位置”之间切换时,不再发出吱吱声。 在……之间切换 set_cursor_force ↔ set_cursor_position 这是插槽独占机制:在两个时钟周期之间,每台设备仅保留各自的最新指令。HARP 中针对200毫秒空闲暂停的解决方法已不再适用。
  • 自适应时钟调度器。主循环会根据负载情况调整发送速率,从而防止因时钟频率降低导致命令队列无限增长。
  • 在高负载下,流式处理的响应遵循“先入先出”原则。 每个会话中,每条 WS 消息的流式响应数量限制为 1/ms。如果达到此限制,系统将重新播放之前的缓冲区,因此模拟循环永远不会 recv() 阻止。

内部改进​

设备​

  • Inverse3 ↔ VerseGrip 的按设备分类的配对注册表。 GET|POST|DELETE /devices/{sel}/paired_with 是一种按设备进行的1:1映射。 POST 消除了双方的冲突; DELETE 删除所选条目;选择器必须解析为一个且仅一个 ID。
  • 从固件版本 v7.5 起,以 20 Hz 的频率查询运动状态。 GET /devices/{id} 每 50 毫秒提供一次最新数值,用于 cursor_position, cursor_velocity, angular_position und angular_velocity; 不会影响当前会话。
  • set_extension_data 适用于通过无线电控制速率的VerseGrip。 该数据流会丢弃较旧的值,在空闲时重复发送最后一个值,并在服务 tick 时清空。发送过于频繁不会再导致无线电链路饱和,而发送过于稀少则不会再留下过时的值。

会议​

  • 针对纯控制批处理(力/位置)的新 WS 接收快速路径会跳过配置感知型管道; configure / set_profile 并且自定义命令仍通过 Race-Fix 运行。

可观测性​

  • 检测的日志时序由每个端口单独控制,并会考虑消息的持续时间。 黑名单中的每个端口都会被单独限速;重复出现的行 "...blacklisted: skipping" 现在穿着 (×N) 针对在两次触发之间被抑制的Ticks。
  • 当查询非WVG设备时,VerseGrip的无线电检测功能不再会使日志被淹没。

错误修复​

  • POST /device.config.preset mit defaults oder简体中文(大陆) arm_front 现在将设备的支架重置为出厂设置(此前为无操作)。 basis 将予以保留,以便应用程序配置的基站能够保留支架预设值的更改。
  • force_render_full_state 不再提供缺少的快照 config-阻塞,当同一条 WS 消息中收到了相应的配置时——配置路径会在快照生成之前同步处理。
  • 跨会议的 force_render_full_state 提供目标的完整快照。 现在,A和B都能接收完整的有效载荷(此前A只能接收流媒体数据)。
  • 跨会话命令,其中包含未知 target_session_id 不再阻塞请求-响应循环。 请求者将收到自己的快照以及一个事件 session-command-dropped (cross-session-unknown-target).
  • Minverse 的解锁——跨设备校准不再出现错误。 Minverse A的校准不再解锁Minverse B;同样的修正也适用于inkwell-success的航向广播。
  • HTTP 设备选择器 已接受 #1234 und 1234 作为设备 ID;选择器类(inverse3, verse_grip) 与索引协同工作;404 错误信息保留原始的选择器表达式。
  • Das ready-通过无线电向VerseGrip发出警报 现在该值仅在初始设备信息握手完成后才会设置——此前,在某些重新连接路径上,该值可能会在设备完全登录之前发生跳转。
  • 基于键控速率门(keyed-rate-gate)的设置中的运行时更改,现在会在下次访问时生效(此前这些更改会在首次 emplace 时被冻结;只有新会话才会应用该更改)。

可能的破坏性变更​

  • HTTP 404 状态码的统一处理 über basis, preset, mount, transform, force_gate hinweg: "{type} device #{id} not found" → "no device matches selector '{expr}'". 会话的 404 错误信息也已相应调整。
  • 设置-全局 devices/inverse*/... → devices/*inverse/... 用于力缩放的增强、力门控的增强、控制超时以及 safeties/expose_in_snapshot. 来自 3.5.0 版本且包含旧字面量的配置文件在绑定时会出错。
  • 设置:序列化全局变量已移至 session/serialization/* (explicit_fields, force_complete_transforms, preview/*). 阿尔特 serialization/*-路径仍通过过时的别名进行解析;将在 4.0 版本中移除。
  • 行为:将每条消息的 WS 响应用作 tick-sync 握手机制的客户端,在持续负载下,每毫秒每会话最多只能收到一次响应。配置更改时的完整快照不受此影响。

已弃用的功能​

3.5.1 版本中暂未包含此功能。预览主开关是 3.6 版本中即将推出的管道的基础架构,该管道将把静默提示转换为警告;计划在 3.5.2 版本中进行第一轮弃用处理。