v3.5.3
3.5.3 是一个补丁版本。主要变更包括:更智能的自动配对功能(当您更换已配对的Inverse3 +Grip套装中的一半设备时,系统会重新配对);解决了有线Verse Grips出现的错误电池警告问题; 对固件功能的检测更加透明,不再默认忽略不支持的命令;连接时的状态指示灯更稳定;以及服务关闭和重启时不再发生崩溃。此外,此版本还包含多项针对设备和序列化问题的修复,以及一些关于字节级传输的说明。
主要更新内容
- 当您更换套装中的一只耳机时,自动配对功能会重新建立配对。如果从自动配对的Inverse3 + Verse Grip套装中更换了一台设备,SDK现在会移除过时的配对,并重新与新连接的设备建立配对。手动配对不受影响。
- 有线版Verse Grips不再出现错误的电池警告。低电量和电量临界时的警告现在仅针对无线连接的Verse Grips触发;有线版Verse Grips在电量低或临界时将不再发出错误警告。
- 对固件功能进行更透明的测试。 如果对某台设备请求其固件版本过旧而无法支持的触觉功能——例如固件版本低于7.5时请求均匀或方向依赖型阻尼,或固件版本低于7.4时请求返回初始位置——系统现在将返回HTTP 422状态码并触发一个事件
device-protocol-unsupported,而不是用一个具有误导性的“200”来默认驳回该请求。 - 连接时的状态指示灯更稳定。 Inverse3 的状态指示灯不再在每次连接或重新连接时闪烁红色:在唤醒后的约5秒稳定期内,连接将保持稳定,因此固件的连接看门狗不再触发。
- 服务可无崩溃地停止和重启。停止和重启服务时,不再发生崩溃或卡死的情况。已对停止和重启流程进行了优化,以消除在启用和停用服务时出现的系统崩溃和卡死问题。
内部改进
- Clutch 导航模式(实验性功能,默认处于关闭状态)。一种新的导航模式,可让您在物理设备继续移动的同时,缩小或完全冻结服务导出到场景中的运动——该模式包含用于精细定位的半速模式(“precise”),以及用于重新定位工作区域的完全冻结模式。 松开控制后,累积的偏移量将随后被导入工作区,从而确保场景光标不会出现跳动。无论比例如何,力反馈均得以保留。在此循环中,该模式仅在明确激活时可用;标准协议保持不变。
- 会话相关力值缩放(预览)。客户端可以将模拟会话的触觉反馈强度调至零——例如在打开派形菜单时——并将设备控制权移交给集线器,从而通过常规控制路径输出菜单触觉反馈。 一旦会话结束或菜单关闭,反馈将自动恢复。此功能已在该版本中通过预览标志解锁;标准协议保持不变。
- 围绕旋转点的画布缩放(实验性功能)。在更新画布变换时,传入一个旋转点(例如活动光标)。视图将围绕该点进行缩放,从而保持该点在屏幕上的位置不变——实现对光标的即时缩放。仅适用于Inverse3 ;在本开发周期中属于实验性功能,因此默认日志记录保持不变。
- JSON 序列化引擎(glaze)已更新至 v7.8.4。仅涉及基础架构——公共 API 或行为均未发生变更。此外,还新增了文本日志中浮点数的“值保留”重新格式化功能;详见下文“可能的破坏性变更”部分。
错误修复
- 修改或重置设备的装配变换不再会导致程序崩溃。此前,每次修改装配时,一个残留的原型代码路径都会移动固件的工作区边界框;该代码路径现已移除。
- 在 Inkwell 对接站进行重新校准后,设备姿态将得到更新。在 Inkwell 重新对接并完成校准后,设备将实时更新流式传输的姿态数据,而非继续报告校准前的数据直至下次重新连接。此功能需要设备安装最新固件;Wire 数据格式保持不变。
- Minverse 始终报告被阻止的校准操作。 Minverse 现在发送一个事件
device-calibration-failed,一旦固件报告校准受阻——包括一种霍尔信号振荡的边界情况(此前该情况下的错误一直被系统默认忽略)——设备管理器将始终显示“校准失败”的提示。 - 居中预设会将原点设置在工作区中实际可达的中心点上。
arm_front_centeredundled_front_centered(Inverse3 / Inverse3x) 与腕关节轴线对齐,而该轴线在可及范围内并未居中。因此,最终落在了set_cursor_position在源头{0, 0, 0}偏离中心。Minverse 的居中原点也向右偏移了约10毫米。现在,每次偏移都相当于每个轴上可达范围的一半,该范围是在排除固件安全弹簧的边界区域(而非机械上可行的范围)的情况下测得的。(请参阅“可能导致不兼容的更改”部分中关于原点偏移的说明。)
可能导致不兼容的更改
POST/DELETE /config/filters/damping在 7.5 之前的固件版本中,现在会返回 HTTP 422 状态码,连同一个事件device-protocol-unsupported,而不是返回代码 200(该代码会默认丢弃写入操作)。7.5 及以上版本的固件不受此影响(仍返回 200)。迁移方案:将设备固件更新至 7.5 或更高版本,或处理 422 响应。POST/DELETE /home_return在没有此命令的固件版本(早于 7.4)中,现在会返回 HTTP 422 状态码,而不是无条件的200。仅受旧版固件影响的设备会受到影响。解决方法:将固件更新至7.4或更高版本,或处理422响应。- 命令回显在
config/mountundstate/transform(GET/POST/PATCH/DELETE) 序列化transform.rotationnun 在音阶顺序中{w,x,y,z}statt{x,y,z,w},与流媒体内容的播放顺序相匹配state-快照。仅在字节级别上——值和键名相同,仅键的顺序发生变化;这三个组件仍会被返回。通过键名解析 JSON 的客户端无需进行任何调整;进行严格的字节或顺序比较时,应重新生成其引用数据。 - 将配置应用于单个设备时,变更通知中适用范围的名称。 “session-updated” 变更事件现在会报告配置的范围名称(
config.mount,config.basis,config.preset) 而不是仅仅列出名字 (mount,basis,preset),当应用单个设备的配置时。过滤这些事件作用域字符串的客户端必须调整其映射设置。 - 在 Glaze 中对所有数值 Wire 值的浮点数文本显示格式进行重新设置,v3.0 和 v3.1 版本 (例如
1.0E-7->1E-7,16777216->1.6777216E7,-1.0E-37->-1E-37). 仅在字节级别上——数值解析器读取的值完全相同;只是文本形式发生了变化。使用字符串比较的客户端应重新生成其测试数据。 - 居中预设中的原点偏移。 由于居中预设现在以实际可达的中心点为目标,因此与 3.5.2 版本相比,它们设定的原点发生了偏移:
arm_front_centered/led_front_centered沿设备深度轴方向偏移 25 毫米;居中的“Minverse ”预设在 X 轴方向偏移 10 毫米,在 Y 轴方向偏移 20 毫米,在 Z 轴方向偏移 20 毫米,并且minverse_zup在 X 方向上偏移 20 毫米,在 Y 方向上偏移 30 毫米。这涉及一个默认启用的接口,并且minverse_zup将自动应用于已识别的 Freeform 会话。影响范围:当启用居中预设时,位于原点处的内容或相对于原点定位的几何图形——它们将随原点一起移动。 迁移:重新检查以原点为基准的几何图形,或将之前的偏移量显式设置为用户自定义的蒙太奇变换。非居中预设(device_defaults,arm_front,led_front) 是恒等变换,因此不受影响。
已弃用的功能
- “Legacy”输入
values现在,在执行inverse3 命令时会触发一条警告。 数组的发送values一个set_cursor_force,set_cursor_position,set_angular_positionoder简体中文(大陆)set_angular_torques而不是该命令中指定的字段(vector/position/angles/torques) 仍然有效,但会触发一个事件command-deprecatedaus(每30秒且每个命令仅限一次),而不是被默认接受。请迁移values输入到指定的字段中;该旧版输入功能将在 4.0 版本中移除。 - 除此之外,本周期内没有其他公共线缆接口受到影响。