Zum Hauptinhalt springen

Einstellungshinweise

In diesem Dokument werden aufgeführt /settings/ Alle vom Endpunkt zurückgegebenen Einstellungen sowie die jeweiligen Taste、Typ(aus type_hint) und Beschränkung(aus metadata.constraint.range, gegebenenfalls in Verbindung mit locked).

locked Zur Laufzeit auf folgende Werte setzen: Nur Lesen。Dies kann über die Konfigurationsdatei oder Haply Hub Die Änderungen können auf der Einstellungsseite vorgenommen werden, aber damit sie wirksam werden, muss Dienst vollständig neu starten。In der folgenden Tabelle sind diese Einstellungen wie folgt gekennzeichnet: Start。

Konfiguration​

Die Konfigurationsdatei, mit der die Einstellungen beim Start des Dienstes überschrieben werden, befindet sich an folgendem Speicherort:

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

Eine Konfigurationsdatei ist eine Flaches JSON-Objekt, wobei die Tastenbelegung auf die Überschreibungswerte zugeordnet wird. Die Tasten müssen /settings/ Gültige Einstellungsschlüssel, die von der HTTP-Weiterleitung zurückgegeben werden (siehe API-Referenz). Für nicht angegebene Schlüssel werden die Standardwerte des Dienstes verwendet.

Beispielsweise umfasst die Netzwerkkonfiguration Folgendes:

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

Sichtbarkeit und Filterung​

/settings Listen-Endpunkt (GET /settings、GET /settings/) Gibt standardmäßig nur Grundlagen Einstellungen. Eingabe ?advanced=true Kann Einstellungen enthalten, die als „advanced“ gekennzeichnet sind, und übergeben werden ?deprecated=true Kann veraltete Aliasnamen enthalten. Die Einstellung „Ausblenden“ ist nur für den internen Gebrauch bestimmt; nur über POST /settings/misc/hidden_settings Einstellungen misc/hidden_settings erst dann angezeigt (es gibt keine entsprechenden Suchparameter). Zwischen den Filterkriterien besteht eine logische UND-Verbindung (AND), d. h., es müssen alle Kriterien gleichzeitig erfüllt sein, advanced und hidden Für den Schlüssel müssen beide Einschränkungen gleichzeitig aufgehoben sein. POST- und DELETE-Operationen für bekannte Schlüssel unterliegen den oben genannten Einschränkungen nicht.

Einzelzeichen-Auslesen mit präzisen Spezifikationszeichen (GET /settings/<key>) werden die Einschränkungen für „advanced/deprecated“ umgangen; dies eignet sich für Clients, die über die entsprechenden Kenntnisse verfügen. Versteckte Schlüssel unterliegen weiterhin Einschränkungen.

Zur Initialisierung dieser Beschränkungen dienen drei Laufzeit-Schalter, deren Werte während des gesamten Lebenszyklus des Dienstes gültig bleiben:

TasteTypBeschränkungBeschreibung
misc/advanced_settingsbool—in GET /settings Die Liste enthält Einträge, die mit advanced Einstellungen (Standard) false). Das entspricht einer Übergabe bei jeder Anfrage ?advanced=true。
misc/deprecated_settingsbool—in GET /settings Die Liste enthält Einträge, die mit deprecated Einstellungen (Standard) false). Das entspricht einer Übergabe bei jeder Anfrage ?deprecated=true。

Typzuordnung​

Die von der API zurückgegebenen Typhinweise entsprechen der folgenden JSON-Struktur:

  • STRING → string
  • BOOL → bool
  • INT → int
  • FLOAT → float
  • ARR_STRING → string[]
  • VEC3 → vec3(einschließlich {x, y, z} (Objekt)
  • GENERIC → json(beliebiger strukturierter Wert)

communication/…​

Netzwerkports und gebundene Adressen für HTTP, WebSocket und den Event-Stream-Server. Die meisten Einträge gelten nur beim Systemstart(sie werden erst nach einem Neustart des Dienstes wirksam).

TasteTypBeschränkungBeschreibung
communication/serial/enabledbool—Aktivieren oder Deaktivieren der Kommunikation mit seriellen Geräten.
communication/bind_addressstringStartDie IP-Adressen, an die der HTTP- und der WebSocket-Server gebunden sind.
communication/bind_all_interfacesboolStartDen Server an 0.0.0.0 und nicht „localhost“.
communication/http/portintStartHTTP-REST-API-Port (Standard) 10000).
communication/websocket/portintStartv3.1 Haupt-WebSocket-Port (Standard 10001).
communication/websocket/legacy_portintStartv3.0 – WebSocket-Port der alten Version (Standard) 10000).
communication/events/portintStartEreignisstrom-WebSocket-Port (Standard 10020).

