Aller au contenu principal

v3.5.1

La version 3.5.1 est une version de stabilisation et d'amélioration de la qualité. Ses principaux points forts sont les suivants : appariement automatique dans les configurations 1↔1 avec « Inverse3 » et « Griff », nouvelles données de mouvement via GET /devices/{id} sans session WebSocket ouverte, la suppression du grincement lors du passage du mode « puissance » au mode « position », ainsi qu’un planificateur à réglage automatique pour le « service tick » en charge continue.

Points forts​

  • Appariement automatique pour les installations 1↔1 avec « Inverse3 » et poignée. Dès qu’un Inverse3 et une poignée sont prêts, le SDK détecte automatiquement leur appairage. pen_attached et l'activation de l'étalonnage « Minverse » ne pose plus de problème dans les configurations multi-appareils.
  • Des instantanés récents sur GET /devices/{id} sans séance publique. Sur les modèles Inverse3, Inverse3x et Minverse équipés du micrologiciel v7.5 ou supérieur, l'état de mouvement est désormais interrogé à une fréquence de 20 Hz, indépendamment de l'activité du WebSocket. Les versions de micrologiciel antérieures à la v7.5 ignorent cette interrogation et affichent un message d'avertissement unique.
  • Le passage entre la position « puissance » et la position « position » ne produit plus de grincement. Le passage de set_cursor_force ↔ set_cursor_position Il s'agit d'un problème lié au slot : entre deux ticks, seule la dernière commande de chaque périphérique est conservée. La solution de contournement pour les pauses d'inactivité de 200 ms dans HARP n'est plus valable.
  • Planificateur de ticks à réglage automatique. La boucle principale adapte son débit d'envoi en fonction de la charge, de sorte qu'un tick lent n'entraîne pas une accumulation illimitée de la file d'attente des commandes.
  • Réponses en streaming sous charge selon le principe « 1 entre, 1 sort ». Les réponses de streaming par message WS sont limitées à 1/ms par session. Si cette limite est atteinte, le tampon précédent est rejoué, de sorte que les boucles de simulation ne s'interrompent jamais. recv() bloquer.

Améliorations internes​

Appareils​

  • Registre d'appariement par appareil pour Inverse3 ↔ VerseGrip. GET|POST|DELETE /devices/{sel}/paired_with Il s'agit d'une correspondance biunivoque, appareil par appareil. POST élimine les conflits des deux côtés ; DELETE supprime l'entrée sélectionnée ; le sélecteur doit correspondre à un seul identifiant.
  • Consultation de l'état de mouvement à une fréquence de 20 Hz à partir de la version 7.5 du micrologiciel. GET /devices/{id} fournit toutes les 50 ms des valeurs actualisées pour cursor_position, cursor_velocity, angular_position et angular_velocity; sans incidence sur les sessions en cours.
  • set_extension_data pour VerseGrip à commande radio avec débit régulé. Le pipeline rejette les anciennes valeurs, répète la dernière valeur en cas d'inactivité et est vidé lors du signal de service. Des envois trop fréquents ne saturent plus la liaison radio, tandis que des envois trop rares ne laissent plus de valeur obsolète.

Séances​

  • Le nouveau chemin d'accès rapide à la réception WS pour les lots de commande purs (puissance/position) contourne le pipeline sensible à la configuration ; configure / set_profile et les commandes personnalisées continuent de fonctionner via Race-Fix.

Observabilité​

  • La fréquence d'enregistrement de la détection est gérée par port et tient compte de la durée d'un message. Chaque port figurant sur la liste noire est limité de manière indépendante ; la ligne qui revient "...blacklisted: skipping" porte désormais (×N) pour les ticks qui ont été masqués entre deux déclenchements.
  • La détection sans fil de VerseGrip ne génère plus de messages en masse dans le journal lorsqu'un appareil non compatible WVG est interrogé.

Corrections de bogues​

  • POST /device.config.preset mit defaults ou arm_front réinitialise désormais le support de l'appareil aux paramètres d'usine (auparavant, il s'agissait d'une opération sans effet). basis est conservée afin que les bases configurées via l'application restent inchangées même si les paramètres par défaut du support sont modifiés.
  • force_render_full_state ne fournit plus d'instantané avec un élément manquant config-Bloc, dès que la configuration correspondante est parvenue dans le même message WS – le chemin de configuration est traité de manière synchrone avant la création de l'instantané.
  • Inter-séances force_render_full_state fournit un aperçu complet de la cible. Désormais, A et B reçoivent tous deux une charge utile complète (auparavant, A ne recevait que des données en streaming).
  • Commandes valables pour toutes les sessions avec une valeur inconnue target_session_id ne bloquent plus la boucle requête-réponse. L'auteur de la requête reçoit son propre instantané ainsi qu'un événement session-command-dropped (cross-session-unknown-target).
  • Les activations de l'étalonnage « Minverse » sur plusieurs appareils ne sont plus mal acheminées. L'étalonnage de Minverse A n'active plus Minverse B ; la même correction s'applique à la diffusion du cap lors d'un « inkwell-success ».
  • Sélecteur d'appareils HTTP accepté #1234 et 1234 comme identifiant de l'appareil ; classes de sélection (inverse3, verse_grip) fonctionnent conjointement avec l'index ; les messages 404 conservent l'expression de sélection d'origine.
  • Das ready- Signal d'alerte par radio avec VerseGrip Il n'est désormais défini qu'après l'échange d'informations initial entre l'appareil et le système ; auparavant, il pouvait basculer sur certains chemins de reconnexion avant que l'appareil ne se soit entièrement connecté.
  • Les modifications apportées aux paramètres basés sur le « keyed-rate-gate » prennent désormais effet dès le prochain accès (auparavant, elles étaient figées dès la première mise en place ; seules les nouvelles sessions reprenaient la modification).

Changements susceptibles d'entraîner des incompatibilités​

  • Harmonisation des codes d'erreur 404 HTTP über basis, preset, mount, transform, force_gate hinweg : "{type} device #{id} not found" → "no device matches selector '{expr}'". Le message d'erreur 404 pour les sessions a été adapté en conséquence.
  • Paramètres - Globaux devices/inverse*/... → devices/*inverse/... pour l'amplification de la mise à l'échelle de la puissance, l'amplification de la porte de puissance, le délai d'expiration de la commande et safeties/expose_in_snapshot. Les fichiers de configuration de la version 3.5.0 contenant l'ancienne chaîne littérale génèrent une erreur lors de la liaison.
  • Paramètres : les variables globales de sérialisation ont été déplacées vers session/serialization/* (explicit_fields, force_complete_transforms, preview/*). Alte serialization/*- Les chemins d'accès continuent d'être 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 poignée de main « Tick-Sync » reçoivent, en cas de charge continue, au maximum une réponse par milliseconde et par session. Les instantanés complets effectués lors des modifications de configuration ne sont pas affectés.

Fonctionnalités obsolètes​

Aucune dans la version 3.5.1. Le commutateur principal « Preview » constitue l'infrastructure du futur pipeline prévu pour la version 3.6, qui transformera les indications silencieuses en avertissements ; la première vague de dépréciation est prévue pour la version 3.5.2.