Commit Graph

14 Commits

Author SHA1 Message Date
AskaEth b00e59d5bf feat: UI test mode + per-game port configuration
- Settings: UI test mode toggle generates simulated telemetry data (speed/RPM/gear/laps...)
- Simulated data broadcasts via WebSocket and forwards to downstream devices
- game_ports config: per-game independent port overrides (shown when unified port off)
- Settings UI: game port list with save button, hidden when unified port enabled
- Sidebar: switch game reads game_ports[gameId] fallback to default_port
2026-07-26 17:49:18 +08:00
AskaEth bbaef43cfd feat: #5 - live telemetry cards on home page (speed/RPM/gear on top) 2026-07-26 17:32:36 +08:00
AskaEth a08120c568 feat: 2,3,7,8,9 - search/sort, Docker, log viewer, .tsb backup
- Dashboard browser: search box + sort dropdown (name/category/author)
- Dockerfile + docker-compose.yml
- Debug page: log viewer button (/api/logs)
- Settings: .tsb full backup export (dashboards+scenes+config)
- F1 composite dashboard previously included
2026-07-26 17:32:09 +08:00
AskaEth 9091f2133d feat: 1,4,6 - scene canvas editor, systemd service, F1 composite dashboard
- Scene editor: drag-drop dashboards from sidebar to canvas, reposition, delete placements, save/load
- Systemd service: turbosu.service with frpc dependency, restart on failure
- F1 composite: speed/RPM/lap/gear/throttle/brake/fuel/DRS, 16:9, NEXT ART font
2026-07-26 17:30:19 +08:00
AskaEth e28be26ab3 fix: 7 bug fixes + port config with auto-restart
- HTTPException import added (was causing 500 on missing dashboard)
- game_manager.remove_plugin() restored (was AttributeError)
- api.js checks HTTP status codes, fails fast on errors
- sidebar game highlight only matches selected gameId
- scene resize handler uses stored canvas dims (was NaN)
- forwarder socket properly closed on listener stop
- telemetry port: use_unified_port toggle, off = per-game port, auto-restart on switch
2026-07-26 17:23:14 +08:00
AskaEth 7bafe73d6d fix: sidebar toggle always accessible when collapsed 2026-07-25 21:24:53 +08:00
AskaEth 5854b4cc57 fix: add debounce to theme toggle to prevent flash-back 2026-07-25 21:22:34 +08:00
AskaEth 3822f85b95 fix: theme toggle double-click bug - remove duplicate listener 2026-07-25 18:15:06 +08:00
AskaEth 858a5b4b93 feat: UDP data forwarding to multiple downstream devices
- DataForwarder class in listener: sends raw packets to all enabled targets
- REST API: GET/PUT /api/forward for managing targets
- Settings page: add/remove/edit forward targets with host/port/name/enabled
- Status endpoint includes forward_active count
- Config persisted in data/config.json via forward_targets array
2026-07-25 18:07:48 +08:00
AskaEth 9c634277e5 feat: NEXT ART Heavy font for composite dashboard, local at static/fonts/ 2026-07-25 17:33:46 +08:00
AskaEth 7959d911e6 feat: WS sends selected_game_id on connect, gear indicator auto-adapts to game mapping (Forza/AC/iRacing) 2026-07-25 16:29:00 +08:00
AskaEth 2177e65fb4 feat: dashboard manifest supports 'supported_games' field, frontend filters by selected game
- DashboardTheme model adds supported_games (default: 'all')
- Built-in dashboards declare game compatibility:
  speedometer/tachometer/gear_indicator -> all
  lap_timer -> forza_horizon_5,forza_horizon_4,forza_motorsport,f1_24
- Dashboard browser filters themes by selected game
- Card shows '全' (all) or '限' (limited) badge
- Updated DASHBOARD_DEV.md with supported_games spec
2026-07-25 15:41:55 +08:00
AskaEth 63e3c8d607 refactor: standalone dashboard folders with index.html, zip-based import/export (.tsd/.tss/.tsp)
- Each dashboard is now a self-contained folder: manifest.json + index.html
- Auto-scan dashboards/ and data/dashboards/ on startup
- Export: .tsd (dashboards), .tss (scenes), .tsp (game plugins) - all zip format
- Dashboard index.html is complete standalone page (WS + data binding)
- Aspect ratio constraints handled in each dashboard's own JS
- Removed template-based dashboard rendering in favor of static serve
- Import via file upload endpoints, export via direct file download
2026-07-25 15:35:08 +08:00
Yei.J. (AskaEth) d61bb61a83 feat: TurboSu initial release - racing telemetry dashboard 2026-07-25 15:23:40 +08:00