Aller au contenu principal

Référence des paramètres

Ce document répertorie tous les paramètres pris en charge par le terminal /settings/ seront restituées, avec leur Clé, leur Type (extrait de type_hint) et leurs Restrictions (extrait de metadata.constraint.range + locked, le cas échéant).

Une locked- Le réglage est en lecture seule lors de l'exécution. Elle peut être configurée via le fichier de configuration ou via l'interface Hub Haply- Il est possible de modifier la page des paramètres, mais Pour que les modifications prennent effet, un redémarrage complet du service est nécessaire.. Ceux-ci sont présentés dans les tableaux suivants sous la forme de démarrer marqué.

Configuration​

Le fichier de configuration, qui permet de remplacer les paramètres lors du démarrage du service, se trouve ici :

PlateformeEmplacement
WindowsC:\ProgramData\Haply\Inverse\haply-inverse-service-config.json
macOS/Library/Application Support/Haply/Inverse/haply-inverse-service-config.json
Linux/etc/haply-inverse-service/haply-inverse-service-config.json

Le fichier de configuration est un objet JSON « plat », qui mappe les clés de configuration aux valeurs de remplacement. Les clés doivent être des clés de configuration valides, reconnues par la route HTTP /settings/ être restitué (voir Référence API). Pour chaque clé non spécifiée, la valeur par défaut du service est utilisée.

Par exemple, une modification de la configuration réseau :

{
"communication/http/port": 8400,
"communication/websocket/port": 8500,
"communication/events/port": 9000,
"communication/bind_all_interfaces": true
}

Visibilité et filtrage​

Les points finaux de la liste /settings (GET /settings, GET /settings/) ne fournissent de série que Base- Retour aux paramètres. Transmettez ?advanced=true, afin d'inclure les paramètres marqués comme « avancés », et ?deprecated=true, afin d'inclure des alias obsolètes. Les paramètres cachés sont réservés à un usage interne ; ils n'apparaissent que si misc/hidden_settings über POST /settings/misc/hidden_settings est défini (il n'existe pas de paramètre de requête pour cela). Les indicateurs de filtrage sont combinés avec l'opérateur « ET » — une clé qui correspond à la fois advanced ainsi que hidden est marqué, nécessite que les deux « Gates » soient ouverts. Les requêtes POST et DELETE sur une clé connue ne sont pas limitées par un « Gate ».

Nombre de lectures par clé (GET /settings/<key>) contournent le filtre « Advanced/Deprecated » si vous utilisez la clé canonique exacte — ce qui est utile pour les clients disposant d'informations préalables. Les clés masquées restent bloquées.

Trois temporisateurs initialisent les portes ; leurs valeurs sont conservées pendant toute la durée de vie du service :

CléTypeRestrictionsDescription
misc/advanced_settingsbool—Als advanced paramètres sélectionnés dans les GET /settings-Activer l'écoute (par défaut) false). Cela correspond au transfert de ?advanced=true pour chaque demande.
misc/deprecated_settingsbool—Als deprecated paramètres sélectionnés dans les GET /settings-Activer l'écoute (par défaut) false). Cela correspond au transfert de ?deprecated=true pour chaque demande.

Attribution de type​

Les types renvoyés par l'API sont mappés dans ces structures JSON :

  • STRING → string
  • BOOL → bool
  • INT → int
  • FLOAT → float
  • ARR_STRING → string[]
  • VEC3 → vec3 (Objet avec {x, y, z})
  • GENERIC → json (valeur structurée quelconque)

communication/…​

Ports réseau et adresses de liaison pour les serveurs HTTP, WebSocket et Event-Stream. La plupart des entrées ne sont prises en compte qu'au démarrage.

