Útmutatók

UI bemenet (kar, gomb a böngészőben)

Ha az értéket a felhasználó adja a böngészőből (távirányító kar, gomb, billentyű), a Komod UI bemenetet deklarál:

[Input("ui", FromUi = true, Deadline = "00:00:00.500")]
public required IInput<DriveCommand> Ui { get; init; }

A felület a KomodComponentBase.InjectAsync hívással küldi az értéket a szervernek:

await InjectAsync("ui", new DriveCommand(Steering: 0.2, Throttle: 0.6));

Szabályok

  • A UI bemenet nem köthető a gráfban, a szerkesztő ki sem rajzolja.
  • Csak Operator (vagy Admin) küldhet bele.
  • Folyamatosan küldd (pl. 20 Hz), és mindig legyen Deadline-ja: ha a böngésző eltűnik, az OnInputTimeout állítja biztonságos állapotba a Komodot.
  • A szerver oldalon a UI bemenet ugyanúgy olvasható, mint bármelyik más (ReadAllAsync, Latest).

Tipikus minta

  1. A felület egy időzítővel (vagy JS eseménnyel) ismételten küldi az aktuális kar/billentyű értéket.
  2. A Komod ExecuteAsync-je olvassa, és továbbadja egy kimeneten (például DriveCommand).
  3. A Deadline lejártakor az OnInputTimeout semleges értéket (gáz 0) publikál.

A rendszeres küldés és a billentyűzet- vagy gamepad-kezelés a Komod saját JS moduljában a legegyszerűbb (Felület → JavaScript).