v3.5.1
3.5.1 ist eine Stabilisierungs- und Qualitätsversion. Wichtigste Neuerungen: Automatische Paarung für 1↔1 Inverse3 Grip-Konfigurationen, neue GET /devices/{id} Bewegungsstatus ohne offene WebSocket-Sitzung, die Beseitigung des Quietschgeräuschs beim Wechsel zwischen Kraft- und Positionsmodus sowie ein sich selbst optimierender Dienst-Tick-Scheduler unter Dauerbelastung.
Highlights
- Automatische Paarung für 1↔1 Inverse3 -Montagen Inverse3 Griff. Sobald ein Inverse3 ein Griff bereit sind, registriert das SDK automatisch eine Kopplung —
pen_attachedund Minverse verhindert Fehlleitungen in Konfigurationen mit mehreren Geräten. - Frisch
GET /devices/{id}Snapshots ohne geöffnete Sitzung. Minverse Inverse3 Inverse3x / Minverse Firmware-Version 7.5+ wird der Bewegungsstatus nun unabhängig von der WebSocket-Aktivität alle 20 Hz abgefragt. Bei Firmware-Versionen vor 7.5 wird die Abfrage übersprungen und es wird einmalig eine Warnung ausgegeben. - Der Wechsel zwischen Kraft und Position verursacht keine Quietschgeräusche mehr. Umschalten
set_cursor_force↔set_cursor_positionist slot-exklusiv – nur der aktuellste Slot pro Gerät bleibt zwischen den Ticks erhalten. Die 200-ms-Leerlauf-Lücke-Umgehungslösung HARP ist überholt. - Selbstoptimierender Tick-Scheduler. Die Hauptschleife passt ihre Ausführungsrate an die Auslastung an, sodass ein langsamer Tick die Befehlswarteschlange nicht unbegrenzt anwachsen lassen kann.
- 1-in-1-out-Streaming-Antworten unter Last. Die Anzahl der Streaming-Antworten pro WS-Nachricht ist auf 1 pro Millisekunde und Sitzung begrenzt; bei Erreichen dieser Obergrenze wird der vorherige Puffer erneut abgespielt, sodass Simulationsschleifen niemals blockieren.
recv().
Innenausbau
Geräte
- Gerätebezogene Registrierung der Paarung von Inverse3 VerseGrip.
GET|POST|DELETE /devices/{sel}/paired_withist eine 1:1-Zuordnung pro Gerät.POSTbeseitigt Konflikte auf beiden Seiten;DELETELöscht den ausgewählten Eintrag; der Selektor muss auf eine ID verweisen. - Abfrage des Bewegungsstatus bei 20 Hz unter Firmware-Version 7.5 und höher.
GET /devices/{id}wird frisch geliefertcursor_position,cursor_velocity,angular_position,angular_velocityalle 50 ms; für aktive Sitzungen nicht wahrnehmbar. - Kabelloser VerseGrip
set_extension_datadrehzahlgeregelt. Die „Drop-older/repeat-on-idle“-Pipeline wird beim Service-Tick geleert – ein Übermaß an Daten überlastet die Funkverbindung nicht mehr, und ein Mangel an Daten führt nicht mehr zu veralteten Werten.
Sitzungen
- Der neue WS-Receive-Fast-Path für reine Steuerungs-Batches (Kraft/Position) umgeht die konfigurationsabhängige Pipeline;
configure/set_profile/ Benutzerdefinierte Befehle durchlaufen weiterhin den Race-Fix.
Beobachtbarkeit
- Die Häufigkeit der Erfassungsprotokolle ist portabhängig und berücksichtigt die Dauerhaftigkeit. Jeder auf der Sperrliste stehende Port wird unabhängig gesteuert; die wiederkehrende
"...blacklisted: skipping"Das Sortiment umfasst nun(×N)für Zecken, die zwischen den Bränden verstummt sind. - Die Erkennung des drahtlosen VerseGrip überflutet das Protokoll nicht mehr, wenn ein Gerät geprüft wird, das kein WVG ist.
Korrekturen
POST /device.config.presetmitdefaultsoderarm_frontsetzt nun die Mount-Einstellung des Geräts auf die Werkseinstellung zurück (war zuvor eine stille No-Op).basiswird beibehalten, sodass in der App konfigurierte Basisdaten Änderungen an den Mount-Voreinstellungen überstehen.force_render_full_stategibt keinen Snapshot mehr zurück, bei demconfigBlock Wenn die entsprechende Konfiguration in derselben WS-Nachricht enthalten ist, wird der Konfigurationspfad vor dem Snapshot synchron geleert.- sitzungsübergreifend
force_render_full_stategibt den vollständigen Snapshot des Ziels zurück. Sowohl A als auch B sehen nun die vollständige Nutzlast (zuvor: A empfing nur das Streaming). - Sitzungsübergreifende Befehle mit einem unbekannten
target_session_idDie Anfrage-Antwort-Schleife hängt sich nicht mehr auf. Der Anfragende erhält einen eigenen Snapshot + einensession-command-droppedVeranstaltung (cross-session-unknown-target). - Durch die KalibrierungMinverse kommt es nicht mehr zu Fehlleitungen. Die Kalibrierung Minverse führt nicht mehr zur Entsperrung von Minverse ; dieselbe Korrektur gilt für die Übertragung der Überschrift „inkwell-success“.
- HTTP-Geräteauswahl akzeptiert
#1234und1234als Geräte-ID; Selektor-Klassen (inverse3,verse_grip) arbeiten mit dem Index zusammen; 404-Meldungen behalten den ursprünglichen Selektorausdruck bei. - Kabelloser VerseGrip
readyDas Flag wird nun beim anfänglichen Handshake zur Geräteerkennung gesetzt — zuvor war es möglich, dass das Gerät bei bestimmten Wiederanschlusswegen umschaltete, bevor es sich vollständig angemeldet hatte. - Änderungen an den durch „Keyed-Rate-Gate“ unterstützten Einstellungen werden nun beim nächsten Hit wirksam (bisher: wurden beim ersten Einrichten festgeschrieben; nur neue Sitzungen übernahmen die Änderung).
Mögliche Kompatibilitätsprobleme
- Vereinheitlichung der HTTP-404-Meldungen über
basis,preset,mount,transform,force_gate:"{type} device #{id} not found"→"no device matches selector '{expr}'". Das Gleiche gilt für Sitzung 404. - Einstellungen-Glob
devices/inverse*/...→devices/*inverse/...für die Verstärkung der Kraftskala, die Verstärkung des Kraft-Gate, das Zeitlimit der Steuerung,safeties/expose_in_snapshot. Konfigurationsdateien der Version 3.5.0, die das alte Literal verwenden, können nicht eingebunden werden. - Einstellungen: Globale Serialisierungsvariablen wurden verschoben nach
session/serialization/*(explicit_fields,force_complete_transforms,preview/*). Altserialization/*Pfade werden weiterhin über veraltete Aliase aufgelöst; Entfernung in Version 4.0. - Verhalten: Clients, die die WS-Antwort pro Nachricht als Tick-Sync-Handshake verwenden, erhalten bei anhaltendem Datenverkehr höchstens eine Antwort pro Millisekunde und Sitzung. Vollständige Snapshots bei Konfigurationsänderungen sind davon nicht betroffen.
Verwerfungen
Keine in 3.5.1. Der Master-Schalter für die Vorschau dient als Vorbereitung für die in 3.6 geplante Umstellung von „silent“ auf „warn“; der erste Schritt zur Auslaufphase ist für 3.5.2 geplant.