Zum Hauptinhalt springen

v3.5.1

Die Version 3.5.1 ist eine Stabilisierungs- und Qualitätsversion. Hauptthemen: Automatische Paarung für 1↔1-Konfigurationen von „ Inverse3 “ + Griff, Bewegungsstatus GET /devices/{id} Aktualisierung ohne offene WebSocket-Sitzung, Behebung des Knackgeräuschs beim Wechsel zwischen den Modi „Force“ und „Position“ sowie ein sich unter Dauerlast automatisch anpassender Service-Tick-Scheduler.

Highlights​

  • Automatische Kupplung für 1↔1-Anlagen von „ Inverse3 “ + Griff. Sobald ein „ Inverse3 “ und ein Griff bereit sind, registriert das SDK automatisch eine Kopplung; das Entsperren, das durch pen_attached und durch die Kalibrierung „ Minverse “ werden in Konfigurationen mit mehreren Geräten nicht mehr falsch weitergeleitet.
  • Schnappschüsse GET /devices/{id} Aktualisiert, ohne dass eine Sitzung geöffnet ist. Inverse3 / Inverse3x / Minverse mit Firmware-Version v7.5+ lassen nun ihren Bewegungsstatus mit einer Frequenz von 20 Hz abfragen, unabhängig von der WebSocket-Aktivität. Firmware-Versionen vor v7.5 ignorieren diese Abfrage und geben lediglich eine einzige Warnmeldung aus.
  • Der Umschalter „Kraft/Position“ quietscht nicht mehr. Der Übergang von set_cursor_force ↔ set_cursor_position Nutzen Sie ein exklusives Zeitfenster: Zwischen zwei Ticks wird nur der letzte Wert pro Gerät gespeichert. Die 200-ms-Workaround-Lösung für Inaktivitätsintervalle von HARP ist mittlerweile veraltet.
  • Selbstanpassender Tick-Scheduler. Die Hauptschleife passt ihre Sendefrequenz unter Last an, sodass ein langsamer Tick die Befehlswarteschlange nicht unbegrenzt anwachsen lassen kann.
  • Antworten im 1:1-Modus unter Last. Die Antworten im WS-Nachrichten-Stream sind auf eine pro Millisekunde und pro Sitzung begrenzt; wenn die Obergrenze den Versand verhindert, wird der vorherige Puffer erneut gesendet, sodass die Simulationsschleifen niemals bei recv().

Interne Verbesserungen​

Geräte​

  • Kopplungsprotokoll „ Inverse3 “ ↔ „VerseGrip“ pro Gerät. GET|POST|DELETE /devices/{sel}/paired_with ist eine 1:1-Zuordnung pro Gerät. POST beseitigt Konflikte auf beiden Seiten; DELETE Löscht den ausgewählten Eintrag; die Auswahl muss einer einzigen Kennung entsprechen.
  • Abfrage des Bewegungsstatus mit 20 Hz bei Firmware-Version 7.5+. GET /devices/{id} gibt neue Werte von cursor_position, cursor_velocity, angular_position, angular_velocity alle 50 ms; transparent für aktive Sitzungen.
  • Geregelter Durchfluss für set_extension_data VerseGrip-Funkgerät. Pipeline „Abandon der ältesten Einträge / Wiederholung bei Inaktivität“, die bei jedem Tick des Dienstes geleert wird – eine übermäßige Übermittlung überlastet die Funkverbindung nicht mehr, eine unzureichende Übermittlung hinterlässt keine veralteten Werte mehr.

Sitzungen​

  • Neuer schneller WS-Empfangsweg ausschließlich für Kontrollchargen (Kraft/Position), der die konfigurationsabhängige Pipeline umgeht; configure / set_profile / Benutzerdefinierte Befehle durchlaufen immer den Mechanismus zur Vermeidung von Parallelitätskonflikten.

Beobachtbarkeit​

  • Die Häufigkeit der Erkennungsprotokolle hängt vom Port ab und berücksichtigt die Wiederholungsrate. Jeder Port auf der Sperrliste wird unabhängig geprüft; die wiederkehrende Zeile "...blacklisted: skipping" wird nun angezeigt (×N) für die Ticks, die zwischen zwei Auslösungen unterdrückt wurden.
  • Die drahtlose Erkennung von VerseGrip überflutet das Protokoll nicht mehr, wenn ein anderes Gerät als WVG abgefragt wird.

