v3.5.1
La version 3.5.1 vise à assurer la stabilité et à améliorer la qualité. Les principaux points abordés sont les suivants : appairage automatique des configurations « 1↔1 » ( Inverse3 + grip), même en l'absence de session WebSocket ouverte, GET /devices/{id} Il s'agit d'un planificateur de tâches de maintenance capable de récupérer l'état de mouvement le plus récent, d'éliminer les grincements qui se produisaient lors du passage du mode « force » au mode « position », et de s'ajuster automatiquement en cas de charge continue.
Points forts
- Appairage automatique de la configuration « 1↔1 » ( Inverse3 + poignée). Inverse3 Une fois que l'appareil et la poignée sont prêts, le SDK enregistre automatiquement le couplage. Cela permet, dans une configuration multi-appareils,
pen_attachedLa désactivation de l'étalonnage de « Minverse » n'est désormais plus acheminée par erreur. - Sans même ouvrir une session, les dernières
GET /devices/{id}Possibilité de prendre des instantanés. Avec les versions v7.5 et ultérieures du micrologiciel, les modèles « Inverse3 », « Inverse3x » et « Minverse » effectuent désormais une interrogation de l'état de mouvement à une fréquence de 20 Hz, quel que soit le fonctionnement du WebSocket. Avec les versions antérieures à la v7.5, l'interrogation était ignorée et un seul message d'avertissement était généré. - Le grincement a disparu après avoir basculé entre les modes « force » et « position ».
set_cursor_force↔set_cursor_positionLa commutation est désormais exclusive par slot, et entre deux ticks, seule la valeur la plus récente est conservée pour chaque périphérique. La mesure corrective visant à éviter les intervalles d'inactivité de 200 ms décrite à l'adresseHARP n'est plus nécessaire. - Planificateur de ticks auto-adaptatif. La boucle principale ajuste la fréquence d'émission en fonction de la charge, ce qui évite que la file d'attente des commandes ne grossisse indéfiniment à cause de ticks dont le traitement est lent.
- Réponse de streaming à une entrée et une sortie en condition de charge. WS : Le nombre de réponses de streaming par message est limité à 1/ms par session. En cas de rejet dû à cette limite, le tampon précédent est lu, ce qui fait que la boucle de simulation
recv()Il ne sera jamais bloqué.
Améliorations internes
Appareil
- Registre d'appariement « Inverse3 » ↔ « VerseGrip » par appareil.
GET|POST|DELETE /devices/{sel}/paired_withIl s'agit d'une correspondance biunivoque entre chaque périphérique et chaque élément.POSTsupprime les appariements existants qui entrent en conflit, quel que soit le côté concerné.DELETEEfface l'entrée sélectionnée. Le sélecteur doit correspondre à un seul ID. - Interrogation de l'état de mouvement à 20 Hz avec le micrologiciel v7.5+.
GET /devices/{id}met à jour toutes les 50 mscursor_position,cursor_velocity,angular_position,angular_velocity. Elle fonctionne de manière transparente pour les sessions actives. - VerseGrip sans fil
set_extension_dataPasser en mode de régulation de vitesse. Nous traitons, pour chaque service, le pipeline qui supprime les anciennes données et effectue des envois répétés en période d'inactivité. La liaison radio n'est ainsi plus saturée par un nombre excessif d'envois, et il n'y a plus non plus de retard dans les envois qui entraînerait la persistance de valeurs obsolètes.
Session
- Nous avons ajouté un nouveau chemin rapide pour la réception WS destiné aux lots dédiés au contrôle (force/position). Ce chemin permet d'ignorer le pipeline tenant compte de la commande « configure ».
configure,set_profileLes commandes personnalisées continuent de passer par le processus de correction des conditions de course.
Observabilité
- La fréquence des journaux de détection est désormais contrôlée au niveau de chaque port et en tenant compte de la continuité. Chaque port inscrit sur la liste noire est contrôlé de manière indépendante. Les messages suivants s'affichent de manière répétée :
"...blacklisted: skipping"Cette ligne indique le nombre de ticks pour lesquels la sortie a été inhibée pendant la durée de l'événement.(×N)est désormais ajouté. - Lorsqu'un périphérique non compatible WVG est testé, la détection du VerseGrip sans fil ne provoque plus de débordement du journal.
Correction
POST /device.config.presetetdefaultsou bienarm_frontsi vous spécifiezIl est désormais possible de réinitialiser le montage de l'appareil aux paramètres d'usine (auparavant, aucune action n'était effectuée).basisComme ces paramètres sont conservés, la base définie dans l'application reste inchangée même après la modification des préréglages de montage.force_render_full_statemaisconfigIl ne renvoie plus d'instantanés comportant des blocs manquants.. Si le message « configure » correspondant est reçu au sein du même message WS, son traitement s'achève de manière synchrone avant la création de l'instantané.- D'une session à l'autre
force_render_full_stateCependant, il renvoie désormais un instantané complet de la cible. A et B reçoivent désormais tous deux la charge utile complète (auparavant, seul A recevait le flux). - Inconnu
target_session_idLes commandes qui s'étendent sur plusieurs sessions ne provoquent désormais plus de blocage de la boucle requête/réponse. La source de la requête fournit son propre instantané et,session-command-droppedÉvénement (cross-session-unknown-target) sera reçu. - Minverse Le déverrouillage de la calibration multi-appareils n'est plus acheminé par erreur. La calibration de Minverse A ne déverrouille plus Minverse B. La diffusion de l'en-tête « inkwell-success » a également été corrigée.
- Sélecteur de périphériques HTTP est utilisé comme identifiant de périphérique
#1234et1234Nous acceptons les deux. Classe de sélection (inverse3,verse_grip) fonctionne avec les index. Les messages 404 conservent désormais l'expression de sélection d'origine telle quelle. - VerseGrip sans fil
readyLes indicateurs sont désormais définis après la phase initiale d'échange d'informations entre les périphériques.。Auparavant, sur certains chemins de reconnexion, il était possible que l'indicateur change avant que l'appareil ne se soit entièrement signalé. - Les modifications apportées à la configuration basée sur « keyed-rate-gate » lors de l'exécution sont désormais prises en compte dès la prochaine consultation(auparavant, elles étaient figées dès le premier appel à « emplace » et ne s'appliquaient qu'à la nouvelle session).
Risque de modification disruptive
basis,preset,mount,transform,force_gateAu total Nous avons harmonisé les messages d'erreur 404 HTTP:"{type} device #{id} not found"を"no device matches selector '{expr}'"J'ai effectué cette modification. J'ai également modifié la page 404 de la session de la même manière.- Gain d'échelle de force, gain de porte de force, délai d'expiration de la commande,
safeties/expose_in_snapshotParamètres relatifs à globdevices/inverse*/...à partir dedevices/*inverse/...a été modifié enLes fichiers de configuration de la version 3.5.0 qui utilisent d'anciens littéraux ne parviennent pas à s'initialiser. - Paramètres : paramètres globaux relatifs à la sérialisation
session/serialization/*a déménagé(explicit_fields,force_complete_transforms,preview/*). L'ancien passserialization/*... continuera d'être résolu via un alias déconseillé, mais sa suppression est prévue dans la version 4.0. - Comportement: les clients qui utilisent les réponses WS par message comme protocole de synchronisation par ticks ne recevront qu'une seule réponse par session et par milliseconde, même en cas de trafic soutenu. Les instantanés complets effectués lors des modifications de configuration ne sont pas affectés.
Non recommandé
Il n'y a pas de dépréciation dans la version 3.5.1. Le commutateur principal de prévisualisation sert de base à la dépréciation dans le cadre du processus de transition de « silencieux » à « avertissement » qui sera mis en place dans la future version 3.6. La première étape de cette dépréciation est prévue dans la version 3.5.2.