devices/…​

devices/detection/…​

Strategien für die serielle Schnittstelle. Alle Einträge gehören zu den erweiterten Einstellungen (advanced).

TasteTypBeschränkungBeschreibung
devices/detection/scan_period_msintBereich 100–10.000; tritt beim Start in KraftIntervall zwischen den seriellen Abtastungen (in Millisekunden).
devices/detection/handshake_timeout_sintBereich 1–15Zeitlimit für den Handshake pro Port (in Sekunden).
devices/detection/max_retriesintBereich 1–10Die maximale Anzahl der Handshake-Wiederholungsversuche pro Port.
devices/detection/failure_log_delay_sintBereich 1–60Verzögerung (in Sekunden) vor der erneuten Protokollierung von Fehlermeldungen.
devices/detection/block_looping_portsbool—Wenn ein zirkulierender Port erkannt wird, wird die Gerätebereitschaft verhindert.
devices/detection/excluded_portsjson—Die seriellen Pfade, die während des Tests übersprungen werden sollen.
devices/detection/additional_portsstring[]—Zusätzliche serielle Schnittstellenpfade für das bedingungslose Scannen.
devices/detection/allowed_vendor_id_filterstring[]—Zulässige USB-Hersteller-IDs während der Port-Ermittlung.
devices/detection/port_name_substring_filterstring[]—Eine plattformbezogene Teilzeichenfolge des Portnamens, die abgeglichen werden soll.
devices/detection/wireless_verse_grip_description_filterstring[]—Port-Deskriptor-Zeichenkette für die drahtlose VerseGrip-Erkennung.
devices/detection/inverse3x_description_filterstring[]—Die Port-Deskriptor-Zeichenkette für die Inverse3x-Prüfung.
devices/detection/extra_ports (veraltet)string[]—Bitte verwenden Sie stattdessen devices/detection/additional_ports。Lese- und Schreibvorgänge werden transparent an den Standardschlüssel weitergeleitet.

devices/*inverse/…​

Gilt als globaler Standardwert für alle Geräte der Serie „ Inverse3 “. Einstellungen, die pro Sitzung überschrieben werden, haben Vorrang.

In Abschnitt 3.5.1 wurde die Bezeichnung geändert

In Version 3.5.0 lautet der Platzhaltermodus: devices/inverse*/…; derzeit führend * gelegen in inverse Zuvor. Konfigurationsdateien, die alte Literale verwenden, lassen sich unter Version 3.5.1 nicht korrekt binden. Bitte aktualisieren Sie diese. An den Schlüsseln selbst hat sich nichts geändert.

