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_attachedet 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_force↔set_cursor_positionest 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_withIl s'agit d'une correspondance biunivoque par appareil.POSTélimine les conflits de part et d'autre ;DELETEefface 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 formecursor_position,cursor_velocity,angular_position,angular_velocitytoutes 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.presetavecdefaultsouarm_frontréinitialise désormais le montage du périphérique aux paramètres d'usine (auparavant, cette opération n'avait aucun effet).basisest 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_statene renvoie plus d'instantané dans lequel il manqueconfigbloc 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_staterenvoie 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_idne bloque plus la boucle requête-réponse. Le demandeur reçoit son propre instantané + unsession-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
#1234et1234comme 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
readyLe 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/*). Ancienserialization/*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.