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_positionundangular_velocity; 不会影响当前会话。 set_extension_data适用于通过无线电控制速率的VerseGrip。 该数据流会丢弃较旧的值,在空闲时重复发送最后一个值,并在服务 tick 时清空。发送过于频繁不会再导致无线电链路饱和,而发送过于稀少则不会再留下过时的值。
会议
- 针对纯控制批处理(力/位置)的新 WS 接收快速路径会跳过配置感知型管道;
configure/set_profile并且自定义命令仍通过 Race-Fix 运行。
可观测性
- 检测的日志时序由每个端口单独控制,并会考虑消息的持续时间。 黑名单中的每个端口都会被单独限速;重复出现的行
"...blacklisted: skipping"现在穿着(×N)针对在两次触发之间被抑制的Ticks。 - 当查询非WVG设备时,VerseGrip的无线电检测功能不再会使日志被淹没。
错误修复
POST /device.config.presetmitdefaultsoder简体中文(大陆)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 设备选择器 已接受
#1234und1234作为设备 ID;选择器类(inverse3,verse_grip) 与索引协同工作;404 错误信息保留原始的选择器表达式。 - Das
ready-通过无线电向VerseGrip发出警报 现在该值仅在初始设备信息握手完成后才会设置——此前,在某些重新连接路径上,该值可能会在设备完全登录之前发生跳转。 - 基于键控速率门(keyed-rate-gate)的设置中的运行时更改,现在会在下次访问时生效(此前这些更改会在首次 emplace 时被冻结;只有新会话才会应用该更改)。
可能的破坏性变更
- HTTP 404 状态码的统一处理 über
basis,preset,mount,transform,force_gatehinweg:"{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 版本中进行第一轮弃用处理。