Zum Hauptinhalt springen

v3.5.3

Version 3.5.3 ist eine Fehlerbehebungsversion. Zu den wichtigsten Änderungen gehören eine intelligentere automatische Kopplung, die Geräte neu koppelt, wenn Sie eine Hälfte eines gekoppelten Sets aus „ Inverse3 “ und Griff austauschen; die Beseitigung falscher Akkuwarnungen bei den kabelgebundenen Verse Grip-Modellen; zuverlässige Überprüfungen der Firmware-Fähigkeiten, die nicht mehr stillschweigend nicht unterstützte Befehle unterdrücken; eine stabilere Status-LED bei der Verbindung; sowie ein Beenden und Neustarten des Dienstes ohne Absturz. Außerdem enthält sie mehrere Korrekturen in Bezug auf die Geräte und die Serialisierung sowie einige Anmerkungen zu den auf Byte-Ebene übertragenen Daten.

Kernpunkte​

  • Die automatische Kopplung wird wiederhergestellt, wenn Sie eine Hälfte eines Sets austauschen. Wenn ein Gerät aus einem automatisch gekoppelten Set („ Inverse3 “ + „Verse Grip“) ausgetauscht wird, löscht das SDK nun die veraltete Kopplung und stellt das Set mit dem neu verbundenen Gerät wieder her. Manuelle Kopplungen bleiben davon unberührt.
  • Keine falschen Akkuwarnungen mehr bei kabelgebundenen Verse Grips. Warnungen bei niedrigem oder kritischem Akkustand werden nun nur noch bei drahtlos verbundenen Verse Grips ausgelöst; ein kabelgebundener Verse Grip löst keine falschen Warnungen mehr wegen niedrigen oder kritischen Akkustands aus.
  • Zuverlässige Überprüfung der Funktionen der Firmware. Wenn bei einem Gerät eine haptische Funktion angefordert wird, für deren Ausführung die Firmware zu alt ist – gleichmäßige oder gerichtete Dämpfung bei Firmware-Versionen vor 7.5, Rückkehr in die Ausgangsposition bei Firmware-Versionen vor 7.4 –, gibt die Anfrage nun den HTTP-Status 422 zusammen mit einem Ereignis zurück. device-protocol-unsupported, anstatt eines irreführenden Wertes von 200, der die Anfrage stillschweigend ignorierte.
  • Stabilere Statusanzeige bei der Verbindung. Die Statusanzeige „ Inverse3 “ blinkt nicht mehr bei jeder Verbindung oder Wiederverbindung rot: Die Verbindung wird während des Stabilisierungsfensters von etwa 5 Sekunden nach dem Aufwachen aus dem Ruhemodus aufrechterhalten, sodass der Verbindungs-Watchdog der Firmware nicht mehr ausgelöst wird.
  • Beenden und Neustarten des Dienstes ohne Absturz. Das Beenden und Neustarten des Dienstes führt nicht mehr zu Abstürzen oder Blockierungen; der Ablauf zum Beenden und Neustarten wurde überarbeitet, um die beim Aktivieren und Deaktivieren des Dienstes beobachteten Panikzustände und Blockierungen zu beseitigen.

