3 propositions de dashboard pour le panel Guition 4848S040 (S3-HMI 480×480 carré),
avec 3 partis pris UX différents. L'idée : exposer un selector dans config.html pour que
l'utilisateur choisisse celui qui colle à son usage.
Les 3 panneaux ci-dessous reflètent le même état système simultanément (joue avec les
contrôles pour voir leur comportement).
Pour info — le panel Waveshare 3.16" (820×320 landscape) a déjà sa propre maquette
dans s3-tdisplay316-dashboard-mockup.html, qui est l'équivalent du Style A pour ce form factor.
| Critère | A — Flux Tesla | B — Data Dashboard | C — Minimaliste |
|---|---|---|---|
| Densité info | Moyenne | Très élevée | Basse |
| Distance lecture | 1 m | 0.5 m | 3 m |
| Public cible | Famille / utilisateur final | Tech-savvy / installer | Salon / mur (déco) |
| Animation | Chevrons flux (4 anim continues) | Sparkline rolling 60s | Statique (changements lents) |
| Adaptatif mode | Solaire caché si Shelly | Quadrant solaire caché | Stat "Prod" cachée si Shelly |
| Effort impl LVGL | ~600 lignes (lv_line + lv_anim) | ~500 lignes (canvas sparkline) | ~250 lignes (3 fonts) |
| Coût rendu / refresh | Élevé (4 anims + 5 nœuds) | Moyen (sparkline append + 4 quadrants) | Très faible (1 label central) |
config.html : nouveau champ config.dashboard_style
(enum 0/1/2 = Tesla/Data/Mini). Persisté /config.json. Exposé via /state et /config.display_s3_hmi.h, switch
config.dashboard_style au boot (et après reload config) → appel
dashboard_create_tesla() / dashboard_create_data() / dashboard_create_mini().
Idem pour dashboard_update_*() dans la task LVGL.lv_obj_clean(lv_scr_act())
+ recréation des widgets selon le nouveau style. Coût : 1 redraw plein écran (~50ms).#ifdef sur le board pour appliquer
les bonnes dimensions et positions, en gardant la logique commune.pro minimum
(besoin du buffer 60s qui consomme RAM). Style A et C ouverts à tous les tiers.Les icônes du mockup HTML (☀ ⌂ ⚡ ▮ ↓) ne sont pas dans la font Montserrat utilisée par LVGL. À l'implémentation firmware, substituer par les symboles natifs LVGL (FontAwesome embarqué) :
LV_SYMBOL_HOMELV_SYMBOL_CHARGELV_SYMBOL_BATTERY_FULLLV_SYMBOL_DOWN / LV_SYMBOL_UPLV_SYMBOL_OK · ⚠ alert → LV_SYMBOL_WARNINGlv_obj circulaire jaune comme proxy.