Ú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, azOnInputTimeoutá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
- A felület egy időzítővel (vagy JS eseménnyel) ismételten küldi az aktuális kar/billentyű értéket.
- A Komod
ExecuteAsync-je olvassa, és továbbadja egy kimeneten (példáulDriveCommand). - A
Deadlinelejártakor azOnInputTimeoutsemleges é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).