v3.5.3
La version 3.5.3 est une mise à jour corrective. Les principales modifications concernent un appairage automatique plus intelligent qui se réinitialise lorsque vous échangez l'un des deux éléments d'un ensemble appairé composé d'un « Inverse3 » et d'une poignée «Verse Grip», la suppression des fausses alertes de batterie sur les poignées «Verse Grip» filaires, des vérifications plus fiables des capacités du micrologiciel qui ne rejettent plus silencieusement les commandes non prises en charge, un voyant d'état plus stable lors de la connexion, ainsi qu'un arrêt/redémarrage du service sans plantage. Elle intègre également plusieurs corrections relatives aux appareils et à la sérialisation, ainsi que quelques notes concernant la communication au niveau des octets.
Points forts
- Le couplage automatique s'effectue à nouveau lorsque vous remplacez l'un des deux éléments d'un ensemble. Lorsqu'un appareil d'un ensemble « Inverse3 + Verse Grip » couplé automatiquement est remplacé, le SDK annule désormais l'ancien couplage et effectue un nouveau couplage avec l'appareil nouvellement connecté. Les couplages manuels ne sont pas modifiés.
- Finies les fausses alertes de batterie faible sur les Verse Grips connectés par câble. Les alertes de batterie faible ou critique ne se déclenchent désormais que pour les Verse Grips connectés sans fil ; un Verse Grip connecté par câble ne génère plus d'alerte erronée de batterie faible ou critique.
- Des vérifications fiables des capacités du micrologiciel. Lorsque l'on demande à un appareil une fonctionnalité haptique que son micrologiciel est trop ancien pour prendre en charge (amortissement uniforme ou directionnel sur les versions antérieures à la 7.5, retour à la base sur les versions antérieures à la 7.4), la réponse est désormais un code HTTP 422 accompagné d'un
device-protocol-unsupportedévénement, au lieu d'un code 200 trompeur qui rejetait la requête sans avertissement. - LED d'état plus stable lors de la connexion. La LED d'état de l'Inverse3 ne clignote plus en rouge à chaque connexion ou reconnexion : la connexion est maintenue active pendant la période de stabilisation d'environ 5 secondes qui suit la sortie du mode veille, ce qui évite que le chien de garde de connexion du micrologiciel ne se déclenche.
- Arrêt et redémarrage du service sans plantage. L'arrêt et le redémarrage du service ne provoquent plus de plantage ni de blocage ; la procédure d'arrêt et de redémarrage a été remaniée afin d'éliminer les plantages et les blocages observés lors de l'activation et de la désactivation du service.
Améliorations internes
- Mode de navigation « Clutch » (expérimental, désactivé par défaut). Un nouveau mode de navigation qui permet à l’opérateur de ralentir ou de geler complètement le mouvement exporté par le service vers la scène, tandis que le périphérique physique continue de se déplacer — un mode « précis » à demi-vitesse pour un positionnement fin et un gel complet pour le repositionnement de l’espace de travail — puis intègre le décalage accumulé dans l’espace de travail au moment du relâchement, afin que le curseur de la scène ne fasse jamais de saut. Le retour de force reste actif quel que soit le rapport de transmission. Activation facultative dans ce cycle ; le câblage par défaut reste inchangé.
- Mise à l'échelle de la force au niveau de la session (version préliminaire). Un client peut réduire la sortie haptique d'une session de simulation à zéro — par exemple, lorsqu'un menu circulaire est ouvert — et transmettre l'appareil au Hub afin que les retours haptiques du menu soient gérés via le chemin de contrôle normal, avec une restauration automatique à la fermeture de la session ou à la fermeture du menu. Cette fonctionnalité est disponible en avant-première pour ce cycle ; le câblage par défaut reste inchangé.
- Zoom de l'espace de travail autour d'un point de pivot (fonctionnalité expérimentale). Indiquez un point de pivot (par exemple, le curseur actif) lorsque vous mettez à jour la transformation de l'espace de travail : la vue s'ajuste alors autour de ce point, de sorte que la position à l'écran du point de pivot reste fixe — ce qui permet un zoom immédiat vers le curseur. Uniquement dans ` Inverse3 ` ; cette fonctionnalité est expérimentale pour ce cycle, le câblage par défaut reste donc inchangé.
- Mise à jour du moteur de sérialisation JSON (glaze) vers la version 7.8.4. Cette mise à jour concerne uniquement l'infrastructure ; elle n'entraîne aucun changement au niveau de l'API publique ni du comportement. Elle s'accompagne d'un reformatage de la transmission des valeurs flottantes sous forme de texte qui préserve les valeurs ; voir la section « Modifications susceptibles d'entraîner des incompatibilités » ci-dessous.
Corrections
- La modification ou la réinitialisation de la transformation de montage d'un périphérique ne risque plus de provoquer un plantage. Un vestige d'un chemin de code prototype décalait la limite de l'espace de travail du micrologiciel à chaque changement de montage ; il a été supprimé.
- L'orientation du corps est actualisée après un recalibrage dans la station d'accueil Inkwell. Après avoir reconnecté l'appareil à la station d'accueil Inkwell et procédé à un recalibrage, l'orientation du corps transmise en continu est désormais actualisée à partir de l'appareil, au lieu de rapporter les valeurs antérieures au calibrage jusqu'à la prochaine reconnexion. Nécessite la dernière version du micrologiciel de l'appareil ; le format de transmission reste inchangé.
- Minverse signale systématiquement un étalonnage bloqué. Minverse émet désormais un
device-calibration-failedévénement déclenché chaque fois que le micrologiciel signale un échec d'étalonnage — y compris dans le cas limite d'un effet Hall oscillant qui, auparavant, masquait silencieusement l'échec — afin que le Gestionnaire de périphériques affiche systématiquement le message « Échec de l'étalonnage ». - Les préréglages « centrés » placent l'origine au centre réel accessible de l'espace de travail.
arm_front_centeredetled_front_centered(Inverse3 / Inverse3x) ont été alignés sur l'axe de l'articulation du bras, qui n'est pas centré dans l'enveloppe d'atteinte, de sorte queset_cursor_positionà l'origine{0, 0, 0}a atterri décentré ; l'origine centrée de l'Minverse e était également décalée d'environ 10 mm vers la droite. Chaque décalage correspond désormais à la moitié de la plage accessible sur chaque axe, mesurée en excluant les zones limites définies par le ressort de sécurité du micrologiciel, plutôt qu'à la plage mécaniquement possible. (Voir la note relative au décalage de l'origine dans la section « Modifications susceptibles d'entraîner des ruptures de compatibilité ».)
Modifications susceptibles d'entraîner des problèmes de compatibilité
POST/DELETE /config/filters/dampingsur les versions de firmware antérieures à la 7.5, renvoie désormais un code HTTP 422 avec undevice-protocol-unsupportedévénement, au lieu d'un code 200 qui ignorait silencieusement l'écriture. Le micrologiciel 7.5 et les versions ultérieures ne sont pas concernés (le code 200 est toujours renvoyé). Migration : mettez à jour le micrologiciel de l'appareil vers la version 7.5 ou une version ultérieure, ou gérez le code 422.POST/DELETE /home_returnsur les versions de firmware qui ne prennent pas en charge cette commande (antérieures à la version 7.4), la réponse est désormais un code HTTP 422 au lieu d'un 200 inconditionnel. Seuls les appareils équipés d'un ancien firmware sont concernés. Solution : mettez à jour le firmware vers la version 7.4 ou une version plus récente, ou traitez le code d'erreur 422.- La commande « echoes » est activée
config/mountetstate/transform(GET/POST/PATCH/DELETE) sont désormais sérialiséstransform.rotationdans{w,x,y,z}ordre des touches au lieu de{x,y,z,w}, en fonction du streamingstateOrdre de rotation des « snapshots ». Au niveau des octets uniquement : les valeurs et les noms de clés restent identiques, seul l'ordre des clés change ; les trois composants sont toujours renvoyés. Les clients JSON utilisant des clés de nom n'ont aucune action à effectuer ; les comparaisons strictes au niveau des octets et de l'ordre devraient permettre une nouvelle validation. - Les noms de périmètre de notification de modification s'appliquent à la configuration d'un seul appareil. L'événement de notification de modification mis à jour par session indique désormais les noms au niveau de la configuration (
config.mount,config.basis,config.preset) au lieu des noms seuls (mount,basis,preset) lorsqu'une configuration propre à un périphérique est appliquée. Les clients qui filtrent ces chaînes de portée d'événement doivent mettre à jour leurs règles de correspondance. - Reformatage du texte flottant « Glaze » pour toutes les valeurs numériques des câbles, versions 3.0 et 3.1 (par exemple
1.0E-7->1E-7,16777216->1.6777216E7,-1.0E-37->-1E-37). Au niveau des octets uniquement : les analyseurs numériques lisent des valeurs identiques ; seule la forme textuelle a changé. Les utilisateurs qui vérifient l'égalité des chaînes de caractères doivent réinitialiser leurs fixtures. - Décalage de l'origine par rapport au centre. Étant donné que les préréglages centrés ciblent désormais le centre réel accessible, l'origine qu'ils définissent se déplace par rapport à la version 3.5.2 :
arm_front_centered/led_front_centeredun décalage de 25 mm le long de l'axe de profondeur de l'appareil ; le préréglage « Minverse » (centré) se décale de 10 mm en X, de 20 mm en Y et de 20 mm en Z, etminverse_zupse déplace de 20 mm sur l'axe X et de 30 mm sur l'axe Y. Il s'agit d'une surface activée par défaut, etminverse_zupest appliqué automatiquement aux sessions Freeform détectées. Rayon d'action : contenu placé à l'origine, ou géométrie positionnée par rapport à celle-ci, lorsqu'un préréglage centré est actif — il se déplace avec l'origine. Migration : revérifier la géométrie ancrée à l'origine, ou indiquer explicitement le décalage précédent sous forme de transformation de montage personnalisée. Les préréglages non centrés (device_defaults,arm_front,led_front) sont identiques et inchangées.
Dépréciations
- Héritage
valuesL'utilisation de l'argument « input » avec les commandes de contrôle de l'inverse3 est désormais signalée comme obsolète (avec avertissement). Envoi duvaluestableau versset_cursor_force,set_cursor_position,set_angular_positionouset_angular_torquesau lieu du champ « named » de la commande (vector/position/angles/torques) fonctionne toujours, mais elle déclenche désormais unecommand-deprecatedévénement (limité à un par 30 secondes par commande) au lieu d'être accepté sans message d'erreur. Migrervaluesdans le champ indiqué ; l'entrée héritée devrait être supprimée dans la version 4.0. - Sinon, aucun autre élément n'a eu d'incidence sur le réseau public au cours de ce cycle.