跳转至正文

v3.5.1

3.5.1 是一个旨在提升稳定性和改进质量的版本。主要亮点如下:1↔1Inverse3 + 握把配置的自动配对,即使没有打开的 WebSocket 会话, GET /devices/{id}提供最新的运动状态,消除了在切换力/位置模式时产生的尖叫声(screech),以及在持续负载情况下能够自动调整的服务脉冲调度器。

亮点​

  • 1↔1Inverse3 + 握把安装的自动配对。 Inverse3 准备好1个设备和1个握柄后,SDK会自动完成配对注册。在多设备配置中, pen_attached 以及Minverse 校准解锁功能路由错误的问题已得到解决。
  • 即使没有开放的会话,也能获取最新 GET /devices/{id} 提供快照。 固件版本为v7.5及以上的Inverse3 /Inverse3x/Minverse,现在无论WebSocket活动状况如何,都会以20 Hz的频率轮询运动状态。固件版本低于v7.5的设备则会跳过轮询,并输出一次警告。
  • 消除切换动力/位置时的吱吱声。 set_cursor_force ↔ set_cursor_position 由于转换采用时隙排他模式,因此在两个时钟周期之间,每个设备仅保留最新值。因此,不再需要HARP的200毫秒空闲间隔绕过处理。
  • 自适应 tick 调度器。由于主循环会根据负载情况调整调度速度,因此即使出现较慢的 tick,命令队列也不会无限增长。
  • 在负载情况下的“一进一出”流式响应。 每个 WS 消息的流式响应在每个会话中限制为 1/ms。一旦达到限制,系统将回放之前的缓冲区,因此 sim 循环会 recv()不会被屏蔽。

内部改进事项​

设备​

  • 各设备Inverse3 与VerseGrip配对注册表。 GET|POST|DELETE /devices/{sel}/paired_with这是按设备进行的1:1映射。 POST会移除(evict)双方中任一方冲突的现有条目,并, DELETE用于清除所选项目,且选择器必须被解释为一个 ID。
  • 固件版本 v7.5 及以上版本的 20 Hz 运动状态轮询。 GET /devices/{id}每隔 50 毫秒更新一次 cursor_position, cursor_velocity, angular_position, angular_velocity 该操作会返回一个值,且不会影响当前会话。
  • 无线 VerseGrip set_extension_data 速度控制。 在服务时钟中,会处理一个管道,该管道会丢弃过时的值,并在空闲时重复传输。即使传输过多,也不会导致无线链路饱和;即使传输不足,也不会残留过时的值。

会话​

  • 新增了一条用于控制专用批处理(力/位置)的WS接收高速路径,该路径会跳过配置识别流水线。 configure / set_profile / 自定义命令仍会经过竞争条件(race)的修正路径。

可观测性 (Observability)​

  • 检测日志的频率按端口分别管理,并会考虑是否持续发生。 黑名单中登记的每个端口均可独立控制。重复的 "...blacklisted: skipping" 日志行现在显示两次执行之间被抑制的时钟脉冲数,即 (×N)会显示此内容。
  • 在检测非-WVG设备时,无线VerseGrip检测功能不再导致日志被过度填满。

修改内容​

  • POST /device.config.preset在 defaults 或者 arm_front如果指定了 现在,设备挂载将重置为出厂默认设置(此前该操作会被静默忽略)。 basis由于该设置会被保留,因此即使更改了挂载预设,应用中设置的基准值也会保持不变。
  • force_render_full_state当收到与之匹配的 configure 请求等 WS 消息时,将不再 config 不会返回缺失区块的快照 — 在创建快照之前,会先同步处理 configure 路径。
  • 交叉会议 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 设备选择器作为设备 ID #1234哇 1234均允许。选择器类(inverse3, verse_grip) 也可以与索引一起使用,且 404 错误信息中会原样显示原始选择器表达式。
  • 无线 VerseGrip ready 该标志现在仅在初始设备信息握手之后才会被设置。 此前,在某些重新连接路径中,该标志可能会在设备完全完成自我报备之前发生变化。
  • 基于键的速率门设置的运行时更改将从下一次热访问开始生效(此前该设置在首次 emplace 时即被固定,仅在新会话中才会反映更改)。

潜在的破坏性变更(Breaking Changes)​

  • HTTP 404 错误信息统一 — basis, preset, mount, transform, force_gate 上半场 "{type} device #{id} not found" → "no device matches selector '{expr}'"已更改为。第404节也进行了统一调整。
  • 设置 glob devices/inverse*/... → devices/*inverse/... 适用对象:力-量程增益、力-阈值增益、控制超时、 safeties/expose_in_snapshot. 使用原有字面量的 3.5.0 配置文件将无法绑定。
  • 设置:序列化全局项为 session/serialization/*已移至(explicit_fields, force_complete_transforms, preview/*). 现有 serialization/* 该路径仍通过已停止支持的别名进行解析,并计划在 4.0 版本中移除。
  • 行为变更:在持续流量情况下,将每条消息的 WS 响应用作咔嗒同步握手机制的客户端,每会话最多只能收到一次响应,且响应间隔为 1 毫秒。配置变更时的完整快照不受此影响。

停止支持(已弃用)​

3.5.1 版本中没有即将停用的功能。preview 主开关是为即将发布的 3.6 版本中“静默 → 警告”转换流程设计的停用基础架构,首次停用计划在 3.5.2 版本中实施。