跳转至主要内容

v3.5.1

3.5.1 版本是一个以稳定性和质量为重点的版本。主要功能包括:Inverse3 +手柄的 1↔1 配置下的自动配对功能,以及运动状态显示。 GET /devices/{id} 在没有打开的 WebSocket 会话时仍可保持同步,解决了在“力”模式和“位置”模式之间切换时出现的啸叫声,并引入了可在持续负载下自动调整的服務 tick 调度器。

亮点​

  • 适用于Inverse3 (含手柄)1↔1安装的自动配对装置。 当Inverse3 和握把准备就绪时,SDK会自动记录配对信息;由 pen_attached 通过Minverse 校准,在多设备配置中,数据不再出现传输错误。
  • 快照 GET /devices/{id} 已更新,且无打开的会话。 Inverse3 / Inverse3x /Minverse 设备(固件版本为 v7.5 及以上)现在无论 WebSocket 活动状况如何,其运动状态都会以 20 Hz 的频率被查询。v7.5 之前的固件会忽略此查询,并仅发出一次警告。
  • “力/位置”切换开关不再发出吱吱声。 从……到…… set_cursor_force ↔ set_cursor_position 利用专属时间窗口:在两个时间点之间,仅保留每台设备的最新值。HARP 中针对200毫秒空闲间隔的变通方案现已过时。
  • 自适应时钟调度器。主循环会根据负载情况调整发送频率,从而防止因时钟频率过低导致命令队列无限增长。
  • 在负载下以1对1的方式实时响应。 通过 WS 消息进行的流式响应每毫秒每会话最多一条;当达到上限而无法发送时,系统会重发前一条缓冲数据,因此模拟循环绝不会因 recv().

内部改进​

设备​

  • Inverse3 ↔ VerseGrip 设备配对记录(按设备)。 GET|POST|DELETE /devices/{sel}/paired_with 是按设备进行的一对一映射。 POST 消除双方的冲突; DELETE 删除所选条目;选择器必须对应唯一的标识符。
  • 在固件 v7.5+ 上以 20 Hz 频率查询运动状态。 GET /devices/{id} 返回来自 cursor_position, cursor_velocity, angular_position, angular_velocity 每 50 毫秒一次;对活动会话透明。
  • 流量控制用于 set_extension_data VerseGrip 无线版。 在服务每个时钟周期都会清空的“最旧数据放弃/闲置重试”管道中——发送过多不再导致无线链路饱和,发送不足也不再留下过期数据。

会话​

  • 针对仅进行控制(力/位置)的批次,新增了一条WS接收快捷路径,该路径绕过了基于配置的处理流程; configure / set_profile / 自定义命令始终会经过竞争条件补丁的处理。

可观测性​

  • 检测日志的生成频率取决于端口,并考虑了重复频率。 黑名单中的每个端口都会被单独检查;重复出现的行 "...blacklisted: skipping" 现已张贴 (×N) 针对两次触发之间被静音的时钟周期。
  • 当检测到非 WVG 设备时,VerseGrip 无线检测功能不再向日志中写入大量数据。

更正​

  • POST /device.config.preset avec defaults ou arm_front 现在会将设备的配置重置为出厂默认设置(此前此操作既无效果也不会引发错误)。 basis 该设置被保留,以确保应用程序中配置的数据库在挂载预设发生变化后仍能保留。
  • force_render_full_state 不再返回不包含块的快照 config 当相应的配置出现在同一条 WS 消息中时,配置路径会在快照生成之前同步清空。
  • force_render_full_state inter-sessions 返回目标的完整快照。 A和B现在都能看到完整的有效载荷(此前,A只能接收连续数据流)。
  • 跨会话命令,其中 target_session_id 未知项不再阻塞请求-响应循环。 申请人将收到自己的快照以及一条事件通知 session-command-dropped (cross-session-unknown-target).
  • Minverse 的多设备校准解锁问题已得到解决。 Minverse A的校准不再意外解锁Minverse B;inkwell成功标志的发布问题也已得到同样修正。
  • HTTP 设备选择器 接受 #1234 et 1234 作为设备标识符;选择器类(inverse3, verse_grip) 也可以与索引配合使用;404 消息保留了原始的选择器表达式。
  • 《指标》 ready VerseGrip 的无线功能现在取决于设备初始配对时获取的信息 — 此前,在某些重新连接过程中,设备尚未完全建立连接时,它就可能切换。
  • 基于密钥定时门参数的执行修改,现在将在下一次触发时生效(此前,该值在首次设置后即被锁定;只有新会话才会采用该修改)。

可能不兼容的更改​

  • 统一的 HTTP 404 状态码 dans basis, preset, mount, transform, force_gate : "{type} device #{id} not found" → "no device matches selector '{expr}'". 会话中的 404 错误也会以同样的方式处理。
  • Motif glob简体中文(大陆) devices/inverse*/... → devices/*inverse/... 力增益、力门增益、控制超时以及 safeties/expose_in_snapshot. 3.5.0 版本中使用旧式字面量的配置文件将无法链接。
  • 参数:序列化全局变量已移至 session/serialization/* (explicit_fields, force_complete_transforms, preview/*). 古老的小路 serialization/* 始终通过已弃用的别名进行解析;这些别名将在 4.0 版本中被移除。
  • 行为:在持续高负载情况下,将“按消息发送的 WS 响应”用作 tick 同步握手机制的客户端,每毫秒每会话最多只能收到一次响应。配置变更时的完整快照不受此影响。

已弃用的功能​

3.5.1 版本中没有相关内容。预览中的主开关作为 3.6 版本中从静默模式切换至警告模式的未来流程的弃用机制;第一批弃用功能预计将在 3.5.2 版本中实施。