ar_style.py — global QSS dark theme + QPalette matching the Flutter brand
palette (navy #0D1B2A, electric blue #2563EB, glow #60B8FF). Single call:
apply_ar_style(app).
app.py — applies AR style and window icon on startup.
main_window.py — complete rewrite of the layout:
- Sidebar: AR logo (PNG), user/role display, capabilities list, version stamp
- 5 tabs: Overview · ⚡ Flash ESP32 · 📋 Proyecto · 📡 Telemetría · 💾 Instalar J6412
- Overview tab: rich-text guide with icons for each tab's purpose
telemetry_widget.py — live $PARP STATUS chart tab:
- QSerialPort RX-only connection to AR-Concentrador (port selector + Refresh)
- Python $PARP XOR-checksum parser (mirrors Dart ParpCodec)
- _RollingChart: pure QPainter scrolling time-series, 60 s window, no
external charting library
- Heading + Setpoint on one chart; Rudder on a second chart
- Live value strip shows Rumbo / Setpoint / Timón + mode label
installer_widget.py — J6412 USB image builder tab:
- Vessel name + serial number (auto-generate or paste)
- Optional CSV log path for CRM
- App checkboxes (AR-ECDIS / AR-Autopilot / skip Flutter build)
- Worker thread runs installer/build_usb.py with streamed log output
- "Abrir dist/" button when build succeeds
- RBAC gated: Engineer or Super Admin only
pyproject.toml — adds [installer] and [license-server] optional dep groups
AR_electronics — AR-Autopilot Project