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 :
| Plateforme | Emplacement |
|---|---|
| Windows | C:\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é | Type | Restrictions | Description |
|---|---|---|---|
misc/advanced_settings | bool | — | 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_settings | bool | — | 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→stringBOOL→boolINT→intFLOAT→floatARR_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é | Type | Restrictions | Description |
|---|---|---|---|
communication/serial/enabled | bool | — | Activer ou désactiver la communication série entre les appareils. |
communication/bind_address | string | Démarrage | Adresse IP à laquelle les serveurs sont liés via HTTP et WebSocket. |
communication/bind_all_interfaces | bool | Démarrage | Serveur et 0.0.0.0 au lieu de se connecter à localhost. |
communication/http/port | int | Démarrage | Port de l'API HTTP REST (standard 10000). |
communication/websocket/port | int | Démarrage | Port principal de WebSocket v3.1 (norme 10001). |
communication/websocket/legacy_port | int | Démarrage | Portage de WebSocket v3.0 (norme 10000). |
communication/events/port | int | Démarrage | Port 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é | Type | Restrictions | Description |
|---|---|---|---|
devices/detection/scan_period_ms | int | Plage 100–10 000 ; au démarrage | Intervalle entre les analyses des ports série (ms). |
devices/detection/handshake_timeout_s | int | Plage 1–15 | Délai d'expiration de la poignée de main par port(s). |
devices/detection/max_retries | int | Plage 1–10 | Nombre maximal de tentatives de handshake par port. |
devices/detection/failure_log_delay_s | int | Plage 1–60 | Délai avant qu'une erreur de reconnaissance ne soit à nouveau enregistrée (s). |
devices/detection/block_looping_ports | bool | — | Bloquer la disponibilité des appareils dès qu'un port présentant un comportement en boucle est détecté. |
devices/detection/excluded_ports | json | — | Chemins d'accès aux ports série qui sont ignorés lors de la détection. |
devices/detection/additional_ports | string[] | — | Chemins d'accès supplémentaires des ports série, qui sont analysés indépendamment de toute condition. |
devices/detection/allowed_vendor_id_filter | string[] | — | Identifiants de fournisseur USB autorisés lors de l'énumération des ports. |
devices/detection/port_name_substring_filter | string[] | — | Sous-chaînes spécifiques à la plateforme issues des noms de ports, à des fins de comparaison. |
devices/detection/wireless_verse_grip_description_filter | string[] | — | Sous-chaînes de la description du port permettant de détecter le VerseGrip sans fil. |
devices/detection/inverse3x_description_filter | string[] | — | 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é.
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é | Type | Restrictions | Description |
|---|---|---|---|
devices/*inverse/filters/force_scale/gain | float | Intervalle 0,0–2,0 | Multiplicateur global de la puissance, appliqué à tous les appareils. |
devices/*inverse/filters/force_gate/gain | float | Intervalle 0,0–1,0 | Renforcement standard du « Kraft-Gate » pour les nouvelles séances. |
devices/*inverse/control_timeout_ms | int | Plage : 50–10 000 | Délai d'attente avant la levée du verrouillage de la commande de l'appareil (ms). |
devices/*inverse/query_orientation_on_idle | bool | — | 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_snapshot | bool | — | Indicateurs de sécurité par appareil dans les instantanés de GET /devices/{id} enregistrer. |
devices/presets
| Clé | Type | Restrictions | Description |
|---|---|---|---|
devices/presets | json | — | 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é | Type | Restrictions | Description |
|---|---|---|---|
devices/wireless_verse_grip/battery/low_threshold | int | — | Niveau de batterie en pourcentage en dessous duquel un avertissement de batterie faible est déclenché. |
devices/wireless_verse_grip/battery/critical_threshold | int | — | 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_margin | int | — | Distance d'hystérésis avant la réinitialisation d'un avertissement de batterie faible. |
devices/wireless_verse_grip/filters/orientation_filter | json | au départ | Configuration « One-Euro-Filter » pour le réglage du VerseGrip sans fil. |
features/…
features/calibration/…
| Clé | Type | Restrictions | Description |
|---|---|---|---|
features/calibration/hall_threshold | int | Plage 1–32 | Niveau 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é | Type | Restrictions | Description |
|---|---|---|---|
features/grip_hook/enabled | bool | — | Activer le verrouillage automatique du Grip-Hook lorsque la poignée est maintenue en position verticale. |
features/grip_hook/use_hall | bool | — | Pour la détection de la prise en main, utiliser le seuil du capteur à effet Hall plutôt que l'orientation. |
features/grip_hook/hall | int | Plage 1–32 | Seuil du capteur à effet Hall qui déclenche le blocage de l'adhérence. |
features/grip_hook/hold_duration | int | Plage 10–1 000 | Duré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é | Type | Restrictions | Description |
|---|---|---|---|
features/navigation/bubble/center | vec3 | — | Position standard du centre de la vessie. |
features/navigation/bubble/center_enabled | bool | — | Le paramétré center à appliquer lorsqu'un comportement de bulles est activé pour la première fois. |
features/navigation/bubble/rotation_enabled | bool | — | Appliquer la rotation de l'espace de travail à la direction de navigation. |
features/navigation/bubble/scale_enabled | bool | — | Appliquer l'échelle de l'espace de travail à la vitesse de navigation. |
features/navigation/bubble/center_drift_speed | float | ≥ 0 | Vitesse de dérive (m/s) en mode « centre » auto_follow. |
features/navigation/bubble/max_velocity | float | — | Vitesse de navigation maximale dans la zone de vitesse (m/s). |
features/navigation/bubble/velocity_zone_width | float | — | Largeur de la zone de vitesse en dehors de la surface de la bulle (m). |
features/navigation/bubble/reset_velocity_on_entry | bool | — | Remettre la vitesse à zéro lorsque le curseur entre dans la bulle. |
features/navigation/bubble/spring_inner | float | — | Coefficient de Feder au centre de la bulle (N/m). |
features/navigation/bubble/spring_surface | float | — | Coefficient de Feder à la surface de la bulle (N/m). |
features/navigation/bubble/spring_outer | float | — | Coefficient de Feder à la limite extérieure (N/m). |
features/navigation/bubble/damping_inner | float | — | Coefficient d'amortissement au centre de la bulle (Ns/m). |
features/navigation/bubble/damping_surface | float | — | Coefficient d'amortissement à la surface de la bulle (Ns/m). |
features/navigation/bubble/damping_outer | float | — | Coefficient d'amortissement à la limite extérieure (Ns/m). |
features/navigation/bubble/wall_stiffness | float | — | Rigidité de la paroi rigide à la limite extérieure (N/m). |
features/navigation/bubble/bump_width | float | — | Largeur de la protubérance tactile à la surface de la vessie (m). |
features/navigation/bubble/bump_stiffness | float | — | Rigidité de la protubérance tactile à la surface de la bulle (N/m). |
features/navigation/bubble/stop_at_collision | bool | — | 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_threshold | float | > 0 | Valeur de la force externe (N) à partir de laquelle une collision est détectée. |
features/navigation/bubble/collision_inflate_scale | float | ≥ 1 | Multiplicateur qui, lors d'une collision active, s'applique à velocity_zone_width est appliquée. |
features/navigation/bubble/collision_exit_ratio | float | Intervalle (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_enabled | bool | — | 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é | Type | Restrictions | Description |
|---|---|---|---|
features/safe_trajectory/enabled | bool | — | Activer le limiteur de vitesse pour garantir des trajectoires sûres. |
features/safe_trajectory/max_vel | float | Plage 0,01–2,0 | Vitesse 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é | Type | Restrictions | Description |
|---|---|---|---|
features/screensaver/enabled | bool | — | Activer l'animation de l'économiseur d'écran en mode veille sur les appareils Inverse3. |
features/screensaver/speed | float | Intervalle 0,001–0,2 | Vitesse de l'animation de l'économiseur d'écran. |
features/screensaver/distracted_speed | float | Intervalle 0,001–0,2 | Vitesse 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é | Type | Restrictions | Description |
|---|---|---|---|
features/sdf/enabled | bool | — | Activer ou désactiver le module dédié aux effets haptiques SDF. |
features/sdf/state_output | bool | — | Intégrer par défaut l'état SDF dans les données de sortie de l'appareil. |
features/sdf/max_count | int | Plage 0–128 | Nombre maximal d'effets SDF actifs (0 = illimité). |
features/sdf/events/created | bool | — | Déclencher un événement lorsqu'un nouvel effet SDF est créé. |
features/sdf/events/deleted | bool | — | Déclencher un événement lorsqu'un effet SDF est supprimé. |
features/sdf/events/updated | bool | — | Déclencher un événement lorsqu'un effet SDF est mis à jour. |
features/sdf/probe_on_zero_force/enabled | bool | — | Détecter automatiquement les champs SDF lorsque la force appliquée est proche de zéro. |
features/sdf/probe_on_zero_force/delay | float | Plage : 0,001–60,0 | Temporisation 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é | Type | Restrictions | Description |
|---|---|---|---|
features/verse_grip_pairing/enabled | bool | — | Activer le couplage et la détection de la mise en place et du retrait. |
features/verse_grip_pairing/hall_threshold_vg | int | Plage 1–32 | Niveau de Hall à partir duquel le VerseGrip (avec câble) est considéré comme installé. |
features/verse_grip_pairing/hall_threshold_wvg | int | Plage 1–32 | Niveau de Hall à partir duquel le VerseGrip (sans fil) est considéré comme installé. |
features/verse_grip_pairing/detach_debounce_ms | int | Plage 0–1 000 | Fenêtre d'alerte avant la validation d'un desserrage (ms). |
features/verse_grip_pairing/heartbeat_ms | int | Plage 100–10 000 | Intervalle entre les nouvelles notifications forcées (ms). |
features/verse_grip_pairing/force_attached | bool | — | 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é | Type | Restrictions | Description |
|---|---|---|---|
session/serialization/explicit_fields | bool | — | 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_transforms | bool | — | 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é | Type | Restrictions | Description |
|---|---|---|---|
session/min_simulation_rate_hz | int | Plage 20–500 | Fré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é | Type | Restrictions | Description |
|---|---|---|---|
rate/websocket/zoh_window_ms | int | — | Fenêtre de maintien d'ordre zéro — les échantillons entrants dans cette fenêtre sont supprimés (ms). |
rate/websocket/drop_warning_threshold | int | — | Nombre de commandes rejetées dans la fenêtre avant qu'un avertissement ne soit émis. |
rate/websocket/drop_warning_window_ms | int | — | Taille de la fenêtre glissante utilisée pour le comptage des commandes rejetées (ms). |
rate/websocket/tick_on_empty_batch | bool | avancé | 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.