Skip to content

Touch UI - SP4T

The SP4T touch UI routes a common port (COM) to one of four throws (RF0..RF3) from the front-panel touchscreen. It keeps the same chrome as the SPDT screen — top bar, route summary, and status footer — and replaces the two full-height port cards with a 2x2 grid so all four throws stay reachable on the 960x376 display.

Main Screen

Touch UI SP4T screen with RF0 active

The active throw's card is green and reads ACTIVE; the other three are red and read STANDBY. The route summary at the top left reads COM TO RF0. Only one throw is closed at a time.

Each card is 456x112 px, well above the ~44 px minimum touch target, so the denser grid does not cost tap reliability.

Selecting a Throw

Touch UI SP4T screen after tapping RF2

Tapping a standby card immediately requests a route change through the local runtime API — there is no confirm step. The request goes to /api/sp4t on SP4T hardware, so all four throws route; the card turns green optimistically while the request is in flight and reverts if the runtime rejects it.

Network Settings

The Settings control opens the shared network overview, which is identical to the SPDT variant. See Network Configuration and the SPDT touch UI page for those screens.

Controls

Control Description
RF0 Routes COM to RF0.
RF1 Routes COM to RF1.
RF2 Routes COM to RF2.
RF3 Routes COM to RF3.
Settings Opens the shared network configuration screens.
Status bar Shows the latest runtime status or switching message.

Hardware Type Gating

The touch UI bases its controls-enabled rule on the canonical hardware type (hwtype) shared with the runtime, preferring the hardware_type field of /api/system/status. SPDT, SP4T, and ATTEN render live controls; unset and unknown hardware disable the tiles and show a HARDWARE TYPE UNSET/UNKNOWN status instead of POSTing to a backend with no RF route.

Reproducing These Renders

The screens above are captured from the LVGL X11 simulator against an x86 mock runtime:

# Run the simulator interactively
make run-touch-ui-sim-sp4t

# Recapture the screenshots on this page
python3 docs/screenshots/capture_touch_ui.py --set sp4t

The simulator target starts the runtime with the explicit SP4T variant:

NF_PART_VARIANT=SP4T ./server -variant SP4T