Korrekturen​

  • POST /device.config.preset avec defaults ou arm_front Setzt nun die Konfiguration des Geräts auf die Werkseinstellungen zurück (zuvor ohne Wirkung und ohne Fehlermeldung). basis wird beibehalten, damit die in der Anwendung konfigurierten Datenbanken auch bei Änderungen der Einstellungsvorgaben für die Montage erhalten bleiben.
  • force_render_full_state gibt keine Momentaufnahmen mehr ohne Block zurück config Wenn die entsprechende Konfiguration in derselben WS-Nachricht eintrifft, wird der Konfigurationspfad vor der Momentaufnahme synchron geleert.
  • force_render_full_state „inter-sessions“ gibt die vollständige Momentaufnahme des Ziels zurück. A und B sehen nun die gesamte Nutzlast (zuvor erhielt A nur den Gleichstrom).
  • Sitzungsübergreifende Befehle, deren target_session_id … sind unbekannt und blockieren den Anfrage-Antwort-Zyklus nicht mehr. Der Antragsteller erhält seinen eigenen Screenshot sowie eine Benachrichtigung session-command-dropped (cross-session-unknown-target).
  • Die Kalibrierungsfreischaltungen für mehrere Geräte „ Minverse “ werden nicht mehr falsch weitergeleitet. Die Kalibrierung von „ Minverse A“ schaltet „ Minverse B“ nicht mehr frei; dasselbe gilt für die Freigabe des „Inkwell“-Erfolgssymbols.
  • Die HTTP-Geräteauswahl akzeptiert #1234 et 1234 als Gerätekennung; die Selektor-Klassen (inverse3, verse_grip) funktionieren auch mit dem Index; die 404-Meldungen behalten den ursprünglichen Selektorausdruck bei.
  • Der Indikator ready Die drahtlose Verbindung von VerseGrip hängt nun von der anfänglichen Übertragung der Geräteinformationen ab. — Früher konnte es bei bestimmten Verbindungsaufbauten zu einem Umschalten kommen, bevor das Gerät vollständig erkannt worden war.
  • Änderungen an der Ausführung von Parametern, die auf einem schlüsselgesteuerten Timing-Port basieren, werden nun beim nächsten Trigger wirksam (bisher war der Wert beim ersten Setzen festgeschrieben; nur neue Sitzungen berücksichtigten die Änderung).

Möglicherweise inkompatible Änderungen​

  • Vereinheitlichte HTTP-404-Fehlermeldungen dans basis, preset, mount, transform, force_gate : "{type} device #{id} not found" → "no device matches selector '{expr}'". 404-Fehler der Sitzung werden auf dieselbe Weise behandelt.
  • Motivkugel devices/inverse*/... → devices/*inverse/... für die Kraftverstärkung, die Krafttorverstärkung, die Ablaufzeit der Steuerung und safeties/expose_in_snapshot. Einstellungsdateien der Version 3.5.0, die die alte Literalform verwenden, können nicht eingebunden werden.
  • Einstellungen: Die globalen Serialisierungsvariablen wurden verschoben nach session/serialization/* (explicit_fields, force_complete_transforms, preview/*). Die alten Wege serialization/* werden immer noch durch veraltete Aliase aufgelöst; sie werden in Version 4.0 entfernt.
  • Verhalten: Kunden, die die WS-Antwort pro Nachricht als „Handshake“ zur Tick-Synchronisation verwenden, erhalten bei anhaltendem Datenverkehr höchstens eine Antwort pro Millisekunde und Sitzung. Vollständige Snapshots bei einer Konfigurationsänderung sind davon nicht betroffen.

Veraltete Funktionen​

Keine in Version 3.5.1. Der Hauptschalter in der Vorschau dient als Auslaufmechanismus für die künftige Umstellung der Pipeline von „Silent Mode“ auf „Warn Mode“ in Version 3.6; die erste Auslaufphase ist für Version 3.5.2 vorgesehen.