Interne Verbesserungen​

  • Kupplungs-Navigationsmodus (experimentell, standardmäßig deaktiviert). Neuer Navigationsmodus, der es einem Bediener ermöglicht, die Bewegung, die der Dienst an die Szene überträgt, zu verlangsamen oder vollständig anzuhalten, während sich das physische Gerät weiterbewegt – ein „präziser“ Modus “ bei halber Geschwindigkeit für die Feinpositionierung und ein vollständiges Einfrieren zur Neupositionierung des Arbeitsbereichs –, um anschließend die im Arbeitsbereich angesammelte Verschiebung beim Loslassen zu integrieren, sodass der Cursor der Szene niemals springt. Die Kraftrückmeldung wird bei allen Übersetzungsverhältnissen fortgesetzt. Muss für diesen Zyklus explizit aktiviert werden; das Standard-Übertragungsformat bleibt unverändert.
  • Die Skalierung der Kräfte ist auf die Sitzung beschränkt (Vorschauversion). Ein Client kann die haptische Ausgabe einer Simulationssitzung – beispielsweise beim Öffnen eines Radialmenüs – auf Null reduzieren und das Gerät an den Hub übergeben, sodass die haptischen Rückmeldungen des Menüs über den normalen Steuerungsweg laufen; die Wiederherstellung erfolgt automatisch, wenn die Sitzung geschlossen oder das Menü wieder geschlossen wird. In diesem Zyklus nur als Vorabversion verfügbar; das Standardübertragungsformat bleibt unverändert.
  • Zoom des Arbeitsbereichs um einen Drehpunkt (experimentell). Übermitteln Sie bei der Aktualisierung der Arbeitsbereichstransformation einen Drehpunkt (z. B. den Cursor in Echtzeit): Die Ansicht wird dann um diesen Punkt herum skaliert, sodass seine Position auf dem Bildschirm fest bleibt – ein sofortiger Zoom auf den Cursor. Nur verfügbar für Inverse3 ; in diesem Zyklus noch experimentell, daher bleibt das Standardübertragungsformat unverändert.
  • Aktualisierung der JSON-Serialisierungs-Engine (glaze) auf Version 7.8.4. Betrifft nur die Infrastruktur – keine Änderungen an der öffentlichen API oder am Verhalten. Ebenfalls enthalten ist eine Neuformatierung der Darstellung von Gleitkommazahlen, die jedoch keine Auswirkungen auf die Werte hat; siehe „Möglicherweise inkompatible Änderungen“ weiter unten.

Korrekturen​

  • Das Ändern oder Zurücksetzen der Montage-Transformation eines Geräts führt nun nicht mehr zu einem Absturz. Ein verbleibender Prototyp-Codepfad löste bei jeder Änderung der Montage eine Begrenzungsbox des Firmware-Arbeitsbereichs aus; dieser Pfad wurde entfernt.
  • Die Körperausrichtung wird nach einer Neukalibrierung an der Inkwell-Station aktualisiert. Nach dem Wiedereinsetzen in die Inkwell-Station und einer Neukalibrierung wird die übertragene Körperausrichtung nun direkt vom Gerät aktualisiert, anstatt bis zur nächsten erneuten Verbindung Werte aus der Zeit vor der Kalibrierung anzuzeigen. Dies erfordert eine aktuelle Geräte-Firmware; das Übertragungsformat bleibt unverändert.
  • Minverse deutet immer auf eine gesperrte Kalibrierung hin. Minverse löst nun ein Ereignis aus device-calibration-failed Jedes Mal, wenn die Firmware eine blockierte Kalibrierung meldet – einschließlich des Grenzfalls eines oszillierenden Hall-Sensors, der den Fehler zuvor stillschweigend überdeckt hat –, wird im Geräte-Manager stets die Meldung „Kalibrierung fehlgeschlagen“ angezeigt.
  • Bei den zentrierten Voreinstellungen wird der Ursprung auf den tatsächlich erreichbaren Mittelpunkt des Arbeitsbereichs gesetzt. arm_front_centered et led_front_centered (Inverse3 / Inverse3x) lagen auf der Achse des Armgelenks, das nicht in der erreichbaren Hülle zentriert ist; somit set_cursor_position ursprünglich {0, 0, 0} lag außerhalb der Mitte. Der zentrierte Ursprung von „ Minverse “ lag zudem etwa 10 mm zu weit rechts. Jede Verschiebung entspricht nun der Hälfte des auf jeder Achse erreichbaren Bereichs, gemessen unter Ausschluss der Grenzbereiche der Sicherheitsfedern der Firmware und nicht des mechanisch möglichen Bereichs. (Siehe den Hinweis zur Verschiebung des Ursprungs unter „Möglicherweise inkompatible Änderungen“.)

