v3.5.1
3.5.1は安定化および品質向上のためのリリースです。主なトピック:1対1Inverse3 グリップInverse3 組み合わせにおける自動ペアリング、新機能 GET /devices/{id} WebSocketセッションが開いていない状態でのモーション状態、フォース/ポジションモード切り替え時のキーンという音の解消、および持続的な負荷下での自動調整型サービスティックスケジューラ。
見どころ
- 1対1Inverse3 グリップの取り付けにおける自動ペアリング。 Inverse3 グリップの準備が整うと、SDKが自動的にペアリングを登録します —
pen_attachedまた、Minverse ロック解除により、複数デバイスを接続した環境での誤ったルーティングが解消されます。 - 新鮮
GET /devices/{id}セッションが開かれていない状態でのスナップショット。 ファームウェア v7.5Minverse 、Inverse3 Inverse3x /Minverse 、WebSocket の動作状況にかかわらず、モーション状態が 20 Hz でポーリングされるようになりました。v7.5 以前のファームウェアでは、ポーリングはスキップされ、1 回だけ警告が表示されます。 - 力と位置の入れ替え時に、きしむ音がしなくなりました。 切り替え
set_cursor_force↔set_cursor_positionスロット固有の仕様です。各デバイスにつき、ティック間の更新で保持されるのは最新のもののみです。HARP200ミリ秒のアイドルギャップに関する回避策は、もはや無効です。 - 自己調整型ティックスケジューラ。メインループは負荷に応じてディスパッチレートを調整するため、処理が遅いティックによってコマンドキューが無限に膨れ上がることはありません。
- 負荷がかかった状態での1-in-1-outストリーミング応答。 WSメッセージごとのストリーミング応答は、セッションあたり1/msに制限されています。制限に達した場合は前のバッファが再生されるため、シミュレーションループがブロックされることはありません。
recv().
内部改良
デバイス
- デバイスInverse3 VerseGripペアリング登録。
GET|POST|DELETE /devices/{sel}/paired_withこれはデバイスごとの1対1の対応関係です。POST双方の対立を解消する;DELETE選択したエントリを削除します。selector は 1 つの ID を指定する必要があります。 - ファームウェア v7.5 以降における 20 Hz モーション状態の調査。
GET /devices/{id}新鮮な状態で戻るcursor_position,cursor_velocity,angular_position,angular_velocity50ミリ秒ごとに実行されます。アクティブなセッションには影響しません。 - ワイヤレス・バースグリップ
set_extension_data速度制御式。 サービスティック時に「Drop-older / repeat-on-idle」パイプラインが排出される――これにより、送信過剰による無線リンクの飽和は発生せず、送信不足による古い値の残留も発生しなくなった。
セッション
- 制御専用バッチ(力/位置)向けの新しい WS-receive ファストパスは、構成情報を認識するパイプラインをバイパスします。
configure/set_profile/ カスタムコマンドは依然としてレース修正の対象となります。
可観測性
- 検出ログの記録間隔はポートごとに設定され、継続的な監視に対応しています。 ブラックリストに登録された各ポートは個別に制御されます。繰り返し発生する
"...blacklisted: skipping"現在、当ラインでは(×N)火の間に沈黙したダニのために。 - WVG非対応デバイスが検出された際、ワイヤレスVerseGripの検出情報がログに大量に記録されることはなくなりました。
修正点
POST /device.config.presetとdefaultsまたはarm_frontこれでデバイスのマウント設定が工場出荷時の設定にリセットされるようになりました(以前は何も行われませんでした)。basisが保持されるため、アプリで設定されたベースはマウントのプリセット変更後も維持されます。force_render_full_state欠落しているスナップショットを返さなくなったconfigブロック 対応するconfigureが同じWSメッセージに含まれる場合、configureパスはスナップショットよりも前に同期的に処理されます。- セッション横断
force_render_full_stateターゲットの完全なスナップショットを返します。 現在、AとBの両方が完全なペイロードを受信している(以前は、Aはストリーミングのみを受信していた)。 - 不明な引数を持つセッション間コマンド
target_session_idリクエストとレスポンスのループが停止しなくなる。 依頼者は自身のスナップショットと、session-command-droppedイベント (cross-session-unknown-target). - Minverse リブレーションによるロック解除で、誤ったルーティングが発生しなくなりました。 Minverse キャリブレーションしても、Minverse ロックが解除されなくなりました。また、inkwell-successヘッダーのブロードキャストについても同様の修正が行われました。
- HTTPデバイスセレクター 受け入れる
#1234そして1234デバイスIDとして;セレクタクラス(inverse3,verse_grip) は index と連携して動作します。404 メッセージでは、元のセレクタ式が保持されます。 - ワイヤレス・バースグリップ
readyflag は、初期のデバイス情報ハンドシェイク時にゲート制御されるようになりました — 以前は、特定の再接続パスにおいて、デバイスが完全に認識される前に切り替えが可能だった。 - キーレートゲートが適用された設定に対する実行時の変更は、次のヒット時に反映されるようになりました(以前は、最初の適用時に固定され、新しいセッションでのみ変更が反映されていました)。
互換性を損なう可能性のある変更
- HTTP 404 エラーメッセージの統一 ~を横切って
basis,preset,mount,transform,force_gate:"{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応答をティック同期ハンドシェイクとして使用するクライアントは、継続的なトラフィック下では、1セッションあたり1ミリ秒につき最大1回の応答しか受け取れません。設定変更時のフルスナップショットには影響ありません。
非推奨
3.5.1 では実装されていません。プレビュー・マスター・スイッチは、今後導入される 3.6 の「サイレントから警告」への移行パイプラインに向けた非推奨化の基盤となるものです。最初の非推奨化は 3.5.2 で実施される予定です。