Zum Hauptinhalt springen
Version: 3.5.x

Übersicht über die Einstellungen

Dieses Dokument listet alle Einstellungen auf, die von der /settings/ Endpunkt mit ihrem Schlüssel, Typ (aus type_hint) und Einschränkungen (aus metadata.constraint.range + locked (sofern zutreffend).

A locked Die Einstellung ist nur-Lese-Zugriff zur Laufzeit. Dies kann über die Konfigurationsdatei oder über die Haply Hub Einstellungsseite, aber Es ist ein vollständiger Neustart des Dienstes erforderlich damit die Änderungen wirksam werden. Diese sind gekennzeichnet Start in den folgenden Tabellen.

Konfiguration

Die Konfigurationsdatei, mit der die Einstellungen beim Start des Dienstes überschrieben werden können, befindet sich hier:

PlattformStandort
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

Die Konfigurationsdatei ist eine einfaches JSON-Objekt Zuordnung von Einstellungsschlüsseln zum Überschreiben von Werten. Die Schlüssel müssen gültige Einstellungsschlüssel sein, die von der /settings/ HTTP-Route (siehe API-Referenz). Für nicht angegebene Schlüssel wird die Standardeinstellung des Dienstes verwendet.

Zum Beispiel eine Überschreibung der Netzwerkkonfiguration:

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

Sichtbarkeit und Filterung

Die /settings Endpunkte auflisten (GET /settings, GET /settings/) nur zurückgeben grundlegend Standardeinstellungen. Weiter ?advanced=true um Einstellungen einzubeziehen, die als „Erweitert“ gekennzeichnet sind, ?deprecated=true um veraltete Aliase einzubeziehen. Versteckte Einstellungen sind für den internen Gebrauch reserviert; sie werden nur angezeigt, wenn misc/hidden_settings wird über POST /settings/misc/hidden_settings (kein Äquivalent für einen Abfrageparameter). Filterflags werden miteinander verknüpft – ein Schlüssel, der mit beiden markiert ist advanced und hidden beide Gatter müssen geöffnet sein. POST und DELETE für einen bekannten Schlüssel erfolgen ohne Gatter.

Ein-Schlüssel-Lesevorgänge (GET /settings/<key>) Umgehen Sie die Überprüfung auf „fortgeschritten“/„veraltet“, wenn Sie den exakten kanonischen Schlüssel verwenden – nützlich für Clients mit Vorwissen. Versteckte Schlüssel bleiben weiterhin gesperrt.

Drei Laufzeit-Schalter initialisieren die Gates; ihre Werte bleiben für die gesamte Restlaufzeit des Dienstes erhalten:

SchlüsselTypZwängeBeschreibung
misc/advanced_settingsboolEinfügen advancedEinstellungen mit dem -Flag in GET /settings Einträge (Standard false). Entspricht dem Durchlaufen ?advanced=true bei jeder Anfrage.
misc/deprecated_settingsboolEinfügen deprecatedEinstellungen mit dem -Flag in GET /settings Einträge (Standard false). Entspricht dem Durchlaufen ?deprecated=true bei jeder Anfrage.

Typzuordnung

Die von der API zurückgegebenen Typ-Hinweise entsprechen diesen JSON-Formaten:

  • STRINGstring
  • BOOLbool
  • INTint
  • FLOATfloat
  • ARR_STRINGstring[]
  • VEC3vec3 (Objekt mit {x, y, z})
  • GENERICjson (beliebig strukturierter Wert)

communication/…

Netzwerkports und Bind-Adressen für die HTTP-, WebSocket- und Event-Stream-Server. Die meisten Einträge gelten nur beim Systemstart.

SchlüsselTypZwängeBeschreibung
communication/serial/enabledboolDie Kommunikation mit seriellen Geräten aktivieren oder deaktivieren.
communication/bind_addressstringStartDie IP-Adresse, an die sich die HTTP- und WebSocket-Server binden.
communication/bind_all_interfacesboolStartServer binden an 0.0.0.0 anstelle von localhost.
communication/http/portintStartHTTP-REST-API-Port (Standard 10000).
communication/websocket/portintStartHauptversion 3.1 WebSocket-Port (Standard 10001).
communication/websocket/legacy_portintStartLegacy v3.0 WebSocket-Port (Standard 10000).
communication/events/portintStartWebSocket-Port für den Event-Stream (Standard 10020).

devices/…

devices/detection/…

Richtlinie zum Scannen der seriellen Schnittstelle. Alle Einträge sind fortgeschritten.

SchlüsselTypZwängeBeschreibung
devices/detection/scan_period_msintBereich 100–10000; BootIntervall zwischen den Abfragen der seriellen Schnittstelle (ms).
devices/detection/handshake_timeout_sintBereich 1–15Handschlag-Zeitlimit pro Port (in Sekunden).
devices/detection/max_retriesintBereich 1–10Maximale Anzahl von Wiederholungsversuchen für den Handshake pro Port.
devices/detection/failure_log_delay_sintBereich 1–60Verzögerung vor der erneuten Protokollierung eines Erkennungsfehlers (in Sekunden).
devices/detection/block_looping_portsboolBlockgeräte werden bereitgestellt, sobald ein Loopback-Port erkannt wird.
devices/detection/excluded_portsjsonSerielle Schnittstellenpfade, die bei der Erkennung übersprungen werden sollen.
devices/detection/additional_portsstring[]Zusätzliche Pfade zu seriellen Schnittstellen, die bedingungslos gescannt werden sollen.
devices/detection/allowed_vendor_id_filterstring[]USB-Hersteller-IDs, die während der Port-Enumeration zulässig sind.
devices/detection/port_name_substring_filterstring[]Plattformspezifische Teilzeichenfolgen des Portnamens, nach denen gesucht werden soll.
devices/detection/wireless_verse_grip_description_filterstring[]Teilzeichenfolgen der Portbeschreibung für die Erkennung des drahtlosen VerseGrip.
devices/detection/inverse3x_description_filterstring[]Teilzeichenfolgen der Portbeschreibung für die Erkennung von Inverse3x.
devices/detection/extra_ports (veraltet)string[]Verwendung devices/detection/additional_ports stattdessen. Lese- und Schreibvorgänge werden transparent an den kanonischen Schlüssel weitergeleitet.

devices/*inverse/…

Globale Standardeinstellungen gelten für alle Geräte Inverse3. Übernahmen auf Sitzungsebene haben Vorrang.

In Version 3.5.1 umbenannt

Der Globus war devices/inverse*/… in 3.5.0; das führende * steht nun vor inverse. Konfigurationsdateien, die das alte Literal verwenden, können unter 3.5.1 nicht geladen werden – aktualisieren Sie sie. Die Schlüssel selbst bleiben ansonsten unverändert.

SchlüsselTypZwängeBeschreibung
devices/*inverse/filters/force_scale/gainfloatBereich 0,0–2,0Der globale Kraftverstärkungsfaktor wird auf alle Geräte angewendet.
devices/*inverse/filters/force_gate/gainfloatBereich 0,0–1,0Standard-Force-Gate-Verstärkung für neue Sitzungen.
devices/*inverse/control_timeout_msintBereich 50–10000Zeitlimit vor dem Aufheben der Gerätesperre (ms).
devices/*inverse/query_orientation_on_idleboolFrage die Ausrichtung des Gehäuses bei der Firmware ab, wenn sich das Gerät im Ruhezustand befindet.
devices/*inverse/safeties/expose_in_snapshotboolSicherheitskennzeichnungen für einzelne Geräte in GET /devices/{id} Momentaufnahmen.

devices/presets

SchlüsselTypZwängeBeschreibung
devices/presetsjsonStandard-Voreinstellungen für die Gerätekonfiguration nach Gerätetyp (Mount-Transformation, Basis usw. für inverse_arm_front_*, inverse_led_front_*, minverse_*, verse_grip_default, wireless_verse_grip_default, custom_verse_grip_default).

devices/wireless_verse_grip/…

SchlüsselTypZwängeBeschreibung
devices/wireless_verse_grip/battery/low_thresholdintAkkustand, bei dessen Unterschreitung eine Warnung wegen niedrigen Akkustands ausgelöst wird.
devices/wireless_verse_grip/battery/critical_thresholdintAkku-Ladezustand, bei dessen Unterschreitung eine Warnmeldung wegen kritischem Akkustand ausgelöst wird.
devices/wireless_verse_grip/battery/reset_marginintHysterese-Spanne vor dem Löschen einer Batteriewarnung.
devices/wireless_verse_grip/filters/orientation_filterjsonStartEine Euro-Filter-Konfiguration für die drahtlose Ausrichtung des VerseGrip.

features/…

features/calibration/…

SchlüsselTypZwängeBeschreibung
features/calibration/hall_thresholdintBereich 1–32Hall-Sensor-Pegel, bei dem der Stift während der Kalibrierung als angeschlossen gilt.

features/grip_hook/…

Automatisches Verhalten des Greifhakens – Der Cursor wird fixiert, solange der Greifhaken senkrecht gehalten wird.

SchlüsselTypZwängeBeschreibung
features/grip_hook/enabledboolDie automatische Verriegelung des Griffhakens aktivieren, wenn der Griff aufrecht gehalten wird.
features/grip_hook/use_hallboolVerwende den Hall-Sensor-Schwellenwert anstelle der Ausrichtung zur Erkennung der Griffposition.
features/grip_hook/hallintBereich 1–32Schwellenwert des Hall-Sensors zur Auslösung der Griffverriegelung.
features/grip_hook/hold_durationintBereich 10–1000Dauer, für die die Sperre nach dem Auslösen aufrechterhalten wird (ms).

features/navigation/bubble/…

Standardwerte für das Bubble-Navigationsmodul – werden bei einem bubble Das Verhalten wird zunächst aktiviert. Siehe die Navigationsmodul Seite zur Laufzeitsemantik der einzelnen Felder.

SchlüsselTypZwängeBeschreibung
features/navigation/bubble/centervec3Standardposition für den Mittelpunkt der Sprechblase.
features/navigation/bubble/center_enabledboolWenden Sie die konfigurierten center wenn das Bubble-Verhalten zum ersten Mal aktiviert wird.
features/navigation/bubble/rotation_enabledboolWende die Drehung des Arbeitsbereichs auf die Navigationsrichtung an.
features/navigation/bubble/scale_enabledboolWende den Arbeitsbereichsmaßstab auf die Navigationsgeschwindigkeit an.
features/navigation/bubble/center_drift_speedfloat≥ 0Driftgeschwindigkeit (m/s) in auto_follow Zentriermodus.
features/navigation/bubble/max_velocityfloatMaximale Fahrgeschwindigkeit in der Geschwindigkeitszone (m/s).
features/navigation/bubble/velocity_zone_widthfloatBreite der Geschwindigkeitszone außerhalb der Blasenoberfläche (m).
features/navigation/bubble/reset_velocity_on_entryboolDie Geschwindigkeit auf Null zurücksetzen, sobald der Cursor in die Blase gelangt.
features/navigation/bubble/spring_innerfloatFederkonstante in der Mitte der Blase (N/m).
features/navigation/bubble/spring_surfacefloatFederkonstante an der Blasenoberfläche (N/m).
features/navigation/bubble/spring_outerfloatFederkonstante an der Außenkante (N/m).
features/navigation/bubble/damping_innerfloatDämpfungskoeffizient im Blasenmittelpunkt (Ns/m).
features/navigation/bubble/damping_surfacefloatDämpfungskoeffizient an der Blasenoberfläche (Ns/m).
features/navigation/bubble/damping_outerfloatDämpfungskoeffizient an der Außengrenze (Ns/m).
features/navigation/bubble/wall_stiffnessfloatSteifigkeit der harten Wand an der Außengrenze (N/m).
features/navigation/bubble/bump_widthfloatBreite der taktilen Erhebung an der Blasenoberfläche (m).
features/navigation/bubble/bump_stiffnessfloatSteifigkeit der taktilen Erhebung an der Blasenoberfläche (N/m).
features/navigation/bubble/stop_at_collisionboolVerhindere, dass sich der Mittelpunkt der Blase in die Kollisionsrichtung verschiebt, wenn eine Kollision aktiv ist.
features/navigation/bubble/collision_thresholdfloat> 0Größe der äußeren Kraft (N), bei der eine Kollision erkannt wird.
features/navigation/bubble/collision_inflate_scalefloat≥ 1Angewandter Multiplikator für velocity_zone_width solange eine Kollision aktiv ist.
features/navigation/bubble/collision_exit_ratiofloatIntervall (0,1]Hystereseverhältnis – Kollision beim Verlassen, wenn |ext_force| fällt unter collision_threshold × this. 1.0 deaktiviert die Hysterese.
features/navigation/bubble/avatar_boundary_enabledboolDie Position des Avatars in der Welt an die konfigurierte Position binden avatar_boundary SDF-Format.

features/safe_trajectory/…

Geschwindigkeitsbegrenzer für die Bewegung des Endeffektors.

SchlüsselTypZwängeBeschreibung
features/safe_trajectory/enabledboolAktivieren Sie den Geschwindigkeitsbegrenzer für die sichere Fahrbahn.
features/safe_trajectory/max_velfloatBereich 0,01–2,0Maximal zulässige Geschwindigkeit des Endeffektors (m/s).

features/screensaver/…

Auf Inverse3 wird eine Leerlaufanimation abgespielt, wenn keine Sitzung läuft.

SchlüsselTypZwängeBeschreibung
features/screensaver/enabledboolAktivieren Sie die Bildschirmschoner-Animation im Ruhezustand auf Inverse3 .
features/screensaver/speedfloatBereich 0,001–0,2Geschwindigkeit der Bildschirmschoner-Animation.
features/screensaver/distracted_speedfloatBereich 0,001–0,2Animationsgeschwindigkeit, wenn sich der Benutzer in der Nähe befindet, aber nicht interagiert.

features/sdf/…

Modul für haptische Effekte im Signierten Distanzfeld (SDF HFX).

SchlüsselTypZwängeBeschreibung
features/sdf/enabledboolDas SDF-Modul für haptische Effekte aktivieren oder deaktivieren.
features/sdf/state_outputboolDen SDF-Status standardmäßig in die Nutzdaten der Geräteausgabe aufnehmen.
features/sdf/max_countintBereich 0–128Maximale Anzahl aktiver SDF-Effekte (0 = unbegrenzt).
features/sdf/events/createdboolLöst ein Ereignis aus, wenn ein neuer SDF-Effekt erstellt wird.
features/sdf/events/deletedboolLöst ein Ereignis aus, wenn ein SDF-Effekt gelöscht wird.
features/sdf/events/updatedboolLöst ein Ereignis aus, wenn ein SDF-Effekt aktualisiert wird.
features/sdf/probe_on_zero_force/enabledboolSDF-Felder automatisch abtasten, wenn die ausgeübte Kraft nahe Null ist.
features/sdf/probe_on_zero_force/delayfloatBereich 0,001–60,0Verzögerung vor dem automatischen Abtasten, nachdem die Kraft auf Null gesunken ist (s).

features/verse_grip_pairing/…

Aktiviert bzw. deaktiviert die Verfolgung zwischen einem Inverse3 einem (kabelgebundenen oder kabellosen) Verse Grip. Steuert die Benutzeroberfläche für die Kopplung Haply .

SchlüsselTypZwängeBeschreibung
features/verse_grip_pairing/enabledboolKopplung aktivieren / Verfolgung von An- und Abkoppeln aktivieren.
features/verse_grip_pairing/hall_threshold_vgintBereich 1–32Ebene, ab der ein kabelgebundener VerseGrip als angeschlossen gilt.
features/verse_grip_pairing/hall_threshold_wvgintBereich 1–32Die Etage, auf der ein Wireless VerseGrip als angebracht gilt.
features/verse_grip_pairing/detach_debounce_msintBereich 0–1000Wartezeit vor dem Ausführen eines Detach-Befehls (in ms).
features/verse_grip_pairing/heartbeat_msintBereich 100–10000Intervall zwischen erzwungenen erneuten Benachrichtigungen (ms).
features/verse_grip_pairing/force_attachedboolDen angehängten Status dauerhaft erzwingen true, wobei der Hall-Sensor umgangen wird (Workaround bei Hardwareausfall).

session/serialization/…

Formatierung der Transformationsausgabe – betrifft WebSocket- und HTTP-JSON-Nutzdaten. Diese Schlüssel wurden von serialization/* zu session/serialization/* in 3.5.1, um ihrem Geltungsbereich pro Sitzung Rechnung zu tragen. Die alten Pfade werden weiterhin über veraltete Aliase aufgelöst.

SchlüsselTypZwängeBeschreibung
session/serialization/explicit_fieldsboolTransformationsfelder, deren Wert dem Standardwert „identity“ entspricht, in die serialisierte Ausgabe aufnehmen (z. B. position: {0,0,0}, rotation: {w:1,…}). Nützlich, wenn Ihr Client verlangt, dass jedes Feld explizit vorhanden ist. Standard: false.
session/serialization/force_complete_transformsboolImmer ausgeben position, rotation, und scale in jedem Transformationsausgang, einschließlich Geräten, die nur die Ausrichtung erfassen (Verse Grip, Wireless Verse Grip), die ansonsten nur rotation. Umfasst session/serialization/explicit_fields. Standard: false.
serialization/explicit_fields (veraltet)boolVerwendung session/serialization/explicit_fields stattdessen. Lese- und Schreibvorgänge werden transparent an den kanonischen Schlüssel weitergeleitet.
serialization/force_complete_transforms (veraltet)boolVerwendung session/serialization/force_complete_transforms stattdessen. Lese- und Schreibvorgänge werden transparent an den kanonischen Schlüssel weitergeleitet.

session/…

Sitzungsplaner.

SchlüsselTypZwängeBeschreibung
session/min_simulation_rate_hzintBereich 20–500Mindestfrequenz (Hz) für die Gerätesimulation, bei der eine Warnung ausgelöst wird.

rate/…

Service-Pacing. Eingeführt in Version 3.5.1 – die vier rate/websocket/* Die folgenden Schlüssel befanden sich zuvor unter session/commands/*; die alten Pfade werden weiterhin über veraltete Aliase aufgelöst.

SchlüsselTypZwängeBeschreibung
rate/websocket/zoh_window_msintFenster der Nullordnungs-Haltezeit – Unterdrückt Signale, die innerhalb dieses Fensters (in ms) empfangen werden.
rate/websocket/drop_warning_thresholdintAnzahl der verworfenen Befehle innerhalb des Zeitfensters vor der Warnung.
rate/websocket/drop_warning_window_msintGröße des gleitenden Fensters für die Zählung nicht ausgeführter Befehle (ms).
rate/websocket/tick_on_empty_batchboolfortgeschrittenTermin vereinbaren main_loop tickte sogar dann noch, wenn ein ganzer WebSocket-Batch verloren ging.
session/commands/zoh_window_ms (veraltet)intVerwendung rate/websocket/zoh_window_ms stattdessen. Lese- und Schreibvorgänge werden transparent weitergeleitet.
session/commands/drop_warning_threshold (veraltet)intVerwendung rate/websocket/drop_warning_threshold stattdessen. Lese- und Schreibvorgänge werden transparent weitergeleitet.
session/commands/drop_warning_window_ms (veraltet)intVerwendung rate/websocket/drop_warning_window_ms stattdessen. Lese- und Schreibvorgänge werden transparent weitergeleitet.
session/commands/tick_on_empty_batch (veraltet)boolVerwendung rate/websocket/tick_on_empty_batch stattdessen. Lese- und Schreibvorgänge werden transparent weitergeleitet.

Einstellungen nur für den internen Gebrauch

Es werden mehrere Einstellungsgruppen mitgeliefert hidden in 3.5.1 und sind für den internen Gebrauch reserviert — rate/dispatch/* (AIMD-Sendegeschwindigkeitsbegrenzung und Gegendruckschwellenwerte), session/freeform/* (Verhaltens-Fingerabdruck) sowie session/serialization/preview/* (Experimente zur Vorabveröffentlichung, wie z. B. die Ausgabe von Euler-Quaternionen und das Routing mit Wireless VerseGrip). Sie sind erreichbar über misc/hidden_settings Sie dienen der Fehlerbehebung, werden aber voraussichtlich in einer späteren Nebenversion übernommen, umbenannt oder entfernt – richten Sie das Verhalten Ihrer Anwendung nicht darauf aus.