Wichtigste Punkte {#highlights}
Änderungen an den Geräteeinstellungen werden nun auf alle Client-Sitzungen übertragen, die dieses Gerät nutzen. Es handelt sich nicht um ein Verfahren, bei dem die Änderungen nur in der Sitzung berücksichtigt werden, in der sie vorgenommen wurden. Der zweite Viewer führt anstelle eines Pollings eine eigene In dieser Sitzung aktualisiert Die Seite wird nach dem Empfang des Ereignisses aktualisiert. Pro Sitzung, in der das Gerät vorhanden ist, tritt genau ein Ereignis auf; auf dem Client, der den Schreibvorgang durchgeführt hat, tritt es nicht zweimal auf.Nun kann dem Client die tatsächliche Einbindeposition des Geräts gemeldet werden. Dies ersetzt die bisherige Vorgehensweise, bei der der Dienst stets nur die in der Sitzung festgelegte Einbindung meldete. Die Kennzeichnung, die angibt, welcher der beiden Werte gemeldet wird, ist nun in allen Ausgabeformaten strukturell korrekt.Wenn das Gerät seine eigenen Referenzwerte für die Ausrichtung beibehält, passt sich der Dienst daran an. Bisher lieferte der Dienst die beim Start des Geräts erfassten Werte unverändert aus und überprüfte sie nicht erneut. Nun können die Referenzwerte auf Anfrage entsprechend dem Rendering-Zyklus des Clients aktualisiert werden. Um zu verhindern, dass schnelle Clients die Geräteverbindung überlasten, begrenzt der Dienst die Geschwindigkeit und meldet Änderungen erst, nachdem sich die Ausrichtung tatsächlich geändert hat.Interne Verbesserungen {#internal-improvements}
Experimentelle automatische Korrektur der Gierdrift (Yaw) des Griffs. Ein neues Servicemodul schließt den Regelkreis zur Korrektur der Trägheitsdrift des Wireless VerseGrip. Der absolute Gierwert des Griffs wird an die Bewegung des gekoppelten „ Inverse3 “ oder „Minverse“ angepasst, an dem der Griff befestigt ist, und sobald alle Qualitätskriterien erfüllt sind, wird ein einzelner Korrekturwert in die Firmware des Griffs geschrieben. Diese Funktion wird standardmäßig deaktiviert ausgeliefert undist nur verfügbar, wenn der experimentelle Opt-in-Schalter aktiviert ist. Außerdem ist ein Laufzeit-Schalter enthalten, der die Korrektur aller aktiven Griffe zum Zeitpunkt der Umschaltung zwangsweise deaktiviert. Da es sich um eine Funktion handelt, die Schreibvorgänge in die Geräte-Firmware durchführt, ist dieser Schalter zwingend erforderlich.Das Schreiben von Einstellungen für alle Geräte wird nun entweder vollständig oder gar nicht angewendet. Vor dem Wechsel eines Geräts werden die Firmware-Funktionen und die Betriebsbereitschaft des Geräts für alle ausgewählten Geräte überprüft. Dadurch kommt es nicht mehr vor, dass bei einer Flotte mit gemischter Firmware auf dem zweiten Gerät ein Fehler auftritt und nur die Hälfte der Geräte umgestellt wird.Die Überprüfung der Grip-Firmware-Antworten wird nun pro Anfrage nachverfolgt. Aufgrund eines einzigen gemeinsamen Ergebnis-Slots konnten zwei gleichzeitige Anfragende die Antworten des jeweils anderen verlieren, und ein mehrdeutiger Wert bedeutete gleichzeitig „abgelehnt“ und „noch keine Antwort“. Dies konnte dazu führen, dass eine Ablehnung zu einer Flut von Wiederholungsversuchen führte. Nun verfügt jede Anfrage über ein eindeutiges Token, und Anfragen, die tatsächlich nicht gesendet wurden, werden nicht registriert. Wenn eine Antwort verloren geht, wird dies als Fehler behandelt, anstatt den Vorgang anzuhalten. Der dafür erforderliche Sweep verursacht keine Kosten, wenn keine ausstehenden Anfragen vorhanden sind.Die Kalibrierung des Inkwell-Docks wird durch die Überprüfung der neuen Grip-Firmware-Funktionen nicht beeinflusst. Beim Andocken des Stifts wird eine vollständige Neukalibrierung der Position durchgeführt; dies ist bei allen ausgelieferten Stiften unabhängig von der Firmware-Version das korrekte Verhalten. Dieser Pfad ist ausdrücklich von den Mindestanforderungen für die berechnete Orientierungskorrektur ausgenommen, und diese Ausnahme ist nicht der Interpretation überlassen, sondern am Aufrufort ausdrücklich angegeben.Änderungen {#fixes}
Beim Zurücksetzen der Schwerkraftkompensation wird nun nicht mehr der Überschusswert, sondern der tatsächliche Standardwert wiederhergestellt. Anders als der Name vermuten lässt config/Schwerkraftkompensationvon Skalierungsfaktor Das Feld ist kein Multiplikator. Dieses Feld gibt die Nutzlast des Endeffektors (in Kilogramm) an, die das Gerät zusätzlich zu seinem Eigengewicht tragen kann. Bei der Zurücksetzung wird dieser Name unverändert übernommen und als „neutraler“ Koeffizient verwendet: 1wurde wiederhergestellt. Dies entspricht der Einstellung einer fiktiven Nutzlast von 1 Kilogramm, sodass das Gerät nach dem Zurücksetzen den Griff nach oben schob. Neu angeschlossene Geräte verhalten sich nicht so. Nun werden beim Zurücksetzen die tatsächlichen Standardwerte angewendet. Die Belohnung wird aktiviert und Skalierungsfaktorist 0ist so eingestellt, dass davon ausgegangen wird, dass das Gerät nur sein Eigengewicht trägt und keine Nutzlast vorhanden ist. Falls die Anwendung die Nachjustierung genutzt hat, um die Kompensationsstärke zu erhöhen, legen Sie den gewünschten Wert bitte explizit fest.Die Funktion „Zurück zur Startseite“ (Home Return) wird nun tatsächlich wieder aktiviert. config/home_returnDie Zurücksetzung teilte dem Aufrufer zwar mit, dass die Funktion aktiviert sei, deaktivierte jedoch tatsächlich die Rückkehr zum Startbildschirm. Nun werden bei der Zurücksetzung die Werkseinstellungen (aktiviert) tatsächlich wiederhergestellt, und die Werte, die die Anwendung anschließend ausliest, stimmen mit den tatsächlich vom Gerät verwendeten Werten überein.Nach einer Gerätebereichszuordnung oder einem Richtungsschreibvorgang bleiben bei anderen Clients keine veralteten Werte zurück. Vor Version 3.5.6 wurden durch Schreibvorgänge, die auf das Gerät selbst angewendet wurden (und von allen Sitzungen, die dieses Gerät nutzten, gemeinsam genutzt wurden), lediglich die Einstellungen des Clients aktualisiert, der den Schreibvorgang durchgeführt hatte, während die geräteweiten Routen bei keinem Client aktualisiert wurden. Andere Clients, die dasselbe Gerät nutzen, zeigten weiterhin die alten Werte an, bis sie eine Abfrage durchführten. Nun wird die Benachrichtigung an alle Sitzungen weitergeleitet, die das Gerät nutzen.Bei wiederholten Inkwell-Docking-Versuchen wird nicht bereits nach einer einzigen Ablehnung aufgegeben. Da der Status des vorherigen Docking-Vorgangs zwischen den einzelnen Docking-Versuchen beibehalten wurde, wertete der zweite Docking-Versuch die erste Ablehnung als Ende des Wiederholungszeitraums. Nun wird der Wiederholungszeitraum bei jedem Docking-Versuch zurückgesetzt.Der Datenfluss des Wireless VerseGrip-Geräteticks wurde korrigiert. Während der Staging-Pfad von einem anderen Lock gelesen wurde, konnte der Verbindungsthread die Gerätekennung neu zuweisen. Nun wird die Kennung einmalig als Snapshot unter dem richtigen Lock gespeichert, und alle nachfolgenden Pfade (einschließlich der Ablehnungsverarbeitung) basieren auf dieser Kopie.Das Problem, bei dem die Nachrichtenvorbereitung an vier Wireless-VerseGrip-Sendern nicht synchronisiert wurde, wurde behoben. Da die vier Sendewege die Nutzdaten und Prüfsummen zusammengestellt und die Übertragung angefordert hatten, ohne eine Schreibsperre zu erwerben, konnten zwei Sender die Daten im gemeinsamen Puffer durcheinanderbringen.Mögliche Änderungen, die zu Kompatibilitätsproblemen führen können {#potential-breaking-changes}
Es gibt keine Änderungen an der API, am Wire-Format oder an den Einstellungen. Die Standardausgabe entspricht byteweise der Version 3.5.5, es wurden keine Routen gelöscht oder umgeleitet, es gibt keine Unterschiede in der öffentlichen C-API, und es wurden keine Namen von Konfigurationsschlüsseln geändert, gelöscht oder mit neuen Standardwerten versehen. Allerdings müssen Anwendungen, die sich für die Vorschau- oder experimentellen Funktionen des SDK angemeldet haben, in diesem Zyklus migriert werden. Dazu gehören Änderungen der Switch-Klassen und entfernte Token-Sätze; alle Schritte sind im Änderungsprotokoll für technische Referenzzwecke dokumentiert.Die Neujustierung der Schwerkraftkompensation liefert einen anderen Wert als in Version 3.5.5. Die Felder, Pfade und Antwortformulare haben sich nicht geändert, aber die Neufestlegung Skalierungsfaktor를 1Anwendungen, die sich bisher darauf verlassen haben, dass Daten als gespeichert werden, verwenden nun die Werkseinstellung 0erhalten Sie. In jedem Fall bleibt die Vergütung selbst weiterhin aktiv. Verlassen Sie sich nicht auf die Zurücksetzung, sondern legen Sie den Wert explizit fest. Beachten Sie dazu die oben genannten Änderungen.Nach dem Zurücksetzen der „Home-Rückkehr“-Funktion bleibt diese aktiviert und wird nicht deaktiviert. Die Felder, Routen und Antwortformulare haben sich nicht geändert, aber Anwendungen, diedie „Home-Rückkehr“-Funktion bisher über das Zurücksetzen deaktiviert haben, sehen diese nun als aktiviert an. Wenn die Funktion deaktiviert sein soll, deaktivieren Sie sie nach dem Zurücksetzen ausdrücklich. Beachten Sie dazu die oben genannten Änderungen.Der Client erhält ein Ereignis zur zusätzlichen Konfiguration. In dieser Sitzung aktualisiert Eine Anwendung, die bisher davon ausgegangen ist, dass Ereignisse nur aufgrund eigener Schreibvorgänge eintreffen, erhält nun auch dann Ereignisse, wenn ein anderer Client die gemeinsam genutzten Geräte ändert, woraufhin die gesamte Konfiguration neu gerendert wird. Dies ist das beabsichtigte Ergebnis des oben beschriebenen „Fan-Out“-Verhaltens. Clients, die nach dem Empfang eines Ereignisses lediglich erneut lesen, müssen nicht geändert werden.