Files
ESP32_ZACUS/specs/apps/calculator.md
T
L'électron rare 878d911065 P1.1+P1.2: Phase 9 Touch Emulator + AGENT_TODO Update
 P1.1 Phase 9 Touch Input (4h)
- TouchEmulator: 4x4 grid navigation via buttons (UP/DOWN/LEFT/RIGHT toggle)
- Files: touch_emulator.{h,cpp} + AmigaUIShell integration
- Button mapping: 0=UP, 1=SELECT, 2=DOWN, 3=MENU, 4=TOGGLE_LR
- Build SUCCESS (31.06s, 64.4% RAM, 42.0% Flash)

 P1.2 Documentation Update (1h)
- AGENT_TODO.md: Phase 9 completion + Sprint 9 section added
- Root cause analysis: watchdog timeout (cycle 9) → stack fix (8192→16384)
- Troubleshooting guide: common issues + debug commands

Files:
  + touch_emulator.{h,cpp}
  ~ ui_amiga_shell.* + main.cpp + AGENT_TODO.md

Next: P1.3 (Sprint 1 endurance validation) + P2 (main.cpp refactor)
2026-03-11 00:03:58 +01:00

45 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Spec App - Calculatrice (`calculator`)
## 1. Cadrage
- ID runtime: `calculator`
- Catégorie: `utility`
- Scène d'entrée: `SCENE_CALCULATOR`
- Module actuel: `CalculatorModule`
- Manifest attendu: `/apps/calculator/manifest.json`
- Offline: **oui** | Streaming: **non**
## 2. Capacités
- Requises (128): `CAP_GPU_UI`
- Optionnelles (0): `AUCUNE`
## 3. Objectif Produit
- Évaluation d'expressions mathématiques basiques.
## 4. Contrat Actions (`APP_ACTION` / `/api/apps/action`)
| Action | Payload | Effet attendu |
|---|---|---|
| `eval` | `expression texte` | Calcule le résultat (tinyexpr ou parser interne). |
| `clear` | `vide` | Réinitialise le résultat. |
| `status` | `vide` | Retourne le résultat courant via `last_event` (`result=...`). |
## 5. Stockage & Persistance
- Pas de persistance (historique non stocké).
## 6. Backlog Développement (MVP)
- Clavier calculatrice + affichage résultat.
- Gestion explicite des erreurs d'expression (eval_error).
- Historique local (v2).
- Intégrer le déclenchement depuis le launcher (`AmigaUIShell::launchSelectedApp`) via `APP_OPEN`.
- Vérifier la route de scène (`entry_screen`) et la cohérence UI/LVGL.
## 7. Critères dAcceptation
- L'app se lance via API et via commande série sans crash.
- Les actions principales répondent sans erreur non gérée.
- Le statut runtime reflète correctement `state`, `last_event`, `last_error`.
- Retour propre à `SCENE_READY` après fermeture app.
## 8. Tests Recommandés
1. `APP_OPEN calculator` puis contrôle `UI_SCENE_STATUS`.
2. Exécuter 3-5 actions clés de `CalculatorModule` (serial/API).
3. `APP_CLOSE` puis validation `APP_IDLE` et absence de fuite mémoire visible.