v3.5.3
3.5.3 ist ein Patch-Release. Zu den wichtigsten Änderungen zählen eine intelligente automatische Kopplung, die eine erneute Kopplung durchführt, wenn eines der beiden Teile eines Inverse3- und Grip-Paares ausgetauscht wird, die Behebung einer falschen Akkuwarnung beim kabelgebundenen Verse Grip, eine verbesserte, präzise Firmware-Funktionsprüfung, die nicht unterstützte Befehle nicht mehr stillschweigend verwirft, die Stabilisierung der Status-LED beim Verbindungsaufbau sowie das Beenden und Neustarten von Diensten ohne Absturz.Außerdem enthält das Update Korrekturen bezüglich mehrerer Geräte und der Serialisierung sowie einige Anmerkungen zu den Byte-basierten Kabel-Spezifikationen.
Highlights
- Wenn eines der beiden Geräte des Sets ausgetauscht wird, erfolgt automatisch eine erneute Kopplung. Wird eines der beiden Geräte des automatisch gekoppelten Sets aus Inverse3 und Verse Grip ausgetauscht, löscht das SDK nun die alte Kopplung und führt eine erneute Kopplung mit dem neu angeschlossenen Gerät durch. Die manuelle Kopplung ist davon nicht betroffen.
- Beim kabelgebundenen Verse Grip treten keine falschen Akkuwarnungen mehr auf. Warnmeldungen wegen niedrigem oder kritischem Akkustand werden nun ausschließlich für den kabellosen Verse Grip ausgegeben. Der kabelgebundene Verse Grip gibt keine falschen Warnungen mehr wegen niedrigem oder kritischem Akkustand aus.
- Genaue Überprüfung der Firmware-Funktionen. Wenn vom Gerät haptische Funktionen angefordert werden, die aufgrund einer veralteten Firmware nicht ausgeführt werden können (gleichmäßige oder gerichtete Dämpfung bei Firmware-Versionen vor 7.5, Rückkehr zur Startseite bei Firmware-Versionen vor 7.4), wird die Anforderung nicht mehr wie bisher stillschweigend verworfen und der irreführende Wert 200 zurückgegeben, sondern
device-protocol-unsupportedSeit dem Event wird nun der HTTP-Status 422 zurückgegeben. - Stabilisierung der Status-LED beim Verbindungsaufbau. Die Status-LED des Inverse3 blinkt nun nicht mehr bei jedem Verbindungsaufbau oder jeder Wiederverbindung rot. Da die Verbindung auch während der etwa 5-sekündigen Stabilisierungsphase nach dem Aufwachen aufrechterhalten bleibt, wird der Verbindungs-Watchdog der Firmware nicht mehr ausgelöst.
- Beenden und Neustarten von Diensten ohne Absturz. Beim Beenden und Neustarten von Diensten treten nun keine Abstürze oder Hänger mehr auf. Um die beim Ein- und Ausschalten von Diensten auftretenden Panikzustände und Hänger zu beheben, wurden die Abläufe für das Herunterfahren und den Neustart überarbeitet.
Interne Verbesserungen
- Kupplungs-Navigationsmodus (experimentelle Funktion, standardmäßig deaktiviert). Dies ist ein neuer Navigationsmodus, in dem der Bediener die vom Dienst an die Szene ausgegebenen Bewegungen verringern oder vollständig fixieren kann, während sich das physische Gerät weiterbewegt. Es gibt den „precise“-Modus mit halber Geschwindigkeit für die Feinpositionierung und den vollständig fixierten Modus zum Neuanordnen des Arbeitsbereichs. Beim Aufheben des Modus werden die gespeicherten Versätze in den Arbeitsbereich übernommen, sodass der Cursor in der Szene nicht springt. Das Force-Feedback wird weiterhin in jedem Verhältnis übertragen.In diesem Release-Zyklus handelt es sich um eine Opt-in-Funktion; die Standard-Kabelkonfiguration wurde nicht geändert.
- Sitzungsbezogene Kraftskalierung (Vorschau). Der Client kann beispielsweise während der Anzeige des Pie-Menüs die haptische Ausgabe einer bestimmten Simulationssitzung auf Null reduzieren und die Steuerung des Geräts an den Hub übergeben. Dadurch wird die haptische Rückmeldung des Menüs über den normalen Steuerungsweg erzeugt. Wenn die Sitzung beendet oder das Menü geschlossen wird, kehrt das System automatisch zum ursprünglichen Zustand zurück. In diesem Release-Zyklus ist diese Funktion nur als Vorschau verfügbar; die Standard-Kabelkonfiguration wurde nicht geändert.
- Zoom des Arbeitsbereichs um einen Drehpunkt (experimentelle Funktion). Wenn beim Aktualisieren der Transformation des Arbeitsbereichs ein Drehpunkt (z. B. die aktuelle Cursorposition) übergeben wird, wird die Ansicht um diesen Punkt herum skaliert, sodass sich die Position des Drehpunkts auf dem Bildschirm nicht verändert. Dadurch wird ein sofortiger Zoom auf die Cursorposition ermöglicht. Diese Funktion ist nur in Inverse3 verfügbar. Da es sich in diesem Release-Zyklus um eine experimentelle Funktion handelt, wurden die Standard-Wire-Einstellungen nicht geändert.
- Die JSON-Serialisierungs-Engine (glaze) wurde auf Version 7.8.4 aktualisiert. Es handelt sich um eine rein infrastrukturelle Änderung; es gibt keine Änderungen an der öffentlichen API oder am Verhalten. Außerdem ist eine Neuformatierung des Wire-Formats für Gleitkomma-Text enthalten, der Werte enthält. Weitere Informationen finden Sie im Abschnitt „Mögliche rückwärtsinkompatible Änderungen“ weiter unten.
Korrektur
- Auch wenn Sie die Mount-Transformation des Geräts ändern oder zurücksetzen, besteht nun keine Absturzgefahr mehr. Ein aus der Prototypenphase stammender Codeabschnitt hatte bei jeder Änderung des Mounts die Begrenzungsbox des Firmware-Arbeitsbereichs gesendet. Dieser Codeabschnitt wurde entfernt.
- Nach einer Neukalibrierung im Inkwell-Dock wird die Ausrichtung des Gehäuses nun aktualisiert. Nach einem erneuten Andocken und einer Neukalibrierung im Inkwell wird die Ausrichtung des gestreamten Gehäuses nun vom Gerät aktualisiert, anstatt bis zur nächsten erneuten Verbindung den Wert vor der Kalibrierung zu melden. Dazu ist die neueste Geräte-Firmware erforderlich. Das Datenformat wurde nicht geändert.
- Minverse meldet nun stets den Kalibrierungsblock. Jedes Mal, wenn die Firmware einen Kalibrierungsblock meldet, führt „Minverse “ Folgendes aus:
device-calibration-failedEs werden nun Ereignisse ausgelöst. Dazu gehören auch die Randfälle des oszillierenden Lochs, bei denen Fehler zuvor stillschweigend unterdrückt wurden. Dadurch wird im Geräte-Manager stets die Meldung „Kalibrierung fehlgeschlagen“ angezeigt. - Bei den Zentriervoreinstellungen wird der Ursprung nun auf den tatsächlich erreichbaren Mittelpunkt des Arbeitsbereichs gesetzt.
arm_front_centeredundled_front_centered(Inverse3 / Inverse3x) war entlang der Achse des Armgelenks ausgerichtet, doch diese Achse war nicht der Mittelpunkt des erreichbaren Bewegungsbereichs. Daher war der Ursprung{0, 0, 0}deset_cursor_positionBei der Ausführung war eine Verschiebung gegenüber der Mitte festzustellen. Zudem war der Zentrierursprung von „Minverse “ um etwa 10 mm nach rechts verschoben. Die jeweiligen Offsets wurden so korrigiert, dass sie der Hälfte des erreichbaren Bewegungsbereichs der jeweiligen Achse entsprechen. Die Messungen wurden nicht im mechanisch möglichen Bereich, sondern unter Ausschluss der durch die Firmware festgelegten Sicherheitsbereichsgrenzen durchgeführt. (Siehe den Hinweis zur Ursprungsverschiebung im Abschnitt „Mögliche destruktive Änderungen“.)
Möglichkeit disruptiver Änderungen
- Bei Firmware-Versionen vor 7.5 gilt:
POST/DELETE /config/filters/dampinggibt nun den HTTP-Status 422 zurück。Anstelle der 200, die stillschweigend gelöscht wurden,device-protocol-unsupportedEs tritt ein Fehler auf. Ab Firmware-Version 7.5 tritt dieser Fehler nicht mehr auf (es wird weiterhin der Wert 200 zurückgegeben). Vorgehensweise: Aktualisieren Sie die Firmware des Geräts auf Version 7.5 oder höher oder behandeln Sie den Fehler 422 entsprechend. - Falls die Firmware diesen Befehl nicht unterstützt (Version 7.4 oder älter),
POST/DELETE /home_returnEs wird nun anstelle von „Unconditional 200“ der HTTP-Status 422 zurückgegeben.。Betroffen sind ausschließlich Geräte mit veralteter Firmware. Vorgehensweise: Führen Sie ein Firmware-Update auf Version 7.4 oder höher durch oder beheben Sie den Fehler 422. config/mountundstate/transformBei der Befehlsausgabe (GET/POST/PATCH/DELETE) gilt:transform.rotationaber{x,y,z,w}anstelle von{w,x,y,z}wird nun in der Reihenfolge der Schlüssel serialisiert. Dies wird gestreamtstateDiese Änderung entspricht der Reihenfolge der Drehung der Snapshots. Es handelt sich ausschließlich um Änderungen auf Byte-Ebene. Die Werte und Schlüsselnamen bleiben unverändert; lediglich die Reihenfolge der Schlüssel ändert sich. Alle drei Komponenten werden weiterhin ausgegeben. JSON-Clients, die Schlüsselnamen als Referenz verwenden, müssen keine Anpassungen vornehmen. Falls Sie strenge Vergleiche von Byte-Sequenzen oder der Reihenfolge durchführen, sollten Sie die erwarteten Werte neu generieren.- Name des Benachrichtigungsbereichs für Änderungen beim Anwenden der Einstellungen eines einzelnen Geräts. Sobald die Einstellungen für ein einzelnes Gerät übernommen wurden, werden Benachrichtigungen über Änderungen bei der Sitzungsaktualisierung unter dem Basisnamen (
mount、basis、preset) anstelle des Namens des Einstellungsbereichs (config.mount、config.basis、config.preset) melden. Clients, die anhand der Scope-Zeichenfolgen dieser Ereignisse filtern, müssen ihre Abgleichverfahren aktualisieren. - Neuformatierung des Glaze-Gleitkomma-Texts für alle numerischen Wire-Werte in v3.0 und v3.1(Beispiel:
1.0E-7->1E-7、16777216->1.6777216E7、-1.0E-37->-1E-37). Es handelt sich lediglich um eine Änderung auf Byte-Ebene. Der numerische Parser liest denselben Wert ein. Geändert hat sich lediglich das Textformat. Verbraucher, die einen Gleichheitsvergleich von Zeichenketten durchführen, sollten ihre Fixtures aktualisieren. - Verschiebung des Ursprungs bei Zentriervoreinstellungen. Da die Zentriervoreinstellungen nun auf tatsächlich erreichbare Mittelpunkte ausgerichtet sind, verschiebt sich der festgelegte Ursprung im Vergleich zu Abschnitt 3.5.2.
arm_front_centered/led_front_centeredwird entlang der Tiefenachse des Geräts um 25 mm verschoben. Die Zentriervoreinstellung „Minverse “ wird in X-Richtung um 10 mm, in Y-Richtung um 20 mm und in Z-Richtung um 20 mm verschoben.minverse_zupwird um 20 mm in X-Richtung und um 30 mm in Y-Richtung verschoben. Dies ist ein standardmäßig aktiviertes Verhalten, undminverse_zupwird automatisch auf erkannte Freeform-Sitzungen angewendet. Betroffener Bereich: Inhalte, die während der Aktivierung der Zentrierungsvoreinstellung am Ursprung positioniert wurden, oder Geometrien, die relativ zum Ursprung positioniert wurden, werden zusammen mit dem Ursprung verschoben. Vorgehensweise: Überprüfen Sie die am Ursprung fixierte Geometrie erneut oder speichern Sie den bisherigen Versatz explizit als benutzerdefinierte Montage-Transformation. Nicht zentrierte Voreinstellungen (device_defaults、arm_front、led_front) ist eine Identitätsabbildung und bleibt davon unberührt.
Nicht empfohlen
- inverse3 Veraltete Steuerbefehle
valuesDie Eingabe wird nun mit einer Warnung als veraltet gekennzeichnet.set_cursor_force、set_cursor_position、set_angular_position、set_angular_torquesin das benannte Feld des Befehls (vector/position/angles/torques) anstelle vonvaluesAuch wenn ein Array gesendet wird, funktioniert es weiterhin. Allerdings wird es nicht einfach stillschweigend akzeptiert, sonderncommand-deprecatedEs wird nun ein Ereignis ausgelöst (begrenzt auf einmal alle 30 Sekunden pro Befehl).valuesBitte übertragen Sie diese in benannte Felder. Die alte Eingabemethode wird in Version 4.0 entfernt. - Ansonsten gibt es in diesem Release-Zyklus keine Änderungen, die sich auf den öffentlichen Wire auswirken.