Highlights {#highlights}
Konfigurationsschreibvorgänge auf Geräteebene wirken sich nun auf jede Client-Sitzung aus, die dieses Gerät belegt, nichtnur die, die geschrieben hat. Ein zweiter Viewer aktualisiert sich über sein eigenes In dieser Sitzung aktualisiert-Ereignis, statt
zu Pollen – genau ein Ereignis pro Sitzung, in der dies belegt wird, und niemals zwei für den Verfasser.
Die physische Einbaulage eines Geräts kann nun an einen Client gemeldet werden, anstatt dass der Dienst immer dieMontage meldet, wer die Sitzung konfiguriert hat. Die Beschriftung, die angibt, welche der beiden Angaben Sie gerade betrachten,
Dies gilt nun konstruktionsbedingt in jeder Ausgabeversion.
Verwaltet ein Gerät seine eigene Mount-Referenz, passt sich der Dienst daran an. Bisher lieferte der Dienst einen Wert, der beimbeim Hochfahren des Geräts erfasst und nie erneut überprüft wurde. Er kann diese Referenz nun auf Anforderung im eigenen Render-Takt
die Clients aktualisieren – serverseitig mit einer Ratenbegrenzung, damit ein schneller Client die Geräteverbindung nicht überlasten kann – und
die Änderung einmal melden, sobald die Montage tatsächlich stattgefunden hat.
Interne Verbesserungen {#internal-improvements}
Experimentelle automatische Korrektur der Gierdrift des Griffs. Ein neues Dienstmodul schließt den Regelkreis für dieInertial-Gierdrift des Wireless VerseGrip: Er gleicht die absolute Gierbewegung des Griffs an die Bewegung des gekoppelten „ Inverse3 “ an oder
Minverse ab, an dem es befestigt ist. Sobald eine Reihe von Qualitätsprüfungen bestanden ist, schreibt es eine einzelne Korrektur
Zurück zur Firmware des Griffs. Das Modul wird deaktiviert ausgeliefert und ist nur bei aktivierter experimenteller
Die Opt-in-Option ist verfügbar und verfügt über einen Zeitschalter, der jeden aktiven Griff sofort wieder deaktiviert, sobald er
umgelegt wird – dies ist bei einer Funktion, die in die Firmware des Geräts schreibt, nicht optional.
Ein Konfigurationsschreibvorgang, der alle Geräte gleichzeitig betrifft, ist nun eine Alles-oder-Nichts-Situation. Die gesamte Auswahl wird— Firmware-Funktionen und Gerätebereitschaft — werden validiert, bevor ein Gerät geändert wird. So kann eine Flotte mit gemischten
Firmware-Versionen dürfen nicht mehr nur teilweise umgestellt bleiben, nur weil das zweite Gerät einen Fehler meldet.
Bestätigungen der Griff-Firmware werden nun pro Anfrage nachverfolgt. Ein einziger gemeinsamer Ergebnisplatz führte dazu,dass zwei gleichzeitig fragende Personen die Antwort des jeweils anderen verpassen konnten, und ein mehrdeutiger Wert stand sowohl
sowohl für „abgelehnt“ als auch für „noch nichts“ – wodurch eine Ablehnung zu einer Flut von Wiederholungsanfragen führen konnte. Jede Anfrage
enthält nun einen eigenen Token, eine Anfrage, die nie bei der Leitung angekommen ist, wird nicht registriert, und eine verlorene Antwort
wird als fehlgeschlagen gewertet, anstatt hängen zu bleiben. Der Prüfdurchlauf, der dies bewirkt, kostet nichts, solange keine
Die Anfrage ist noch offen.
Die Kalibrierung beim Andocken am Inkwell-Dock wird von den neuen Firmware-Funktionsprüfungen des Griffs nicht beeinflusst. DasDas Anschließen eines Stifts führt zu einer vollständigen Neukalibrierung der Pose, die bei jedem ausgelieferten Stift unabhängig von
der Firmware-Version korrekt ist. Dieser Pfad ist ausdrücklich von der Funktionsuntergrenze ausgenommen, die für berechnete
Kurskorrekturen eingeführt wurde, und die Ausnahme wird an der Aufrufstelle ausdrücklich formuliert, anstatt abgeleitet zu werden.
Fehlerbehebungen {#fixes}
Das Zurücksetzen der Schwerkraftkompensation stellt nun wieder den tatsächlichen Standardwert her, anstatt überkompensiert zu werden.Trotz seines Namens ist das Feld Skalierungsfaktor in config/Schwerkraftkompensation kein Multiplikator: Es handelt sich um die zusätzliche
Nutzlastmasse am Endeffektor in Kilogramm, die das Gerät zusätzlich zu seinem eigenen Gewicht ausgleicht. Das Zurücksetzen
nahm den Namen wörtlich und stellte den „neutralen“ Faktor 1 wieder sie – eine Phantom-Nutzlast von einem Kilogramm. Das Gerät
drückte den Griff danach nach oben, was ein frisch angeschlossenes Gerät nicht tut. Das Zurücksetzen liefert nun den echten
Zurück zum Standardwert: Kompensation aktiviert, Skalierungsfaktor bei 0, d. h. das Gerät trägt sein eigenes Gewicht und nimmt keine
Nutzlast ein. Falls Ihre Anwendung das Zurücksetzen dazu genutzt hat, die Stärke der Kompensation zu erhöhen, setzen Sie
stattdessen den gewünschten Wert explizit.
Das Zurücksetzen der Rückkehr in die Ausgangsposition schaltet sie nun tatsächlich wieder ein. Das Zurücksetzen von config/home_returnhatte die Rückkehr zur Grundposition deaktiviert, während es dem Aufrufer mitteilte, sie sei aktiviert. Ein Reset bewirkt nun
stellt tatsächlich den Werkseinstellungswert (eingeschaltet) wieder her, und der Wert, den Ihre Anwendung danach ausliest, ist der Wert,
den das Gerät tatsächlich verwendet.
Ein Schreibvorgang zur Montage oder Ausrichtung auf Geräteebene führt nicht mehr dazu, dass andere Clients mit veralteten Werten zurückbleiben.Vor Version 3.5.6 wurde ein Schreibvorgang aktualisiert, der auf dem Gerät selbst landete – also von jeder Sitzung gemeinsam genutzt wurde, die dieses Gerät
belegt —, nur die Konfiguration des schreibenden Clients, und die geräteweiten Routen wurden überhaupt bei niemandem aktualisiert. Jeder
Ein anderer Client auf demselben Gerät meldete weiterhin den alten Wert, bis er eine Abfrage durchführte. Jede aktive Sitzung wird nun benachrichtigt.
Ein wiederholter Andockversuch am Inkwell-Dock gibt nach einer einzigen Ablehnung nicht mehr auf. Der Zustand eines früherenAndockens blieb über Andockvorgänge hinweg erhalten, sodass das zweite Andocken seine erste Ablehnung als Ende seines
behandelt, das im Wiederholungsfenster angezeigt wurde. Das Wiederholungsfenster wird nun bei jedem Andockversuch zurückgesetzt.
Datenkonflikt im Gerätetick des Wireless VerseGrip behoben. Die Geräte-ID konnte vom Verbindungsthread neu zugewiesen werden,während ein Vorbereitungspfad sie unter einem anderen Lock las. Die Kennung wird nun einmal unter dem richtigen Lock als
Die Momentaufnahme wird erfasst, und jeder der folgenden Pfade – einschließlich der Ablehnungen – arbeitet mit dieser Kopie.
Das Problem der nicht synchronisierten Nachrichtenvorbereitung bei vier Sendern des Wireless VerseGrip wurde behoben. Vier ausgehende Nachrichtenpfadestellten ihre Nutzlast und Prüfsumme zusammen und forderten die Übertragung an, ohne die Schreibsperre aufzuheben, sodass zwei Sender
in den gemeinsamen Puffer schreiben konnten.
Mögliche Breaking Changes {#potential-breaking-changes}
Keine Änderungen an der API, am Wire-Format oder an den Einstellungen. Die Standardausgabe ist byteweise identisch mit 3.5.5, keine Route wurdegelöscht oder in ihrem Pfad geändert, die öffentliche C-API weist keinen Diff auf, und kein Einstellungsschlüssel wurde umbenannt,
entfernt oder mit einem neuen Standardwert versehen. Anwendungen, die die Vorschau- oder experimentellen Schnittstellen des SDK
aktivieren, haben in diesem Zyklus allerdings Migrationsarbeiten, darunter eine Änderung der Schalterstufe und eine entfernte
Token-Satz; jeder Schritt ist im zugehörigen Engineering-Changelog dokumentiert.
Das Zurücksetzen der Schwerkraftkompensation liefert einen anderen Wert als in 3.5.5. Kein Feld, keine Route und keineDie Antwortstruktur hat sich geändert, aber eine Anwendung, die sich darauf verlassen hat, dass das Zurücksetzen Skalierungsfaktor auf 1
schreibt, erhält nun den Wert aus den Werkseinstellungen 0 — Die Kompensation selbst bleibt in beiden Fällen aktiviert. Setzen Sie den
Sollte explizit angegeben werden, anstatt sich auf das Zurücksetzen zu verlassen; siehe die Korrektur oben.
Durch das Zurücksetzen der Rückkehr in die Ausgangsposition bleibt sie nun eingeschaltet und wird nicht ausgeschaltet. Kein Feld, keine Route undDie Antwortstrukturen haben sich nicht geändert, aber eine Anwendung, die davon ausging, dass das Zurücksetzen die Rückkehr zur
Die Grundposition war deaktiviert, ist nun aber aktiviert. Setzen Sie sie nach einem Reset explizit auf „Aus“, wenn Sie das
benötigen; siehe die Korrektur oben.
Kunden erhalten zusätzliche Konfigurationsereignisse. Eine Anwendung, die davon ausging, dass ein In dieser Sitzung aktualisiert-Ereignis nur wegenWenn eine Benachrichtigung über den eigenen Schreibvorgang eingeht, erhält man nun auch eine, wenn ein anderer Client ein Gerät ändert, das beide belegen,
gefolgt von einer vollständigen Neugestaltung der Konfiguration. Das ist die beabsichtigte Folge des oben beschriebenen Fan-outs;
Ein Client, der bei dem Ereignis einfach neu einliest, benötigt keine Änderung.