1.7 KiB
1.7 KiB
RMon UI Specification
Technology
- Framework:
egui+eframe(immediate-mode Rust GUI) - Render backend:
glow(OpenGL 2.1+) - Plotting:
egui_plotfor interactive panels. - Async runtime:
tokio(runs in a background thread).
Deployment
Single binary embedding the statically-linked Agent binary.
UI Layout
Top Toolbar
- 🚀 Connect...: Opens the connection dialog.
- 🔌 Disconnect: Closes current session.
- 💀 Kill Agent: Terminates the remote agent process.
- ⚙ Configure Agent: Opens the remote configuration editor.
Connection Dialog (Modal)
Allows configuring:
- SSH Host: alias from
~/.ssh/config. - Agent Port: remote port (default 7891).
- Local TCP Addr: local tunnel entry point.
Remote Configuration Editor (Modal)
- Full-screen TOML editor for the agent's
config.toml. - Save & Apply: Pushes configuration to the agent.
- Refresh: Pulls the latest configuration from the agent.
Status Bar (Bottom)
- Displays current connection state (✔ Connected / ✘ Disconnected).
- Shows host and port details when connected.
Signal Tree (Left Panel)
- Displays all available signals from the agent.
- Checkboxes to subscribe/unsubscribe from live data.
Plot Area (Central Panel)
- Vertical scroll area containing live plots.
Connection Flow
- User clicks 🚀 Connect... and enters details.
- UI checks if agent is running on remote host via SSH.
- UI deploys agent binary if missing.
- UI starts agent process (
nohup). - UI establishes SSH local port forward tunnel.
- UI connects TCP client to local tunnel end.
- Protocol handshake and initial signal list fetch.