Highlights {#highlights}
Heading eines angedockten Stifts wurde von 135 auf 180 Grad geändert. Dies ist die einzige erwartete sichtbare
Abweichung zu 3.5.6 in einer ansonsten unveränderten Standardsitzung – ohne Gating, ohne Opt-in, betroffen ist jeder
Nutzer mit Handle-Firmware 1.3.1 oder höher. Details unter Fehlerbehebungen.
state.body_orientation verfolgt das Gerätmit 20 Hz, statt einzufrieren, sobald eine Anwendung es ansteuert (Inverse3 / Minverse-Firmware 7.9 oder neuer,
standardmäßig aktiviert).
DELETE aufconfig/torque_scaling, config/gravity_compensation und config/handedness liefert den Wert zurück, mit dem das Gerät
einschaltet, statt einer im Dienst einkompilierten Werkskonstante – ein als linkshändig gespeichertes Gerät wird daher
nicht mehr auf rechtshändig zurückgesetzt.
gemeinsamer Schreibvorgang für mount oder body orientation löste früher pro haltender Sitzung ein session-updated
aus, ohne das Gerät zu nennen; jede haltende Sitzung aktualisiert sich weiterhin mit ihrem nächsten Snapshot.
Interne Verbesserungen {#internal-improvements}
devices/*inverse/body_orientation_poll_interval_ms (Standard 50 ms, 0 deaktiviert sie, Bereich0–5000) steuert das Live-Auslesen der Ausrichtung; der Bewegungs-Timer des Geräts mit 50 ms bildet dabei die wirksame
Untergrenze.
devices/*inverse/query_orientation_on_idle bei alter Firmware aktiviert, zeigt die Warnung, dass dieser Schalter
wirkungslos ist, statt stillschweigend zu bleiben.
dauerhaft stillschweigend zu melden. Der zuletzt gehaltene Wert selbst bleibt unverändert, sodass das Gerät weiter
nutzbar ist.
config/mount oder config/body_orientation wird weiterhin wie bisherüber den standardmäßigen Event-Kanal angekündigt – zurückgenommen wurde nur die Ankündigung auf Geräte-Scope.
handedness, torque_scaling und gravity_compensation behalten ihre sitzungsbezogenen Ankündigungen.
Fehlerbehebungen {#fixes}
die ein angedockter Stift bei der Inkwell-Kalibrierung gesetzt wird, wurde von 135 auf 180 Grad geändert; der Wert wurde
zur Einstellung devices/*inverse/inkwell/dock_heading_deg. Gemessen am 2026-09-22 an einem Minverse mit einem Stift bei
Handle-Firmware 1.3.1: Der alte Wert von 135 Grad ließ den angedockten Stift 45 Grad zu kurz stehen, weshalb der
Yaw-Schätzer ihn zurückdriften lassen musste (beobachtet: +42 bis +50 Grad). Die Restabweichung liegt nun innerhalb von
etwa 5 Grad. Nicht stage-gated – der Andock-Kalibrierungspfad läuft immer –, daher ändert sich die veröffentlichte
Ausrichtung eines angedockten Stifts um 45 Grad für jeden Nutzer mit Handle-Firmware 1.3.1 oder höher. Unterhalb dieser
Grenze ignoriert die Firmware den Wert und springt direkt auf die vollständige Pose; diese Nutzer sehen daher keine
Änderung.
state.body_orientation wurde nur aktualisiert, während das Gerät im Leerlauf war. Daher fror der Wert ein, sobald eineAnwendung Kräfte zu streamen begann, und jeder Konsument las einen veralteten Handshake-Snapshot. Er wird nun über den
bestehenden Bewegungs-Timer abgefragt und ist während der Sitzung live.
DELETE auf config/torque_scaling, config/gravity_compensation und config/handedness schrieb eine einkompilierteWerkskonstante über die eigene gespeicherte Konfiguration des Geräts, sodass „Auf Standard zurücksetzen“ und der
tatsächliche Einschaltzustand des Geräts auseinanderliefen – config/handedness wurde unabhängig davon, was das Gerät
gespeichert hatte, immer auf right gesetzt. Alle drei stellen nun den gespeicherten Wert wieder her und greifen nur für
ein Feld, das nie vom Gerät gelesen wurde, auf die alte Konstante zurück.
enthält nur session_id, profile und scope – keine Geräte-Kennung –, sodass ein Abonnent eine Kopie weder zuordnen
noch die Menge um Duplikate bereinigen konnte. Die Ankündigung auf Geräte-Scope wird zurückgehalten, bis ein
geräteadressierter Ersatz vorliegt; die Aktualisierung pro Sitzung bleibt unberührt.
Mögliche Breaking Changes {#potential-breaking-changes}
DELETE config/torque_scaling, config/gravity_compensation und config/handedness ändern, was ein Zurücksetzen bedeutet:Antwort und geschriebener Wert sind nun die gespeicherte Konfiguration des Geräts statt einer festen Konstante auf
Dienstseite. Die Antwortstrukturen bleiben unverändert, und die Werte unterscheiden sich nur bei einem Gerät, dessen
gespeicherte Konfiguration von der Werkskonstante abweicht – eine Integration jedoch, die die wörtlichen Konstanten
(false / {enabled: true, scaling_factor: 0.0} / right) vorausgesetzt hat, erhält andere Werte.
state.body_orientation behält seine exakte Struktur und Stufe, ändert jedoch die Wertesemantik: Ein Feld, das für einenstreamenden Client praktisch statisch war, bewegt sich nun mit 20 Hz. Ein Konsument, der es nach dem Attach als konstant
behandelt hat, sieht ein neues Verhalten ohne Opt-in.
:10020-Abonnent ohne Opt-in erhält für config.mount oder config.body_orientation kein session-updated mehr,wenn die Ursache ein Schreibvorgang auf Geräte-Scope ist, und der veraltete flache body_orientation-Scope folgt nun
derselben Schiene, statt in den Standardkanal zu durchsickern. Migration: Betrachten Sie das Event nicht mehr als
Auslöser für eine Aktualisierung, sondern lesen Sie den Wert aus dem Sitzungs-Snapshot – dieser aktualisiert sich
weiterhin bei jeder haltenden Sitzung, und zwar ganz ohne Opt-in. Die entsprechenden Sitzungs-Scope-Events sowie die
Ankündigungen für handedness / torque_scaling / gravity_compensation sind nicht betroffen.
sich um eine Fehlerbehebung, die unter Highlights und Fehlerbehebungen veröffentlicht wird. Hier erfasst, weil sich der
beobachtbare Wert ohne Opt-in für jeden Nutzer mit Handle-Firmware 1.3.1 oder höher ändert; wer seine eigene Anwendung am
alten Bezugswert von 135 Grad kalibriert hat, hat daher echten Migrationsaufwand. Keine Strukturänderungen.
Veraltete Funktionen {#deprecations}
devices/*inverse/query_orientation_on_idle wird überflüssig, sobald das neuePoll-Intervall ungleich null ist, wurde aber bewusst nicht in 3.5.7 als deprecated markiert – diese Veraltung ist
für 3.6 vorgesehen.
