Skip to main content
Version : 3.5.x

v3.5.1

La version 3.5.1 est une version de stabilisation et d'amélioration de la qualité. Principaux thèmes : appariement automatique pour les configurations 1↔1 Inverse3 grip, nouveautés GET /devices/{id} un état de mouvement sans session WebSocket ouverte, la suppression du grincement lors du changement de mode force/position, ainsi qu'un planificateur de tics de service à réglage automatique sous charge continue.

Points forts

  • Appariement automatique pour les installations 1↔1 Inverse3 poignée. Une fois qu'un Inverse3 une poignée sont prêts, le SDK enregistre automatiquement le couplage — pen_attached et le déblocage de Minverse met fin aux erreurs d'acheminement dans les configurations multi-appareils.
  • Frais GET /devices/{id} instantanés sans session ouverte. Minverse Inverse3 Inverse3x / Minverse la version 7.5 ou supérieure du micrologiciel, l'état de mouvement est désormais interrogé à une fréquence de 20 Hz, quelle que soit l'activité WebSocket. Les versions antérieures à la version 7.5 du micrologiciel ne procèdent pas à cette interrogation et émettent un seul avertissement.
  • Le changement de mode Force/Position ne produit plus de grincement. Commutation set_cursor_forceset_cursor_position est une fonctionnalité propre au slot : seule la dernière valeur par périphérique est conservée entre deux ticks. La solution de contournement HARP pour l'intervalle d'inactivité de 200 ms est désormais obsolète.
  • Planificateur de ticks à réglage automatique. La boucle principale adapte son rythme de distribution en fonction de la charge, de sorte qu'un tick lent ne puisse pas allonger la file d'attente des commandes de manière illimitée.
  • Réponses en streaming « 1 entrée, 1 sortie » sous charge. Le nombre de réponses en continu par message WS est limité à 1 par milliseconde et par session ; si cette limite est atteinte, le tampon précédent est rejoué, de sorte que les boucles de simulation ne se bloquent jamais sur recv().

Améliorations internes

Dispositifs

  • Registre des appariements Inverse3 VerseGrip par appareil. GET|POST|DELETE /devices/{sel}/paired_with Il s'agit d'une correspondance biunivoque par appareil. POST élimine les conflits de part et d'autre ; DELETE efface l'entrée sélectionnée ; le sélecteur doit correspondre à un seul identifiant.
  • Sondage sur l'état de fonctionnement à 20 Hz pour la version 7.5+ du micrologiciel. GET /devices/{id} revient en pleine forme cursor_position, cursor_velocity, angular_position, angular_velocity toutes les 50 ms ; sans incidence sur les sessions actives.
  • VerseGrip sans fil set_extension_data à vitesse régulée. Le pipeline « Drop-older / repeat-on-idle » est vidé à chaque tick de service : les envois excédentaires ne saturent plus la liaison radio, et les envois insuffisants ne laissent plus de valeur obsolète.

Séances

  • Le nouveau chemin rapide WS-receive pour les lots de type « contrôle uniquement » (force/position) contourne le pipeline tenant compte de la configuration ; configure / set_profile / Les commandes personnalisées passent toujours par le correctif anti-concurrence.

Observabilité

  • La fréquence d'enregistrement des détections est définie par port et tient compte de la persistance. Chaque port figurant sur la liste noire est contrôlé individuellement ; les "...blacklisted: skipping" La gamme propose désormais (×N) pour les tics restés silencieux entre deux feux.
  • La détection sans fil de VerseGrip ne génère plus un afflux de messages dans le journal lorsqu'un appareil non compatible WVG est détecté.

Corrections

  • POST /device.config.preset avec defaults ou arm_front réinitialise désormais le montage du périphérique aux paramètres d'usine (auparavant, cette opération n'avait aucun effet). basis est conservée afin que les bases de données configurées par l'application ne soient pas affectées par les modifications apportées aux paramètres de montage.
  • force_render_full_state ne renvoie plus d'instantané dans lequel il manque config bloc lorsque la configuration correspondante est transmise dans le même message WS, le chemin de configuration se vide de manière synchrone avant la capture.
  • Inter-sessions force_render_full_state renvoie l'instantané complet de la cible. A et B reçoivent désormais la totalité des données (auparavant, A ne recevait que le flux en continu).
  • Commandes inter-sessions avec une variable inconnue target_session_id ne bloque plus la boucle requête-réponse. Le demandeur reçoit son propre instantané + un session-command-dropped événement (cross-session-unknown-target).
  • Le déverrouillage via l'étalonnageMinverse ne provoque plus d'erreurs de routage. L'étalonnage Minverse ne déverrouille plus Minverse ; même correction pour la diffusion d'en-tête « inkwell-success ».
  • Sélecteur de périphériques HTTP accepte #1234 et 1234 comme identifiant de l'appareil ; classes de sélection (inverse3, verse_grip) fonctionnent en parallèle avec l'index ; les messages 404 conservent l'expression de sélection d'origine.
  • VerseGrip sans fil ready Le drapeau est désormais activé lors de la négociation initiale des informations sur le périphérique — il était auparavant possible de basculer avant que l'appareil ne se soit complètement identifié sur certains chemins de reconnexion.
  • Les modifications apportées à l'exécution aux paramètres basés sur le « keyed-rate-gate » prennent désormais effet dès le prochain déclenchement (auparavant : les paramètres restaient figés dès leur première définition ; seules les nouvelles sessions prenaient en compte la modification).

Modifications susceptibles d'entraîner des problèmes de compatibilité

  • Unification des chaînes HTTP 404 à travers basis, preset, mount, transform, force_gate: "{type} device #{id} not found""no device matches selector '{expr}'". Il en va de même pour la session 404.
  • Paramètres généraux devices/inverse*/...devices/*inverse/... pour le gain de l'échelle de force, le gain de la porte de force, le délai d'expiration de la commande, safeties/expose_in_snapshot. Les fichiers de configuration de la version 3.5.0 utilisant l'ancienne valeur littérale ne pourront pas être chargés.
  • Paramètres : les variables globales de sérialisation ont été déplacées vers session/serialization/* (explicit_fields, force_complete_transforms, preview/*). Ancien serialization/* Les chemins d'accès sont toujours résolus via des alias obsolètes ; suppression prévue dans la version 4.0.
  • Comportement: les clients qui utilisent la réponse WS par message comme protocole de synchronisation de tick ne reçoivent au maximum qu'une réponse par milliseconde et par session en cas de trafic soutenu. Les instantanés complets effectués lors d'un changement de configuration ne sont pas affectés.

Dépréciations

Aucune dans la version 3.5.1. Le commutateur principal « preview » sert à préparer la transition vers le pipeline « silent-to-warn » prévu pour la version 3.6 ; la première phase de dépréciation est prévue pour la version 3.5.2.