要点
设备范围内的配置条目现在会同步到所有拥有该设备的客户端会话,而不是仅限实际进行写入操作的查看者。当收到相关事件时,第二个查看者会自动刷新数据。 会话已更新,而不是定期向该服务发起查询——每个持有会话仅触发一次事件,且对写入操作的发起者而言,绝不会触发两次。
现在可以向客户告知设备的实际安装位置,而不是让服务始终返回该会话中配置的安装信息。无论采用何种输出形式,标明您正在查看的是哪一种信息的标签,现在在设计上都已确保准确无误。当设备保留其自身的安装参考时,该服务会跟踪该参考。此前,服务端会返回设备启动时捕获的值,且从未重新检查过该值。现在,它可以根据请求更新该参考值,并遵循客户端特有的渲染节奏——同时在服务端设置速率限制,以防止高速客户端导致与设备的连接过载——并在蒙版实际旋转后报告该变化。内部改进
手柄横摆漂移的实验性自动校正。一个新的服务模块实现了对无线VerseGrip惯性偏航漂移的闭环控制:它会根据已配对的Inverse3 或其所连接的Minverse的运动,调整手柄的绝对偏航角;一旦所有质量条件均满足,该模块便会在手柄固件中写入一次校正数据。 该模块出厂时处于禁用状态,仅在启用“实验性粘附”开关时才可访问,并配有一个执行开关——一旦切换该开关,所有处于活动状态的握柄将立即恢复至禁用状态;对于一个会向设备固件写入数据的组件而言,这一设计并非可选。现在,针对所有设备同时进行的配置操作采取“全有或全无”的原则。在对任何设备进行修改之前,系统会先对整个选定范围进行验证(包括每台设备的固件容量和可用性);因此,即使设备群中固件版本不统一,也不会再因第二台设备出现错误而导致部分设备切换失败。把手固件的确认回执现按请求进行跟踪。此前,由于使用单一的共享结果存储位置,导致两个同时发起的请求者可能会丢失对方的响应;而且同一个模棱两可的值既表示“被拒绝”,也表示“目前无结果”——这可能会导致一次拒绝演变成一连串的尝试。 现在,每个请求都带有独立的令牌;未发送的请求不会记录任何信息;而丢失的响应将导致请求失败,而非阻塞系统。当没有待处理请求时,执行此跟踪的扫描操作不会产生任何开销。Inkwell 底座的校准不受笔杆固件新容量验证功能的影响。触控笔与底座对接时会执行完整的定位重新校准,这对每支出厂的触控笔而言都是正确的,无论其固件版本如何;该流程被明确豁免于针对计算出的姿态校正所引入的最低能力阈值,且该豁免是在调用点中明确指定的,而非通过推导得出。更正
重置重力补偿后,现在会恢复真正的默认值,而不是过度补偿。尽管名字如此,该字段 缩放因子 de config/重力补偿 这并非一个乘数:它是末端执行器的额外有效载荷质量(单位为千克),该设备在自身重量之外还要对其进行补偿。重置操作字面意义上就是如此,它将该系数恢复为“中性”状态。 1,即1千克的虚拟负载;因此,重置后,设备会将手柄向上推,这并非刚连接上设备时的正常行为。现在,重置后会恢复真正的默认值:补偿功能已启用,且 缩放因子 à 0,这意味着设备仅承载自身重量,不包含任何有效载荷。如果您的应用程序曾通过重置来提高补偿强度,请改为显式设置所需的数值。
重置“返回起点”功能后,该功能现在确实可以重新启用了。 重置 config/home_return 此前曾将“恢复出厂设置”功能禁用,却向调用方显示该功能处于启用状态;现在,重置操作会真正将设备恢复为出厂设置(启用状态),而您的应用程序随后读取的值即为设备实际使用的值。对设备进行的配置或方向性写入操作,不再导致其他客户端显示过时数据。在 3.5.6 版本之前,影响设备本身的写入操作(由持有该设备的每个会话共享)仅会刷新执行写入操作的客户端的配置,而设备级别的路由则不会刷新任何客户端的数据。 同一设备上的其他客户端将继续显示旧值,直到其向服务发起查询为止。现在,每个持有该设备的会话都会收到通知。在Inkwell空间站上,重复的对接尝试不再因首次失败就终止。此前一次对接的状态会延续到后续对接中,因此第二次对接会将其首次失败视为新一轮重试窗口的结束。现在,每次对接尝试后,新一轮重试窗口都会被重置。修复了在无线VerseGrip设备更新周期中数据处理时出现的一个竞态条件。当一个准备路径在不同锁下读取设备标识符时,连接执行线程可能会重新分配该标识符。 现在,设备标识符会在正确的锁定下被捕获一次,并且所有后续路径(包括拒绝操作)均基于该副本进行处理。修复了四个VerseGrip无线发射器中消息准备不同步的问题。四个消息发送路径会先合并其有效载荷和校验和,然后在未获取写锁的情况下请求发送;因此,两个发射器可能会在共享缓冲区中发生交织。可能不兼容的更改
API、传输格式或参数均未发生任何变化。默认输出与 3.5.5 版本完全一致(字节级),未删除或移动任何路由,公共 C 语言 API 未作任何更改,且未对任何参数键进行重命名、移除或设置新默认值。 不过,主动启用 SDK 预览版或实验性功能的应用程序在本版本中需要进行迁移工作,包括开关级别的变更以及一组令牌的移除;每个步骤都在随附的技术变更日志中进行了详细说明。重置重力补偿后返回的值与 3.5.5 版本不同。 没有任何字段、路径或响应形式发生变化,但有一个原本依赖重置来写入一个 缩放因子 de 1 现在恢复为出厂设置 0;无论哪种情况,补偿功能本身都保持启用状态。请显式设置该值,而不是依赖重置操作;请参阅上文的修正说明。重置“返回原点”功能后,该功能现在将保持启用状态,而非禁用状态。虽然字段、路径和响应形式均未发生变化,但那些原本依赖重置操作来禁用“ 返回原点”功能的应用程序,现在会发现该功能处于启用状态。如果您需要禁用该功能,请在重置后明确将其禁用;请参阅上文的修正说明。客户将收到额外的配置事件。 一个假设会发生某件事的应用程序 会话已更新 今后,即使仅因其自身的写入操作,当另一位客户端修改了双方共同持有的设备时,该客户端也将收到相应事件,随后会收到完整的配置渲染结果。这是上文所述广播机制的预期结果;仅在收到事件时重新读取数据的客户端无需进行任何修改。