TasteTypBeschränkungBeschreibung
devices/*inverse/filters/force_scale/gainfloatBereich 0,0–2,0Globale Kraftverstärkung, die auf alle Geräte angewendet wird.
devices/*inverse/filters/force_gate/gainfloatBereich 0,0–1,0Standardwert für die kraftgesteuerte Verstärkung in einer neuen Sitzung.
devices/*inverse/control_timeout_msintBereich 50–10.000Zeitlimit (in Millisekunden) vor dem Aufheben der Gerätesperre.
devices/*inverse/query_orientation_on_idlebool—Wenn das Gerät im Leerlauf ist, wird die Lage des Geräts über die Firmware abgefragt.
devices/*inverse/safeties/expose_in_snapshotbool—in GET /devices/{id} Der Snapshot enthält die Sicherheitskennungen aller Geräte.

devices/presets​

TasteTypBeschränkungBeschreibung
devices/presetsjson—Die Standardkonfigurationsvoreinstellungen für jeden Gerätetyp (einschließlich Installationsumwandlungen, „basis“ usw.) gelten für inverse_arm_front_*、inverse_led_front_*、minverse_*、verse_grip_default、wireless_verse_grip_default、custom_verse_grip_default).

devices/wireless_verse_grip/…​

TasteTypBeschränkungBeschreibung
devices/wireless_verse_grip/battery/low_thresholdint—Wenn der Akkustand unter diesen Prozentsatz fällt, wird eine Warnung wegen niedrigen Akkustands ausgelöst.
devices/wireless_verse_grip/battery/critical_thresholdint—Wenn der Akkustand unter diesen Prozentsatz fällt, wird eine Warnung wegen stark gesunkener Akkuladung ausgelöst.
devices/wireless_verse_grip/battery/reset_marginint—Die verbleibende Hysterese vor dem Erlöschen der Akkuwarnung löschen.
devices/wireless_verse_grip/filters/orientation_filterjsonGilt ab dem StartKonfiguration des „One Euro Filter“ im kabellosen VerseGrip-Modus.

features/…​

features/calibration/…​

TasteTypBeschränkungBeschreibung
features/calibration/hall_thresholdintBereich 1–32Während der Kalibrierung gilt der Stift als eingesetzt, sobald der Pegel des Hall-Sensors diesen Wert erreicht.

features/grip_hook/…​

Automatisches „Grip-Hook“-Verhalten – Der Cursor wird fixiert, solange der Griff aufrecht gehalten wird.

TasteTypBeschränkungBeschreibung
features/grip_hook/enabledbool—Die automatische Verriegelung „Grip-Hook“ wird aktiviert, wenn der Griff aufrecht steht.
features/grip_hook/use_hallbool—Zur Erkennung des Griffes werden die Schwellenwerte des Hall-Sensors (und nicht die Lage) verwendet.
features/grip_hook/hallintBereich 1–32Schwellenwert für den Wert des Hall-Sensors, der die Griffverriegelung auslöst.
features/grip_hook/hold_durationintBereich 10–1000Dauer, für die die Sperre nach der Auslösung aufrechterhalten wird (in Millisekunden).

features/navigation/bubble/…​

Die Standardwerte des Bubble-Navigationsmoduls bei der ersten Aktivierung bubble Wird zur Laufzeit an die Sitzung übergeben. Informationen zur Laufzeitsemantik der einzelnen Felder finden Sie unterNavigationsmodulSeite.

TasteTypBeschränkungErläuterung
features/navigation/bubble/centervec3—Standardposition des Blasenmittelpunkts.
features/navigation/bubble/center_enabledbool—Bei der erstmaligen Aktivierung des Bubble-Verhaltens wird die konfigurierte center。
features/navigation/bubble/rotation_enabledbool—Die Drehung des Arbeitsbereichs auf die Navigationsrichtung anwenden.
features/navigation/bubble/scale_enabledbool—Die Skalierung des Arbeitsbereichs auf die Navigationsgeschwindigkeit anwenden.
features/navigation/bubble/center_drift_speedfloat≥ 0auto_follow Driftgeschwindigkeit im Zentralmodell (m/s).
features/navigation/bubble/max_velocityfloat—Maximale Navigationsgeschwindigkeit (m/s) innerhalb der Geschwindigkeitszone.
features/navigation/bubble/velocity_zone_widthfloat—Breite des Geschwindigkeitsbereichs außerhalb der Blasenoberfläche (m).
features/navigation/bubble/reset_velocity_on_entrybool—Wenn der Cursor in die Sprechblase fährt, wird die Geschwindigkeit auf Null zurückgesetzt.
features/navigation/bubble/spring_innerfloat—Federkonstante (N/m) im Zentrum der Blase.
features/navigation/bubble/spring_surfacefloat—Federkonstante an der Oberfläche der Blase (N/m).
features/navigation/bubble/spring_outerfloat—Federkonstante (N/m) an der Außenkante.
features/navigation/bubble/damping_innerfloat—Dämpfungskoeffizient (Ns/m) im Zentrum der Blase.
features/navigation/bubble/damping_surfacefloat—Dämpfungskoeffizient an der Blasenoberfläche (Ns/m).
features/navigation/bubble/damping_outerfloat—Dämpfungskoeffizient an der Außengrenze (Ns/m).
features/navigation/bubble/wall_stiffnessfloat—Steifigkeit der starren Wand an der Außenkante (N/m).
features/navigation/bubble/bump_widthfloat—Breite der taktilen Erhebungen auf der Oberfläche der Blasen (m).
features/navigation/bubble/bump_stiffnessfloat—Steifigkeit (N/m) der taktilen Erhebungen auf der Oberfläche der Blasen.
features/navigation/bubble/stop_at_collisionbool—Bei einer Kollision wird verhindert, dass sich der Mittelpunkt der Blase in Richtung der Kollision verschiebt.
features/navigation/bubble/collision_thresholdfloat> 0Schwellenwert für die Stärke der äußeren Kraft (N) bei Erkennung eines Aufpralls.
features/navigation/bubble/collision_inflate_scalefloat≥ 1Wird während der Kollisionsaktivierung angewendet auf velocity_zone_width ein Vielfaches von.
features/navigation/bubble/collision_exit_ratiofloatWertebereich (0,1]Hystereseanteil: Wenn |ext_force| auf … sinken collision_threshold × this In den folgenden Fällen wird der Kollisionsmodus beendet.1.0 Anzeige der Hysterese deaktivieren.
features/navigation/bubble/avatar_boundary_enabledbool—Die Weltkoordinaten des Avatars auf die konfigurierten Werte beschränken avatar_boundary Innerhalb der SDF-Form.

features/safe_trajectory/…​

Geschwindigkeitsbegrenzer für die Bewegung des Endantriebs.

TasteTypBeschränkungErläuterung
features/safe_trajectory/enabledbool—Aktivieren Sie den Geschwindigkeitsbegrenzer für die Sicherheitsspur.
features/safe_trajectory/max_velfloatBereich 0,01–2,0Zulässige maximale Geschwindigkeit des Endantriebs (m/s).

features/screensaver/…​

Standby-Animation, die auf dem Gerät „ Inverse3 “ angezeigt wird, wenn keine Sitzung aktiv ist.

TasteTypBeschränkungErläuterung
features/screensaver/enabledbool—Aktivieren Sie die Standby-Bildschirmschoner-Animation auf dem Inverse3 -Gerät.
features/screensaver/speedfloatBereich 0,001–0,2Geschwindigkeit der Bildschirmschoner-Animation.
features/screensaver/distracted_speedfloatBereich 0,001–0,2Die Animationsgeschwindigkeit, wenn sich der Benutzer in der Nähe befindet, aber keine Interaktion ausführt.

features/sdf/…​

Modul für taktile Effekte mit signiertem Distanzfeld (SDF HFX).

TasteTypBeschränkungErläuterung
features/sdf/enabledbool—Das SDF-Haptik-Effektmodul aktivieren oder deaktivieren.
features/sdf/state_outputbool—Standardmäßig sind die SDF-Statusangaben in den von den Geräten ausgegebenen Daten enthalten.
features/sdf/max_countintBereich 0–128Die maximale Anzahl gleichzeitig wirksamer SDF-Effekte (0 (Angabe nicht erforderlich).
features/sdf/events/createdbool—Dieses Ereignis wird beim Erstellen eines neuen SDF-Effekts ausgelöst.
features/sdf/events/deletedbool—Ereignis, das beim Entfernen eines SDF-Effekts ausgelöst wird.
features/sdf/events/updatedbool—Löst ein Ereignis aus, wenn der SDF-Effekt aktualisiert wird.
features/sdf/probe_on_zero_force/enabledbool—Wenn die ausgeübte Kraft nahezu null ist, wird das SDF-Feld automatisch erfasst.
features/sdf/probe_on_zero_force/delayfloatBereich 0,001–60,0Verzögerung (s) zwischen dem Absinken der Kraft auf Null und der automatischen Erkennung.

features/verse_grip_pairing/…​

Verfolgung des Verbindungs-/Trennungsstatus zwischen dem „ Inverse3 “ und dem (kabelgebundenen oder kabellosen) „Verse Grip“. Unterstützung für die Kopplungsoberfläche des „ Haply Hub“.

TasteTypBeschränkungErläuterung
features/verse_grip_pairing/enabledbool—Kopplung und Verfolgung beim An- und Abkuppeln aktivieren.
features/verse_grip_pairing/hall_threshold_vgintBereich 1–32Der Hall-Pegel, bei dem der kabelgebundene VerseGrip als angeschlossen erkannt wird.
features/verse_grip_pairing/hall_threshold_wvgintBereich 1–32Hall-Pegel, bei dem der drahtlose VerseGrip als angeschlossen erkannt wird.
features/verse_grip_pairing/detach_debounce_msintBereich 0–1000Bestätigen Sie das Zeitfenster für die Bildstabilisierung vor der Trennung (ms).
features/verse_grip_pairing/heartbeat_msintBereich 100–10.000Intervall (in ms) zwischen den erzwungenen erneuten Benachrichtigungen.
features/verse_grip_pairing/force_attachedbool—Der Status „Angeschlossen“ wird dauerhaft auf true, Umgehung des Hall-Sensors (Ausweichlösung bei Hardwarefehlern).

session/serialization/…​

Ausgabeformat „Transform“ – wirkt sich auf WebSocket- und HTTP-JSON-Nutzdaten aus. Diese Schlüssel wurden in Version 3.5.1 aus serialization/* Umzug nach session/serialization/*, um den auf die Sitzung beschränkten Geltungsbereich widerzuspiegeln. Alte Pfade werden weiterhin über veraltete Aliase aufgelöst.

TasteTypBeschränkungErläuterung
session/serialization/explicit_fieldsbool—In der serialisierten Ausgabe sollen jene „transform“-Felder enthalten sein, deren Wert dem identischen Standardwert entspricht (z. B. position: {0,0,0}、rotation: {w:1,…}). Dies ist besonders nützlich, wenn der Client verlangt, dass jedes Feld explizit vorhanden sein muss. Standardwert:false。
session/serialization/force_complete_transformsbool—Jeder „transform“-Ausgang enthält stets position、rotation und scale, darunter Geräte, die ausschließlich Positionsdaten liefern (Verse Grip, Wireless Verse Grip); diese Geräte gaben ursprünglich nur rotation。Diese Einstellung ist bereits berücksichtigt. session/serialization/explicit_fields Funktion. Standardwert:false。
serialization/explicit_fields (veraltet)bool—Bitte verwenden Sie stattdessen session/serialization/explicit_fields。Lese- und Schreibvorgänge werden transparent an den Standardschlüssel weitergeleitet.
serialization/force_complete_transforms (veraltet)bool—Bitte verwenden Sie stattdessen session/serialization/force_complete_transforms。Lese- und Schreibvorgänge werden transparent an den Standardschlüssel weitergeleitet.

session/…​

Sitzungsplaner.

TasteTypBeschränkungErläuterung
session/min_simulation_rate_hzintWertebereich 20–500Die akzeptable Mindest-Emulationsrate (Hz) des Geräts, bevor eine Warnung ausgelöst wird.

rate/…​

Dienstratenkontrolle. Eingeführt ab Version 3.5.1 – die folgenden vier rate/websocket/* Die Taste befand sich zuvor an session/commands/* Unten; der alte Pfad wird weiterhin über den veralteten Alias aufgelöst.

TasteTypBeschränkungErläuterung
rate/websocket/zoh_window_msint—Fenster „Zero-Order-Hold“ (ZOH): Unterdrückt die in diesem Fenster empfangenen Erkennungsmeldungen (ms).
rate/websocket/drop_warning_thresholdint—Die Anzahl der im Fenster verworfenen Befehle, bevor eine Warnung ausgelöst wird.
rate/websocket/drop_warning_window_msint—Größe des gleitenden Fensters (in ms) zur Erfassung der Anzahl der verworfenen Befehle.
rate/websocket/tick_on_empty_batchboolFortgeschrittenSelbst wenn der gesamte WebSocket-Stapel verworfen wird, wird die Aufgabe einmal eingeplant. main_loop Häkchen。
session/commands/zoh_window_ms (veraltet)int—Bitte verwenden Sie stattdessen rate/websocket/zoh_window_ms。Lese- und Schreibvorgänge werden transparent weitergeleitet.
session/commands/drop_warning_threshold (veraltet)int—Bitte verwenden Sie stattdessen rate/websocket/drop_warning_threshold。Lese- und Schreibvorgänge werden transparent weitergeleitet.
session/commands/drop_warning_window_ms (veraltet)int—Bitte verwenden Sie stattdessen rate/websocket/drop_warning_window_ms。Lese- und Schreibvorgänge werden transparent weitergeleitet.
session/commands/tick_on_empty_batch (veraltet)bool—Bitte verwenden Sie stattdessen rate/websocket/tick_on_empty_batch。Lese- und Schreibvorgänge werden transparent weitergeleitet.

Einstellungen nur für den internen Gebrauch​

3.5.1 enthält mehrere Einstellungsgruppen, die hidden Statusmeldung, nur für den internen Gebrauch –rate/dispatch/*(AIMD-Abgaberatenobergrenze und Gegendruckschwellenwert),session/freeform/*(Verhaltensbasierte Identifizierung) sowie session/serialization/preview/*(Vorab veröffentlichte Serialisierungsversuche, z. B. Euler-Quaternionen-Ausgabe und Wireless-VerseGrip-Routing). Diese Einstellungen können über misc/hidden_settings Diese Funktionen dienen zu Debugging-Zwecken, es ist jedoch davon auszugehen, dass sie in späteren Nebenversionen zu offiziellen Einstellungen werden, umbenannt oder entfernt werden – bitte machen Sie das Verhalten Ihrer Clients nicht davon abhängig.