Möglicherweise inkompatible Änderungen​

  • POST/DELETE /config/filters/damping Bei einer Firmware-Version vor 7.5 wird nun der HTTP-Status 422 zurückgegeben. im Rahmen einer Veranstaltung device-protocol-unsupported, anstatt eines 200, der den Schreibvorgang stillschweigend ignorierte. Die Firmware-Version 7.5 und neuere Versionen sind davon nicht betroffen (die Antwort lautet weiterhin 200). Behebung: Aktualisieren Sie die Firmware des Geräts auf Version 7.5 oder höher oder beheben Sie den Fehlercode 422.
  • POST/DELETE /home_return Bei einer Firmware, die diesen Befehl nicht unterstützt (vor Version 7.4), wird nun der HTTP-Status 422 zurückgegeben. anstelle eines bedingungslosen 200. Betroffen sind nur Geräte mit einer veralteten Firmware. Behebung: Führen Sie ein Firmware-Update auf Version 7.4 oder höher durch oder beheben Sie den Fehlercode 422.
  • Bestellrückmeldungen zu config/mount et state/transform (GET/POST/PATCH/DELETE) werden nun serialisiert transform.rotation in der Reihenfolge der Schlüssel {w,x,y,z} anstatt {x,y,z,w}, um der Drehreihenfolge der Momentaufnahme zu entsprechen state als Stream übertragen. Ausschließlich auf Byte-Ebene – gleiche Werte, gleiche Schlüsselnamen; lediglich die Reihenfolge der Schlüssel ändert sich, und alle drei Komponenten werden stets zurückgegeben. JSON-Clients, die nach Namen indizieren, müssen keine Maßnahmen ergreifen; bei strengen Byte- oder Reihenfolgevergleichen müssen ihre Verweise aktualisiert werden.
  • Gültigkeitsbereiche für Änderungsbenachrichtigungen bei Konfigurationsanwendungen für einzelne Geräte. Das Ereignis zur Benachrichtigung über einen Sitzungswechsel meldet nun Namen von Konfigurationsbereichen (config.mount, config.basis, config.preset) anstelle von einfachen Namen (mount, basis, preset) wenn die Konfiguration eines einzelnen Geräts angewendet wird. Kunden, die diese Ereignisbereichszeichenfolgen filtern, müssen ihre Zuordnungen aktualisieren.
  • Umformatierung des Textes von Gleitkommazahlen durch „glaze“ für alle übermittelten Zahlenwerte, v3.0 und v3.1 (zum Beispiel 1.0E-7 -> 1E-7, 16777216 -> 1.6777216E7, -1.0E-37 -> -1E-37). Rein auf Byte-Ebene – die digitalen Analysatoren lesen dieselben Werte aus; lediglich die Textdarstellung hat sich geändert. Verbraucher, die Zeichenfolgen vergleichen, müssen ihre Referenz-Testsuiten aktualisieren.
  • Verschiebung des Ursprungs der zentrierten Voreinstellungen. Da die Voreinstellungen für die Zentrierung nun auf den tatsächlich erreichbaren Mittelpunkt abzielen, verschiebt sich der dadurch festgelegte Ursprung im Vergleich zur Version 3.5.2: arm_front_centered / led_front_centered sich um 25 mm entlang der Tiefenachse des Geräts verschieben, verschiebt sich die zentrierte Voreinstellung von „ Minverse “ um 10 mm in X-Richtung, 20 mm in Y-Richtung und 20 mm in Z-Richtung, und minverse_zup bewegt sich um 20 mm in X-Richtung und um 30 mm in Y-Richtung. Diese Funktion ist standardmäßig aktiviert, und minverse_zup wird automatisch auf erkannte Freeform-Sitzungen angewendet. Auswirkungsbereich: Inhalte, die am Ursprung platziert wurden, oder Geometrien, die relativ zu diesem positioniert wurden, während eine zentrierte Voreinstellung aktiv ist – sie verschieben sich mit dem Ursprung. Umstellung: Überprüfen Sie die am Ursprung verankerten Geometrien erneut oder geben Sie den bisherigen Versatz explizit als benutzerdefinierte Montage-Transformation ein. Nicht zentrierte Voreinstellungen (device_defaults, arm_front, led_front) sind Identitätsabbildungen und bleiben unverändert.

Veraltete Funktionen​

  • Der traditionelle Eingang values Die Steuerelemente „ inverse3 “ sind nun als veraltet gekennzeichnet. Der Versand des Gemäldes values à set_cursor_force, set_cursor_position, set_angular_position ou set_angular_torques, anstelle des benannten Feldes des Befehls (vector / position / angles / torques), funktioniert weiterhin, löst nun aber ein Ereignis aus command-deprecated (begrenzt auf einen pro 30 Sekunden und pro Befehl), anstatt stillschweigend akzeptiert zu werden. Migrieren Sie values in das entsprechende Feld; der vererbte Eintrag wird in Version 4.0 entfernt.
  • Ansonsten gibt es für diesen Zyklus keine Änderungen am öffentlichen Protokoll.