v3.5.1
La version 3.5.1 est une version de stabilisation et d'amélioration de la qualité. Les principaux points forts sont les suivants : appairage automatique des configurations 1↔1 Inverse3 + Grip, même en l'absence de session WebSocket ouverte, GET /devices/{id}Fournit les informations de mouvement les plus récentes, élimine le grincement (screech) qui se produisait lors du passage du mode « force » au mode « position », et intègre un planificateur de tics de service qui s'ajuste automatiquement en cas de charge continue.
Les moments forts
- Appairage automatique 1↔1 Inverse3 + installation de la poignée. Inverse3 Une fois que vous disposez d'un appareil et d'un grip, le SDK enregistre automatiquement le couplage. Dans une configuration multi-appareils,
pen_attachedLe problème lié au mauvais acheminement du déverrouillage de l'étalonnage sur Minverse a été résolu. - Les dernières actualités, même sans session ouverte
GET /devices/{id}Capture d'écran fournie. Les modèles Inverse3 , Inverse3x et Minverse équipés d'un micrologiciel v7.5 ou supérieur interrogent désormais l'état de mouvement à une fréquence de 20 Hz, quelle que soit l'activité WebSocket. Les versions antérieures à la v7.5 ignorent cette interrogation et émettent un seul message d'avertissement. - Élimination des grincements lors du changement de vitesse ou de position.
set_cursor_force↔set_cursor_positionLa commutation fonctionnant selon un mode exclusif par créneau, seule la valeur la plus récente par périphérique est conservée entre deux ticks. Le traitement de contournement de l'intervalle d'inactivité de 200 ms de HARP n'est plus nécessaire. - Planificateur de ticks à réglage automatique. La boucle principale ajuste la vitesse de distribution en fonction de la charge ; ainsi, même en cas de ticks lents, la file d'attente des commandes ne grossit pas indéfiniment.
- Réponse de streaming « 1-in-1-out » en situation de charge. Le nombre de réponses de streaming par message WS est limité à 1 par milliseconde et par session. En cas de dépassement de cette limite, le tampon précédent est lu, ce qui entraîne une boucle sim.
recv()Il n'est pas bloqué là-bas.
Améliorations internes
Appareil
- Inverse3 , spécifique à chaque appareil ↔ Registre d'appairage VerseGrip.
GET|POST|DELETE /devices/{sel}/paired_withIl s'agit d'un mappage 1:1 par appareil.POSTsupprime (evict) l'élément existant qui entre en conflit, quel qu'il soit, et,DELETEsupprime l'élément sélectionné ; le sélecteur doit impérativement correspondre à un seul identifiant. - Interrogation de l'état de mouvement à 20 Hz avec le micrologiciel v7.5 ou une version ultérieure.
GET /devices/{id}est mis à jour toutes les 50 mscursor_position,cursor_velocity,angular_position,angular_velocityElle renvoie une valeur et n'a aucune incidence sur les sessions actives. - VerseGrip sans fil
set_extension_dataContrôle de la vitesse. Le pipeline, qui élimine les anciennes valeurs et effectue des transmissions répétées en période d'inactivité, est géré par le « service tick ». Même en cas de transmissions excessives, la liaison sans fil ne sera pas saturée, et même en cas de transmissions insuffisantes, aucune ancienne valeur ne subsistera.
session
- Un nouveau chemin rapide de réception WS dédié au contrôle (force/position) a été ajouté, permettant de contourner le pipeline de reconnaissance de la configuration.
configure/set_profile/ Les commandes personnalisées passent toujours par le processus de correction des conditions de concurrence (race).
Observabilité (Observability)
- La fréquence des journaux de détection est gérée par port et tient compte de la persistance des événements. Chaque port inscrit sur la liste noire est contrôlé de manière indépendante. Les tentatives répétées
"...blacklisted: skipping"La ligne de journal indique désormais le nombre de ticks supprimés entre deux exécutions.(×N)Ceci s'affiche. - Lors de la détection d'un appareil non-WVG, la détection sans fil VerseGrip ne surcharge plus le journal.
Modifications apportées
POST /device.config.presetàdefaultsou bienarm_frontsi l'on spécifie Le montage des périphériques est désormais réinitialisé aux paramètres d'usine (une opération qui, auparavant, était ignorée sans avertissement).basisComme elle est conservée, la base définie dans l'application reste inchangée même si vous modifiez le préréglage de montage.force_render_full_statelorsqu'un message WS, tel qu'une requête de configuration correspondante, arrive, il n'est plusconfigNe renvoie pas d'instantané comportant des blocs manquants — Le chemin de configuration est traité de manière synchrone avant la création de l'instantané.- Sessions croisées
force_render_full_staterenvoie un instantané complet de l'objet. Désormais, A et B reçoivent tous deux l'intégralité de la charge utile (auparavant, seul A recevait les données en continu). - Inconnu
target_session_idLes commandes inter-sessions comportant [ce paramètre] n'interrompent plus la boucle requête-réponse. Le demandeur doit fournir son instantané etsession-command-droppedÉvénement (cross-session-unknown-target) est reçu. - Minverse Le déverrouillage de l'étalonnage multi-appareils n'est pas mal acheminé. Minverse Même si l'on effectue l'étalonnage de l'appareil A ( Minverse ), l'appareil B ( ) n'est pas déverrouillé ; cette correction a également été appliquée à la diffusion d'en-tête « inkwell-success ».
- Sélecteur de périphériques HTTPest l'identifiant de l'appareil
#1234Wa1234autorise toutes les options. Classe de sélecteur (inverse3,verse_grip) peut également être utilisé avec un index, et l'expression de sélecteur d'origine s'affiche telle quelle dans le message 404. - VerseGrip sans fil
readyLe drapeau n'est désormais activé qu'après l'échange d'informations initial entre les appareils. Auparavant, cet indicateur pouvait être modifié avant que l'appareil ne se soit entièrement identifié sur un chemin de reconnexion donné. - Les modifications apportées à la configuration du « rate gate » basé sur les clés pendant l'exécution s'appliquent dès le prochain hit(auparavant, cette configuration était figée dès le premier « emplace » et les modifications n'étaient prises en compte que dans les nouvelles sessions).
Modifications susceptibles d'entraîner une rupture de compatibilité (Breaking Changes)
- Harmonisation des chaînes de caractères HTTP 404 —
basis,preset,mount,transform,force_gateEn première mi-temps,"{type} device #{id} not found"→"no device matches selector '{expr}'"a été modifié. La session 404 a également été harmonisée de la même manière. - Paramètres glob
devices/inverse*/...→devices/*inverse/...Champ d'application : gain de l'échelle de force, gain de la porte de force, délai d'expiration de la commande,safeties/expose_in_snapshot. Les fichiers de configuration de la version 3.5.0 utilisant des littéraux existants ne parviennent pas à s'associer. - Paramètres : l'élément global de sérialisation est
session/serialization/*a été déplacé vers(explicit_fields,force_complete_transforms,preview/*). Ancienserialization/*Le chemin d'accès continue d'être interprété via un alias dont la prise en charge a été interrompue et qui sera supprimé dans la version 4.0. - Modification du comportement: dans un contexte de trafic continu, les clients qui utilisent la réponse WS par message comme protocole de synchronisation par ticks ne recevront qu'une seule réponse par session, à raison d'une fois toutes les 1 ms au maximum. Les instantanés complets effectués lors des modifications de configuration ne sont pas affectés.
Fin de prise en charge (Fonctionnalités obsolètes)
La version 3.5.1 ne comporte aucun élément dont la prise en charge sera interrompue. Le commutateur « preview master » constitue l'infrastructure de base de la transition « silencieux → avertissement » prévue pour la prochaine version 3.6, et la première interruption de prise en charge est prévue pour la version 3.5.2.