Zum Hauptinhalt springen

v3.5.1

3.5.1 ist eine stabile und qualitativ hochwertige Version. Zu den wichtigsten Neuerungen gehören: automatisches Pairing bei einer 1↔1- Inverse3 -Konfiguration mit Handshake; ohne geöffnete WebSocket-Sitzung,GET /devices/{id} Es kann weiterhin der aktuelle Bewegungsstatus zurückgegeben werden; das schrille Geräusch beim Umschalten zwischen Kraft- und Positionsmodus wird beseitigt; außerdem verfügt der Service-Tick-Scheduler über eine Selbstanpassungsfunktion bei anhaltend hoher Auslastung.

Highlights​

  • 1↔1 Inverse3 + Automatische Kopplung der Griffhalterung. Wenn ein „ Inverse3 “ und ein Griff bereit sind, registriert das SDK automatisch die Kopplung – in einer Umgebung mit mehreren Geräten,pen_attached Mit Minverse wird sichergestellt, dass die Freischaltung nicht mehr fälschlicherweise weitergeleitet wird.
  • Sie können die neuesten Informationen abrufen, ohne eine Sitzung zu öffnen. GET /devices/{id} Schnappschuss. Inverse3 , Inverse3x und Minverse mit Firmware-Version 7.5+ fragen nun alle 20 Hz den Bewegungsstatus ab, unabhängig vom Aktivitätsstatus des WebSockets. Firmware-Versionen vor 7.5 überspringen diese Abfrage und geben nur einmal eine Warnung aus.
  • Beim Umschalten zwischen Kraft- und Positionsmodus tritt kein Pfeifgeräusch mehr auf. set_cursor_force ↔ set_cursor_position Für die Umschaltung wird ein Slot-Exklusivitätsmechanismus verwendet: Zwischen zwei Ticks behält jedes Gerät nur den neuesten Befehl bei. Die vorübergehende Umgehungslösung mit einem Leerlaufintervall von 200 ms in „HARP “ ist nicht mehr wirksam.
  • Selbstregulierender Tick-Scheduler. Die Hauptschleife passt die Ausgaberate unter Last automatisch an, sodass ein einzelner langsamer Tick nicht zu einem unbegrenzten Anwachsen der Befehlswarteschlange führt.
  • Durchlaufende Wiederherstellung mit einem Eingangs- und einem Ausgangskanal unter hoher Auslastung. Die Streaming-Antworten für jede WS-Nachricht sind in jeder Sitzung auf 1/ms begrenzt; wenn die Obergrenze erreicht ist, wird der Inhalt des vorherigen Puffers erneut wiedergegeben, sodass die Simulationsschleife niemals bei recv() Oben.

Interne Verbesserungen​

Ausrüstung​

  • Inverse3 - und VerseGrip-Registrierungsliste, nach Geräten geordnet. GET|POST|DELETE /devices/{sel}/paired_with Es handelt sich um eine Eins-zu-Eins-Zuordnung nach Geräten.POST Die Konflikte zwischen den beiden Paaren werden beseitigt;DELETE Ausgewählte Einträge löschen; der Selektor muss zu einer eindeutigen ID aufgelöst werden.
  • 20-Hz-Abfrage des Bewegungsstatus bei Firmware v7.5+. GET /devices/{id} Alle 50 ms wird der aktuellste Wert zurückgegeben. cursor_position、cursor_velocity、angular_position、angular_velocity; erkennt aktive Sitzungen nicht.
  • Der kabellose VerseGrip set_extension_data Drehzahlregelung. Es wird ein Pipeline-Ansatz nach dem Prinzip „Alte Daten verwerfen / in Leerlaufzeiten wiederholt senden“ verwendet, wobei die Daten bei jedem Service-Tick geleert werden – so wird die Funkverbindung durch zu viele Sendevorgänge nicht mehr überlastet, und bei zu wenigen Sendevorgängen bleiben keine veralteten Werte zurück.

Gespräch​

  • Für Chargen, die ausschließlich Steuerbefehle (Kraft/Position) enthalten, wurde ein schneller WS-Empfangspfad hinzugefügt, der die Verarbeitungskette für die Konfiguration der Sensorik überspringt;configure / set_profile / Benutzerdefinierte Befehle durchlaufen weiterhin die Logik zur Behebung von Race-Conditions.

