84: Restrictor dialog: add Test button driving the rotator binary#86
Merged
Conversation
Task-Url: #84 Adds a Test affordance to the Restrictor dialog that drives the `rotator` binary so users can validate restrictor wiring without the command line. - The way icons become a single-active toggle group (none allowed, re-click clears, never assumes hardware position). Toggling a way runs `rotator -c <sandbox.conf> <player> <joystick> <ways> …` for the restrictor's player mappings. - Three modes drive the affordance: **portable** (icons informational), **local** (disabled hint), **interactive + connected** (live). - Staging reuses the daemon sandbox + `ensureDaemonReady()`; restrictor edits now stale the staged config so the test re-stages fresh data. - Multi-interface restrictors with 2+ mappings can scope the test to selected rows (none selected == all). - Output goes to the status bar: stdout only when "debug hardware test" is on, red on a non-zero exit or stderr. - `Settings`: `debugDaemon` → `debugHardwareTest`, `daemonStale` → `configDirty`. - `Defaults::runCommand`: output-less overload + stderr folded into output. - Way tokens aligned to rotator's CLI vocabulary; `Ways` stays in `Defaults`, the way-token map + arg builder live in `DialogRestrictor`. - `DaemonHandler` readiness gate installed via a setter. - `RestrictorTest`/`DefaultsTest` updated; full suite green (27/27). - Verified on hardware.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task-Url: #84
Adds a Test affordance to the Restrictor dialog that drives the
rotatorbinary so users can validate restrictor wiring without the command line.
The way icons become a single-active toggle group (none allowed, re-click
clears, never assumes hardware position). Toggling a way runs
rotator -c <sandbox.conf> <player> <joystick> <ways> …for the restrictor'splayer mappings.
Three modes drive the affordance: portable (icons informational), local (disabled hint), interactive + connected (live).
Staging reuses the daemon sandbox +
ensureDaemonReady(); restrictor editsnow stale the staged config so the test re-stages fresh data.
Multi-interface restrictors with 2+ mappings can scope the test to selected
rows (none selected == all).
Output goes to the status bar: stdout only when "debug hardware test" is on,
red on a non-zero exit or stderr.
Settings:debugDaemon→debugHardwareTest,daemonStale→configDirty.Defaults::runCommand: output-less overload + stderr folded into output.Way tokens aligned to rotator's CLI vocabulary;
Waysstays inDefaults,the way-token map + arg builder live in
DialogRestrictor.DaemonHandlerreadiness gate installed via a setter.RestrictorTest/DefaultsTestupdated; full suite green (27/27).Verified on hardware.