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_attachedet 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_positionIl 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_withIl s'agit d'une correspondance biunivoque, appareil par appareil.POSTélimine les conflits des deux côtés ;DELETEsupprime 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 pourcursor_position,cursor_velocity,angular_positionetangular_velocity; sans incidence sur les sessions en cours. set_extension_datapour 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_profileet 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.presetmitdefaultsouarm_frontréinitialise désormais le support de l'appareil aux paramètres d'usine (auparavant, il s'agissait d'une opération sans effet).basisest 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_statene fournit plus d'instantané avec un élément manquantconfig-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_statefournit 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_idne bloquent plus la boucle requête-réponse. L'auteur de la requête reçoit son propre instantané ainsi qu'un événementsession-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é
#1234et1234comme 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_gatehinweg :"{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 etsafeties/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/*). Alteserialization/*- 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.