Beobachtbarkeit​

  • Die Häufigkeit der Ausgabe von Überwachungsprotokollen richtet sich nach dem jeweiligen Port und berücksichtigt dabei die Dauer. Jeder auf der Sperrliste stehende Port wird separat überwacht; regelmäßig auftretende "...blacklisted: skipping" Protokollzeilen enthalten nun (×N), gibt die Anzahl der Ticks an, die zwischen zwei Auslösungen unterdrückt wurden.
  • Wenn ein Gerät erkannt wird, das nicht zur WVG-Familie gehört, füllt die drahtlose VerseGrip-Erkennung das Protokoll nicht mehr mit einer Flut von Einträgen.

Fehlerbehebung​

  • Verwendung POST /device.config.preset und festlegen defaults oder arm_front Zeit… nun wird die Einbindungskonfiguration des Geräts auf die Werkseinstellungen zurückgesetzt (zuvor erfolgte ein stiller Leerlauf).basis wird beibehalten, sodass die in der App konfigurierte Basis auch nach dem Einbinden von Voreinstellungen weiterhin gültig bleibt.
  • Wenn die passende „configure“-Anweisung zusammen mit dieser in derselben WS-Nachricht eintrifft,force_render_full_state Wird nicht mehr zurückgegeben, fehlt config Snapshot eines Blocks——Die Konfiguration des Pfads wird vor der Erstellung des Snapshots abgeschlossen sein.
  • sitzungsübergreifend force_render_full_state Nun wird ein vollständiger Snapshot der Zielsitzung zurückgegeben. A und B erhalten nun beide die vollständigen Daten (zuvor erhielt A nur Streaming-Daten).
  • Wenn target_session_id Solange dies unbekannt ist, führen sitzungsübergreifende Befehle nicht mehr dazu, dass der Anfrage-Antwort-Zyklus ins Stocken gerät. Der Aufrufer erhält einen eigenen Snapshot sowie einen session-command-dropped Ereignis (cross-session-unknown-target).
  • Minverse Durch die Kalibrierung mehrerer Geräte wird die fehlerhafte Weiterleitung nicht mehr ausgelöst. Die Kalibrierung von Minverse A löst nicht mehr die Freigabe von Minverse B aus; die gleiche Korrektur wurde auch für die Heading-Übertragung von „inkwell-success“ vorgenommen.
  • HTTP-Geräteauswahl Akzeptieren #1234 und 1234 Als Geräte-ID; Selektor-Klasse (inverse3、verse_grip) kann in Verbindung mit Indizes verwendet werden; bei einer 404-Meldung bleibt der ursprüngliche Selektorausdruck erhalten.
  • Der kabellose VerseGrip ready Das Logo hängt nun vom anfänglichen Handshake mit den Geräteinformationen ab——Bisher konnte dieses Flag auf bestimmten Wiederverbindungswegen gesetzt werden, noch bevor das Gerät seine eigenen Informationen vollständig übermittelt hatte.
  • Laufzeitänderungen an Einstellungen, die von „keyed-rate-gate“ unterstützt werden, werden nun beim nächsten Treffer wirksam(bisher wurden sie bereits beim ersten „Emplace“ festgelegt und nur in neuen Sitzungen angewendet).

Möglicherweise schwerwiegende Änderungen​

  • Die 404-Fehlermeldungen bei HTTP wurden vereinheitlicht, umfasst basis、preset、mount、transform、force_gate:"{type} device #{id} not found" → "no device matches selector '{expr}'"。Das Gleiche gilt für den 404-Fehler in der Sitzung.
  • Platzhalter für Einstellungsoptionen devices/inverse*/... → devices/*inverse/..., anwendbar auf die Kraftskalierungsverstärkung, die Kraftgatterverstärkung, die Steuerungszeitüberschreitung sowie safeties/expose_in_snapshot。Konfigurationsdateien der Version 3.5.0, die den alten Pfad im Klartext verwenden, können nicht eingebunden werden.
  • Einstellungen: Die Serialisierung globaler Elemente wurde verschoben nach session/serialization/*(explicit_fields、force_complete_transforms、preview/*). Alt serialization/* Der Pfad kann weiterhin über veraltete Aliase aufgelöst werden; wird in Version 4.0 entfernt.
  • Verhaltensänderung: Bei Clients, die die WS-Antworten jeder Nachricht für den Tick-Synchronisations-Handshake verwenden, wird unter kontinuierlichem Datenverkehr pro Sitzung höchstens eine Antwort pro Millisekunde empfangen. Vollständige Snapshots bei Konfigurationsänderungen sind davon nicht betroffen.

Veraltete Elemente​

3.5.1 enthält keine veralteten Elemente. Der Vorschau-Hauptschalter ist eine veraltete Infrastruktur der kommenden Version 3.6 „Von stillschweigend zu Warnung“; die erste Phase der Ausmusterung ist für 3.5.2 geplant.