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 版本中实施。