Passer directement au contenu principal

Référence de configuration

Dans ce document,/settings/Tous les paramètres renvoyés par le point de terminaison, dans leurs respectifsClé,Type(type_hint(à partir de), ainsi queContraintes(metadata.constraint.range, ainsi que, le cas échéant,locked(à partir de) sont répertoriés dans la liste.

lockedLes paramètres sont les suivants :En lecture seule lors de l'exécution. À partir du fichier de configuration, ouHub HaplyVous pouvez modifier ces paramètres depuis la page des paramètres, mais pour que les modifications prennent effet,Un redémarrage complet du service est nécessaire. Ces éléments sont présentés dans le tableau ci-dessous :démarrerC'est ce qui est indiqué.

Structure​

Le fichier de configuration permettant de remplacer les paramètres au démarrage du service se trouve à l'emplacement suivant :

plateformeLieu
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 établit une correspondance entre les clés de configuration et les valeurs de remplacement.Objet JSON « plat ». La clé est :/settings/ Route HTTP (Référence API(voir) doit être une clé de configuration valide. Pour les clés non spécifiées, les valeurs par défaut du service sont utilisées.

Par exemple, les paramètres de remplacement de la configuration réseau sont les suivants :

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

Affichage et filtrage​

/settingsListe des points de terminaison (GET /settings,GET /settings/) est, par défaut,Notions de baseRenvoie uniquement les paramètres. Pour inclure des paramètres avancés,?advanced=truePour inclure des alias déconseillés,?deprecated=trueVeuillez le spécifier. Le paramètre « masqué » est réservé à un usage interne, etPOST /settings/misc/hidden_settingspar l'intermédiaire demisc/hidden_settingsS'affiche uniquement lorsque ce paramètre est défini (il n'existe pas de paramètre de requête équivalent). Les indicateurs de filtrage sont combinés selon une condition « ET ».advancedethiddenPour les clés portant les deux indicateurs, il est nécessaire d'ouvrir les deux portes. Les opérations POST et DELETE concernant des clés connues ne sont pas concernées par ces portes.

Si la clé valide est indiquée correctement, la lecture d'une seule clé (GET /settings/<key>) contourne les filtres « advanced/deprecated ». Cela s'avère pratique pour les clients disposant de connaissances préalables. Les clés masquées restent soumises à ces filtres.

Trois commutateurs d'exécution permettent de définir les valeurs par défaut des portes. Ces valeurs sont conservées pendant toute la durée de fonctionnement du service :

CléTypeContraintesExplication
misc/advanced_settingsbool—GET /settingsdans la liste desadvancedInclure les paramètres marqués d'un indicateur (la valeur par défaut estfalse). Pour toutes les requêtes,?advanced=trueCela revient à le remettre.
misc/deprecated_settingsbool—GET /settingsdans la liste desdeprecatedInclure les paramètres marqués d'un indicateur (la valeur par défaut estfalse). Pour toutes les requêtes,?deprecated=trueCela revient à le remettre.

Mappage des types​

Les indications de type renvoyées par l'API sont compatibles avec le format JSON suivant :

  • STRING → string
  • BOOL → bool
  • INT → int
  • FLOAT → float
  • ARR_STRING → string[]
  • VEC3 → vec3({x, y, z}(objet possédant)
  • GENERIC → json(valeur structurée au choix)

communication/…​

Il s'agit des ports réseau et des adresses de liaison des serveurs HTTP, WebSocket et de flux d'événements. La plupart des entréesnesont activesqu'au démarrage.

CléTypeContraintesExplication
communication/serial/enabledbool—Active ou désactive la communication par périphérique série.
communication/bind_addressstringdémarrerAdresse IP à laquelle le serveur HTTP et le serveur WebSocket se connectent.
communication/bind_all_interfacesbooldémarrerAu lieu de « localhost », indiquez le serveur0.0.0.0Se lie à.
communication/http/portintdémarrerPort de l'API REST HTTP (valeur par défaut) 10000).
communication/websocket/portintdémarrerPort WebSocket principal v3.1 (valeur par défaut) 10001).
communication/websocket/legacy_portintdémarrerPort WebSocket v3.0 de Legacy (valeur par défaut) 10000).
communication/events/portintdémarrerPort WebSocket du flux d'événements (valeur par défaut) 10020).

devices/…​

devices/detection/…​

Il s'agit de la politique d'analyse des ports série. Toutes les entrées relèvent des paramètres avancés.

CléTypeContraintesExplication
devices/detection/scan_period_msintPlage : 100–10 000 ; au démarrageIntervalle de balayage du port série (ms).
devices/detection/handshake_timeout_sintPlage : 1–15Délai d'expiration (en secondes) de la procédure d'établissement de la connexion pour chaque port.
devices/detection/max_retriesintIntervalle : 1–10Nombre maximal de tentatives de handshake par port.
devices/detection/failure_log_delay_sintPlage : 1 à 60Délai (en secondes) avant qu'un échec de détection ne soit à nouveau consigné dans le journal.
devices/detection/block_looping_portsbool—Si un port en boucle est détecté, l'état « prêt » de l'appareil est bloqué.
devices/detection/excluded_portsjson—Chemin d'accès du port série à ignorer lors de la détection.
devices/detection/additional_portsstring[]—Chemin d'accès d'un port série supplémentaire à analyser sans condition.
devices/detection/allowed_vendor_id_filterstring[]—ID de fournisseur USB autorisés lors de l'énumération des ports.
devices/detection/port_name_substring_filterstring[]—Sous-chaîne correspondant au nom de port spécifique à la plateforme.
devices/detection/wireless_verse_grip_description_filterstring[]—Chaîne de caractères extraite de la description du port, destinée à la détection sans fil du VerseGrip.
devices/detection/inverse3x_description_filterstring[]—Sous-chaîne de la description du port destinée à la détection d'Inverse3x.
devices/detection/extra_ports (Non recommandé)string[]—Au lieu de cela devices/detection/additional_ports Veuillez l'utiliser. Les opérations de lecture et d'écriture sont transmises de manière transparente à la clé principale.

devices/*inverse/…​

Il s'agit d'une valeur par défaut globale qui s'applique à tous les appareils de la gamme Inverse3. Les paramètres définis au niveau de la session prévalent sur cette valeur.

Changement de nom dans la section 3.5.1

Dans la version 3.5.0, le globe est devices/inverse*/… C'était le cas. Actuellement, le premier * mais inverse Il est placé avant. Les fichiers de configuration utilisant l'ancienne valeur littérale échoueront lors de la liaison dans la version 3.5.1 ; veuillez donc les mettre à jour. La clé elle-même ne subit aucun autre changement.

CléTypeContraintesExplication
devices/*inverse/filters/force_scale/gainfloatPlage : 0,0–2,0Multiplicateur global de puissance d'entrée applicable à tous les appareils.
devices/*inverse/filters/force_gate/gainfloatIntervalle : 0,0–1,0Gain par défaut du Force Gate pour une nouvelle session.
devices/*inverse/control_timeout_msintPlage : 50–10 000Délai d'expiration (en ms) avant la libération du verrouillage de contrôle du périphérique.
devices/*inverse/query_orientation_on_idlebool—Lorsque l'appareil est en veille, le micrologiciel interroge l'appareil pour connaître son orientation.
devices/*inverse/safeties/expose_in_snapshotbool—Les indicateurs de sécurité par périphérique GET /devices/{id} sera inclus dans l'instantané.

devices/presets​

CléTypeContraintesExplication
devices/presetsjson—Préréglages de configuration par défaut pour chaque type de périphérique (conversion de montage, base, etc.). Les périphériques concernés sont : inverse_arm_front_*,inverse_led_front_*,minverse_*,verse_grip_default,wireless_verse_grip_default,custom_verse_grip_default).

devices/wireless_verse_grip/…​

CléTypeContraintesExplication
devices/wireless_verse_grip/battery/low_thresholdint—Lorsque le niveau de charge de la batterie (en %) passe en dessous de cette valeur, un avertissement de batterie faible s'affiche.
devices/wireless_verse_grip/battery/critical_thresholdint—Si le niveau de charge de la batterie (en %) passe en dessous de cette valeur, une alerte de danger liée à la batterie se déclenche.
devices/wireless_verse_grip/battery/reset_marginint—Marge d'hystérésis jusqu'à la désactivation de l'alerte de batterie.
devices/wireless_verse_grip/filters/orientation_filterjsonAu démarrageRéglage du filtre One Euro en fonction de l'orientation du VerseGrip sans fil.

features/…​

features/calibration/…​

CléTypeContraintesExplication
features/calibration/hall_thresholdintPlage : 1 à 32Niveau du capteur à trou permettant de détecter que le stylet est installé pendant l'étalonnage.

features/grip_hook/…​

Il s'agit du fonctionnement automatique du « Grip Hook ». Il verrouille le curseur tant que la poignée est maintenue à la verticale.

CléTypeContraintesExplication
features/grip_hook/enabledbool—Active le verrouillage automatique par le crochet de la poignée lorsque celle-ci est maintenue à la verticale.
features/grip_hook/use_hallbool—Pour détecter la prise en main, on utilise le seuil du capteur à trou plutôt que l'orientation.
features/grip_hook/hallintPlage : 1 à 32Seuil de la valeur du capteur de trou déclenchant le verrouillage de la poignée.
features/grip_hook/hold_durationintPlage : 10–1 000Durée (en ms) pendant laquelle le verrou est maintenu après le déclenchement.

features/navigation/bubble/…​

Il s'agit des valeurs par défaut du module de navigation « Bubble ».bubble Lorsqu'elle est activée pour la première fois, elle est transmise à la session. Pour connaître la signification de chaque champ lors de l'exécution,Module de navigation Veuillez consulter la page.

CléTypeContraintesExplication
features/navigation/bubble/centervec3—Valeur par défaut de la position centrale de la bulle.
features/navigation/bubble/center_enabledbool—Lorsque la fonctionnalité « Bubble » a été activée pour la première fois, les paramètres suivants ont été définis : center sera appliqué.
features/navigation/bubble/rotation_enabledbool—Applique 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≥ 0auto_follow Vitesse de dérive en mode central (m/s).
features/navigation/bubble/max_velocityfloat—Vitesse maximale de navigation (en m/s) dans la zone de vitesse.
features/navigation/bubble/velocity_zone_widthfloat—Largeur (en mètres) de la zone de vitesse située à l'extérieur de la surface de la bulle.
features/navigation/bubble/reset_velocity_on_entrybool—Lorsque le curseur entre dans la bulle, la vitesse est remise à zéro.
features/navigation/bubble/spring_innerfloat—Coefficient de ressort au centre de la bulle (N/m).
features/navigation/bubble/spring_surfacefloat—Coefficient de ressort à la surface de la bulle (N/m).
features/navigation/bubble/spring_outerfloat—Coefficient de ressort au niveau de la limite extérieure (N/m).
features/navigation/bubble/damping_innerfloat—Coefficient d'atténuation au centre de la bulle (Ns/m).
features/navigation/bubble/damping_surfacefloat—Coefficient d'atténuation à la surface d'une bulle (Ns/m).
features/navigation/bubble/damping_outerfloat—Coefficient d'atténuation à la limite extérieure (Ns/m).
features/navigation/bubble/wall_stiffnessfloat—Rigidité (N/m) de la paroi rigide située à la limite extérieure.
features/navigation/bubble/bump_widthfloat—Largeur (en m) des reliefs tactiles à la surface de la bulle.
features/navigation/bubble/bump_stiffnessfloat—Rigidité (N/m) des protubérances tactiles à la surface de la bulle.
features/navigation/bubble/stop_at_collisionbool—Tant que la collision est active, cela empêche le centre de la bulle de dériver dans la direction de la collision.
features/navigation/bubble/collision_thresholdfloat> 0Intensité de la force extérieure permettant de détecter une collision (N).
features/navigation/bubble/collision_inflate_scalefloat≥ 1Tant que le conflit est actif,velocity_zone_width Multiplicateur applicable à.
features/navigation/bubble/collision_exit_ratiofloatIntervalle (0, 1]Rapport d'hystérésis.|ext_force| mais collision_threshold × this Si la valeur est inférieure à celle-ci, la collision est désactivée.1.0 Dans ce cas, l'hystérésis est désactivée.
features/navigation/bubble/avatar_boundary_enabledbool—La position de l'avatar dans le monde, telle que définie dans les paramètres avatar_boundary Limiter à la zone délimitée par la forme SDF.

features/safe_trajectory/…​

Il s'agit d'un limiteur de vitesse pour les mouvements de l'effecteur terminal.

CléTypeContraintesExplication
features/safe_trajectory/enabledbool—Activer le limiteur de vitesse de la trajectoire de sécurité.
features/safe_trajectory/max_velfloatintervalle 0,01–2,0Vitesse maximale admissible de l'effecteur terminal (m/s).

features/screensaver/…​

Il s'agit de l'animation d'inactivité qui s'affiche sur les appareils «Inverse3 » lorsqu'aucune session n'est en cours.

CléTypeContraintesExplication
features/screensaver/enabledbool—Inverse3 Active l'animation de l'économiseur d'écran lorsque l'appareil est inactif.
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 avec l'élément.

features/sdf/…​

Module d'effets tactiles pour le champ de distance signé (SDF) (SDF HFX).

CléTypeContraintesExplication
features/sdf/enabledbool—Active ou désactive le module d'effets tactiles SDF.
features/sdf/state_outputbool—Par défaut, l'état du SDF est inclus dans la charge utile de sortie de l'appareil.
features/sdf/max_countintplage de 0 à 128Nombre maximal d'effets SDF valides (0 = (sans limite).
features/sdf/events/createdbool—Émet un événement lorsqu'un nouvel effet SDF est créé.
features/sdf/events/deletedbool—Émet un événement lorsque l'effet SDF est supprimé.
features/sdf/events/updatedbool—Émet un événement lorsque l'effet SDF est mis à jour.
features/sdf/probe_on_zero_force/enabledbool—Lorsque la force d'impression est pratiquement nulle, le champ SDF est automatiquement détecté.
features/sdf/probe_on_zero_force/delayfloatplage de 0,001 à 60,0Délai (en secondes) entre le moment où la force tombe à zéro et le début de la sonde automatique.

features/verse_grip_pairing/…​

Inverse3 Il permet de suivre les opérations de montage et de démontage du Verse Grip (avec ou sans fil). Il sert de base à l'interface utilisateur de couplage du hubHaply .

CléTypeContraintesExplication
features/verse_grip_pairing/enabledbool—Active le suivi du couplage et de la pose/du retrait.
features/verse_grip_pairing/hall_threshold_vgintplage de 1 à 32Niveau de trou pour lequel la présence d'un VerseGrip filaire est détectée.
features/verse_grip_pairing/hall_threshold_wvgintplage de 1 à 32Niveau de détection indiquant que le VerseGrip sans fil est installé.
features/verse_grip_pairing/detach_debounce_msintplage de 0 à 1 000Temps de rebond (ms) avant la confirmation du retrait.
features/verse_grip_pairing/heartbeat_msintplage de 100 à 10 000Intervalle entre les renouvelles notifications obligatoires (ms).
features/verse_grip_pairing/force_attachedbool—Contourner le capteur de trou afin de vérifier en permanence l'état de montage true l'impose (solution de contournement en cas de panne matérielle).

session/serialization/…​

Format de sortie « Transform » — Affecte les charges utiles WebSocket et HTTP JSON. Ces clés ont été modifiées à la section 3.5.1 afin de refléter la portée par session. serialization/* à partir de session/serialization/* a été déplacé. L'ancien chemin d'accès continuera d'être résolu via un alias obsolète.

CléTypeContraintesExplication
session/serialization/explicit_fieldsbool—Dans la sortie sérialisée, inclure un champ « transform » dont la valeur par défaut est égale à l'identité (par exemple : position: {0,0,0},rotation: {w:1,…}). Cela s'avère utile lorsque le client exige que tous les champs soient explicitement présents. Par défaut : false。
session/serialization/force_complete_transformsbool—Toutes les sorties « transform », y compris les périphériques à orientation unique (Verse Grip, Wireless Verse Grip), position,rotation,et scale est toujours émis. Ces appareils sont généralement rotation affiche uniquement cela.session/serialization/explicit_fields Il s'agit d'une version compatible en amont qui inclut toutes ses fonctionnalités. Par défaut : false。
serialization/explicit_fields (Non recommandé)bool—Au lieu de cela session/serialization/explicit_fields Veuillez l'utiliser. Les opérations de lecture et d'écriture sont transmises de manière transparente à la clé principale.
serialization/force_complete_transforms (Non recommandé)bool—Au lieu de cela session/serialization/force_complete_transforms Veuillez l'utiliser. Les opérations de lecture et d'écriture sont transmises de manière transparente à la clé principale.

session/…​

Planificateur de sessions.

CléTypeContraintesExplication
session/min_simulation_rate_hzintPlage : 20–500Valeur minimale admissible (en Hz) de la fréquence de simulation de l'appareil avant le déclenchement d'un avertissement.

rate/…​

Régulation du débit des services. Introduite à la section 3.5.1 — les quatre éléments suivants : rate/websocket/* La clé, qui était auparavant session/commands/* Il se trouvait en dessous. L'ancien chemin d'accès continuera d'être résolu via un alias obsolète.

CléTypeContraintesExplication
rate/websocket/zoh_window_msint—Fenêtre de maintien d'ordre zéro — Supprime les sondes reçues pendant la durée de cette fenêtre (ms).
rate/websocket/drop_warning_thresholdint—Nombre de commandes déposées dans la fenêtre avant l'affichage d'un avertissement.
rate/websocket/drop_warning_window_msint—Taille de la fenêtre glissante (en ms) permettant de compter les commandes perdues.
rate/websocket/tick_on_empty_batchboolAvancéMême si l'ensemble du lot WebSocket est perdu,main_loop Planifier les tics.
session/commands/zoh_window_ms (Non recommandé)int—Au lieu de cela rate/websocket/zoh_window_ms Veuillez l'utiliser. Les opérations de lecture et d'écriture sont transmises de manière transparente.
session/commands/drop_warning_threshold (Non recommandé)int—Au lieu de cela rate/websocket/drop_warning_threshold Veuillez l'utiliser. Les opérations de lecture et d'écriture sont transmises de manière transparente.
session/commands/drop_warning_window_ms (Non recommandé)int—Au lieu de cela rate/websocket/drop_warning_window_ms Veuillez l'utiliser. Les opérations de lecture et d'écriture sont transmises de manière transparente.
session/commands/tick_on_empty_batch (Non recommandé)bool—Au lieu de cela rate/websocket/tick_on_empty_batch Veuillez l'utiliser. Les opérations de lecture et d'écriture sont transmises de manière transparente.

Paramètres réservés à un usage interne​

Dans la section 3.5.1, plusieurs familles de paramètres sont hidden est proposé et réservé à un usage interne — rate/dispatch/*(limite maximale du taux de distribution de l'AIMD et seuil de contre-pression),session/freeform/*(empreinte comportementale), ainsi que session/serialization/preview/*(Expériences de sérialisation en version préliminaire, telles que la sortie des quaternions d'Euler ou le routage Wireless VerseGrip). Celles-ci sont destinées au débogage. misc/hidden_settings Elles sont accessibles pour le moment, mais pourraient être reclassées, renommées ou supprimées dans une version mineure ultérieure. Ne basez pas le comportement de votre client sur ces éléments.