CléTypeRestrictionsDescription
communication/serial/enabledbool—Activer ou désactiver la communication série entre les appareils.
communication/bind_addressstringDémarrageAdresse IP à laquelle les serveurs sont liés via HTTP et WebSocket.
communication/bind_all_interfacesboolDémarrageServeur et 0.0.0.0 au lieu de se connecter à localhost.
communication/http/portintDémarragePort de l'API HTTP REST (standard 10000).
communication/websocket/portintDémarragePort principal de WebSocket v3.1 (norme 10001).
communication/websocket/legacy_portintDémarragePortage de WebSocket v3.0 (norme 10000).
communication/events/portintDémarragePort des flux d'événements WebSocket (norme 10020).

devices/…​

devices/detection/…​

Directives relatives à l'analyse des ports série. Toutes les entrées sont marquées comme « avancées ».

CléTypeRestrictionsDescription
devices/detection/scan_period_msintPlage 100–10 000 ; au démarrageIntervalle entre les analyses des ports série (ms).
devices/detection/handshake_timeout_sintPlage 1–15Délai d'expiration de la poignée de main par port(s).
devices/detection/max_retriesintPlage 1–10Nombre maximal de tentatives de handshake par port.
devices/detection/failure_log_delay_sintPlage 1–60Délai avant qu'une erreur de reconnaissance ne soit à nouveau enregistrée (s).
devices/detection/block_looping_portsbool—Bloquer la disponibilité des appareils dès qu'un port présentant un comportement en boucle est détecté.
devices/detection/excluded_portsjson—Chemins d'accès aux ports série qui sont ignorés lors de la détection.
devices/detection/additional_portsstring[]—Chemins d'accès supplémentaires des ports série, qui sont analysés indépendamment de toute condition.
devices/detection/allowed_vendor_id_filterstring[]—Identifiants de fournisseur USB autorisés lors de l'énumération des ports.
devices/detection/port_name_substring_filterstring[]—Sous-chaînes spécifiques à la plateforme issues des noms de ports, à des fins de comparaison.
devices/detection/wireless_verse_grip_description_filterstring[]—Sous-chaînes de la description du port permettant de détecter le VerseGrip sans fil.
devices/detection/inverse3x_description_filterstring[]—Sous-chaînes de la description du port permettant de détecter Inverse3x.
devices/detection/extra_ports (obsolète)string[]—Utilisez plutôt devices/detection/additional_ports. Les accès en lecture et en écriture sont redirigés de manière transparente vers la clé canonique.

devices/*inverse/…​

Paramètres par défaut globaux applicables à tous les appareils de la gamme « Inverse3 ». Les modifications spécifiques à une session ont la priorité.

Renommé dans la version 3.5.1

Dans la version 3.5.0, le modèle était le suivant : devices/inverse*/…; le leader * se trouve désormais face à inverse. Les fichiers de configuration utilisant l'ancienne notation ne sont plus pris en charge correctement dans la version 3.5.1 ; veuillez les mettre à jour. Les clés elles-mêmes restent par ailleurs inchangées.

CléTypeRestrictionsDescription
devices/*inverse/filters/force_scale/gainfloatIntervalle 0,0–2,0Multiplicateur global de la puissance, appliqué à tous les appareils.
devices/*inverse/filters/force_gate/gainfloatIntervalle 0,0–1,0Renforcement standard du « Kraft-Gate » pour les nouvelles séances.
devices/*inverse/control_timeout_msintPlage : 50–10 000Délai d'attente avant la levée du verrouillage de la commande de l'appareil (ms).
devices/*inverse/query_orientation_on_idlebool—Interroger le micrologiciel pour connaître l'orientation du boîtier de l'appareil lorsque celui-ci est au repos.
devices/*inverse/safeties/expose_in_snapshotbool—Indicateurs de sécurité par appareil dans les instantanés de GET /devices/{id} enregistrer.

devices/presets​

CléTypeRestrictionsDescription
devices/presetsjson—Paramètres de configuration par défaut par type d'appareil (transformation de montage, configuration de base, etc. pour inverse_arm_front_*, inverse_led_front_*, minverse_*, verse_grip_default, wireless_verse_grip_default, custom_verse_grip_default).

devices/wireless_verse_grip/…​

CléTypeRestrictionsDescription
devices/wireless_verse_grip/battery/low_thresholdint—Niveau de batterie en pourcentage en dessous duquel un avertissement de batterie faible est déclenché.
devices/wireless_verse_grip/battery/critical_thresholdint—Niveau de batterie en pourcentage, en dessous duquel une alarme est déclenchée en cas de niveau de batterie critique.
devices/wireless_verse_grip/battery/reset_marginint—Distance d'hystérésis avant la réinitialisation d'un avertissement de batterie faible.
devices/wireless_verse_grip/filters/orientation_filterjsonau départConfiguration « One-Euro-Filter » pour le réglage du VerseGrip sans fil.

features/…​

features/calibration/…​

CléTypeRestrictionsDescription
features/calibration/hall_thresholdintPlage 1–32Niveau du capteur Hall à partir duquel la broche est considérée comme connectée lors de l'étalonnage.

features/grip_hook/…​

Comportement automatique du « Grip-Hook » : bloque le curseur tant que la poignée est maintenue en position verticale.

CléTypeRestrictionsDescription
features/grip_hook/enabledbool—Activer le verrouillage automatique du Grip-Hook lorsque la poignée est maintenue en position verticale.
features/grip_hook/use_hallbool—Pour la détection de la prise en main, utiliser le seuil du capteur à effet Hall plutôt que l'orientation.
features/grip_hook/hallintPlage 1–32Seuil du capteur à effet Hall qui déclenche le blocage de l'adhérence.
features/grip_hook/hold_durationintPlage 10–1 000Durée pendant laquelle le blocage est maintenu après son déclenchement (ms).

features/navigation/bubble/…​

Valeurs par défaut du module de navigation « Bubble » — sont transmises à la session lorsqu’un bubble- lorsque le comportement est activé pour la première fois. Vous trouverez la sémantique d'exécution de chaque champ sur la page Module de navigation.

CléTypeRestrictionsDescription
features/navigation/bubble/centervec3—Position standard du centre de la vessie.
features/navigation/bubble/center_enabledbool—Le paramétré center à appliquer lorsqu'un comportement de bulles est activé pour la première fois.
features/navigation/bubble/rotation_enabledbool—Appliquer la rotation de l'espace de travail à la direction de navigation.
features/navigation/bubble/scale_enabledbool—Appliquer l'échelle de l'espace de travail à la vitesse de navigation.
features/navigation/bubble/center_drift_speedfloat≥ 0Vitesse de dérive (m/s) en mode « centre » auto_follow.
features/navigation/bubble/max_velocityfloat—Vitesse de navigation maximale dans la zone de vitesse (m/s).
features/navigation/bubble/velocity_zone_widthfloat—Largeur de la zone de vitesse en dehors de la surface de la bulle (m).
features/navigation/bubble/reset_velocity_on_entrybool—Remettre la vitesse à zéro lorsque le curseur entre dans la bulle.
features/navigation/bubble/spring_innerfloat—Coefficient de Feder au centre de la bulle (N/m).
features/navigation/bubble/spring_surfacefloat—Coefficient de Feder à la surface de la bulle (N/m).
features/navigation/bubble/spring_outerfloat—Coefficient de Feder à la limite extérieure (N/m).
features/navigation/bubble/damping_innerfloat—Coefficient d'amortissement au centre de la bulle (Ns/m).
features/navigation/bubble/damping_surfacefloat—Coefficient d'amortissement à la surface de la bulle (Ns/m).
features/navigation/bubble/damping_outerfloat—Coefficient d'amortissement à la limite extérieure (Ns/m).
features/navigation/bubble/wall_stiffnessfloat—Rigidité de la paroi rigide à la limite extérieure (N/m).
features/navigation/bubble/bump_widthfloat—Largeur de la protubérance tactile à la surface de la vessie (m).
features/navigation/bubble/bump_stiffnessfloat—Rigidité de la protubérance tactile à la surface de la bulle (N/m).
features/navigation/bubble/stop_at_collisionbool—Empêcher le centre de la bulle de dériver dans la direction de la collision lorsque celle-ci est active.
features/navigation/bubble/collision_thresholdfloat> 0Valeur de la force externe (N) à partir de laquelle une collision est détectée.
features/navigation/bubble/collision_inflate_scalefloat≥ 1Multiplicateur qui, lors d'une collision active, s'applique à velocity_zone_width est appliquée.
features/navigation/bubble/collision_exit_ratiofloatIntervalle (0,1]Rapport d'hystérésis – Sortir de la collision lorsque |ext_force| unter collision_threshold × this tombe. 1.0 désactive l'hystérésis.
features/navigation/bubble/avatar_boundary_enabledbool—Position de l'avatar dans l'espace par rapport à la forme SDF configurée avatar_boundary limiter.

features/safe_trajectory/…​

Limiteur de vitesse pour le mouvement de l'effecteur terminal.

CléTypeRestrictionsDescription
features/safe_trajectory/enabledbool—Activer le limiteur de vitesse pour garantir des trajectoires sûres.
features/safe_trajectory/max_velfloatPlage 0,01–2,0Vitesse maximale admissible de l'effecteur terminal (m/s).

features/screensaver/…​

Animation d'attente diffusée sur les appareils « Inverse3 » lorsqu'aucune session ne les contrôle.

CléTypeRestrictionsDescription
features/screensaver/enabledbool—Activer l'animation de l'économiseur d'écran en mode veille sur les appareils Inverse3.
features/screensaver/speedfloatIntervalle 0,001–0,2Vitesse de l'animation de l'économiseur d'écran.
features/screensaver/distracted_speedfloatIntervalle 0,001–0,2Vitesse d'animation lorsque l'utilisateur se trouve à proximité, mais n'interagit pas.

features/sdf/…​

Module pour les effets haptiques basé sur les champs de distance signés (SDF HFX).

CléTypeRestrictionsDescription
features/sdf/enabledbool—Activer ou désactiver le module dédié aux effets haptiques SDF.
features/sdf/state_outputbool—Intégrer par défaut l'état SDF dans les données de sortie de l'appareil.
features/sdf/max_countintPlage 0–128Nombre maximal d'effets SDF actifs (0 = illimité).
features/sdf/events/createdbool—Déclencher un événement lorsqu'un nouvel effet SDF est créé.
features/sdf/events/deletedbool—Déclencher un événement lorsqu'un effet SDF est supprimé.
features/sdf/events/updatedbool—Déclencher un événement lorsqu'un effet SDF est mis à jour.
features/sdf/probe_on_zero_force/enabledbool—Détecter automatiquement les champs SDF lorsque la force appliquée est proche de zéro.
features/sdf/probe_on_zero_force/delayfloatPlage : 0,001–60,0Temporisation avant le balayage automatique, une fois que la force est tombée à zéro (s).

features/verse_grip_pairing/…​

Enregistrement des opérations de fixation et de détachement entre l'Inverse3 et un Verse Grip (avec ou sans fil). Base pour l'interface de couplage de l'Haply Hub.

CléTypeRestrictionsDescription
features/verse_grip_pairing/enabledbool—Activer le couplage et la détection de la mise en place et du retrait.
features/verse_grip_pairing/hall_threshold_vgintPlage 1–32Niveau de Hall à partir duquel le VerseGrip (avec câble) est considéré comme installé.
features/verse_grip_pairing/hall_threshold_wvgintPlage 1–32Niveau de Hall à partir duquel le VerseGrip (sans fil) est considéré comme installé.
features/verse_grip_pairing/detach_debounce_msintPlage 0–1 000Fenêtre d'alerte avant la validation d'un desserrage (ms).
features/verse_grip_pairing/heartbeat_msintPlage 100–10 000Intervalle entre les nouvelles notifications forcées (ms).
features/verse_grip_pairing/force_attachedbool—Appliquer de manière permanente le statut « approprié » à true le configurer et contourner le capteur à effet Hall (solution de contournement en cas d'erreurs matérielles).

session/serialization/…​

Mise en forme de la sortie de la transformation — concerne les charges utiles WebSocket et HTTP JSON. Ces clés ont été ajoutées dans la version 3.5.1 par serialization/* après session/serialization/* ont été déplacés afin de refléter leur champ d'application lié à la session. Les anciens chemins d'accès continueront d'être résolus via des alias obsolètes.

CléTypeRestrictionsDescription
session/serialization/explicit_fieldsbool—Inclure dans la sortie sérialisée les champs de transformation qui correspondent à la valeur par défaut de l'identité (par exemple : position: {0,0,0}, rotation: {w:1,…}). Utile lorsque votre client exige que chaque champ soit explicitement présent. Par défaut : false.
session/serialization/force_complete_transformsbool—Immer position, rotation et scale afficher dans chaque sortie « Transform », même pour les appareils qui ne détectent que l'orientation (Verse Grip, Wireless Verse Grip) et qui, par ailleurs, ne font que rotation afficher. Ferme session/serialization/explicit_fields ein. Norme : false.
serialization/explicit_fields (obsolète)bool—Utilisez plutôt session/serialization/explicit_fields. Les accès en lecture et en écriture sont redirigés de manière transparente vers la clé canonique.
serialization/force_complete_transforms (obsolète)bool—Utilisez plutôt session/serialization/force_complete_transforms. Les accès en lecture et en écriture sont redirigés de manière transparente vers la clé canonique.

session/…​

Planificateur de sessions.

CléTypeRestrictionsDescription
session/min_simulation_rate_hzintPlage 20–500Fréquence minimale acceptable de simulation de l'appareil (Hz) avant le déclenchement d'une alerte.

rate/…​

Rythme de service. Introduit au point 3.5.1 — les quatre éléments énumérés ci-dessous rate/websocket/*- Les clés se trouvaient auparavant sous session/commands/*; les anciens chemins d'accès continueront d'être résolus via des alias obsolètes.

CléTypeRestrictionsDescription
rate/websocket/zoh_window_msint—Fenêtre de maintien d'ordre zéro — les échantillons entrants dans cette fenêtre sont supprimés (ms).
rate/websocket/drop_warning_thresholdint—Nombre de commandes rejetées dans la fenêtre avant qu'un avertissement ne soit émis.
rate/websocket/drop_warning_window_msint—Taille de la fenêtre glissante utilisée pour le comptage des commandes rejetées (ms).
rate/websocket/tick_on_empty_batchboolavancéUn main_loop- Planifier le tick, même si un lot WebSocket entier a été rejeté.
session/commands/zoh_window_ms (obsolète)int—Utilisez plutôt rate/websocket/zoh_window_ms. Les accès en lecture et en écriture sont redirigés de manière transparente.
session/commands/drop_warning_threshold (obsolète)int—Utilisez plutôt rate/websocket/drop_warning_threshold. Les accès en lecture et en écriture sont redirigés de manière transparente.
session/commands/drop_warning_window_ms (obsolète)int—Utilisez plutôt rate/websocket/drop_warning_window_ms. Les accès en lecture et en écriture sont redirigés de manière transparente.
session/commands/tick_on_empty_batch (obsolète)bool—Utilisez plutôt rate/websocket/tick_on_empty_batch. Les accès en lecture et en écriture sont redirigés de manière transparente.

Paramètres à usage interne uniquement​

Dans la section 3.5.1, plusieurs groupes de paramètres sont présentés sous la forme de hidden ont été livrés et sont réservés à un usage interne — rate/dispatch/* (Limite maximale AIMD pour la fréquence d'émission et seuils de contre-pression), session/freeform/* (empreinte comportementale) et session/serialization/preview/* (Expériences de sérialisation avant publication, telles que l'affichage des quaternions d'Euler et le routage pour Wireless VerseGrip). Elles sont destinées au débogage via misc/hidden_settings disponibles, mais il faut s'attendre à ce qu'elles soient déplacées, renommées ou supprimées dans une version mineure ultérieure — ne faites pas dépendre le comportement de votre client de ces éléments.