47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
# PyMSC GUI Refactor & Adapter Plan
|
|
|
|
Questo documento descrive il piano di lavoro step-by-step che sto implementando
|
|
per rendere la GUI di `pymsc` modulare, testabile e ARTOS-compliant.
|
|
|
|
## Obiettivo
|
|
|
|
- Introdurre un adapter (`Adapter1553`) che separi la GUI dal backend 1553.
|
|
- Rifattorizzare componenti GUI in moduli riusabili.
|
|
- Procedere step-by-step: ogni step è corredato di test automatici che
|
|
verificano il comportamento.
|
|
|
|
## Step attuali
|
|
|
|
1. Creare `Adapter1553` (shim minimale): fatto — espone `get_value`, `set_value`,
|
|
`list_messages`, `register_callback`. Test: `tests/test_adapter_1553.py`.
|
|
|
|
2. Integrare l'adapter nella GUI: prossimo passo dopo verifica dei test.
|
|
|
|
3. Estrarre componenti GUI riusabili (`components/`): checkbox, combobox,
|
|
spinbox, message viewer, tooltip, scrollable frame.
|
|
|
|
4. Sostituire accessi diretti a `grifo_def_msg` con chiamate all'adapter nelle pagine
|
|
(`grifo_gui_page*.py`) in modo incrementale.
|
|
|
|
5. Aggiornare `script_manager` per usare `BusMonitorCore.recorder` tramite adapter,
|
|
mantenendo il formato JSON e la logica di validazione.
|
|
|
|
6. Implementare meccanismo thread-safe di aggiornamento UI (worker queue + `after`).
|
|
|
|
## Testing
|
|
|
|
- Ogni step ha unit test specifici. Per l'adapter ho creato test che utilizzano
|
|
un `FakeBusMonitor` per evitare dipendenze esterne.
|
|
- Dopo l'adapter, procederemo con tests per i componenti GUI (headless when possible)
|
|
e logica di script manager.
|
|
|
|
## Prossimi passi immediati
|
|
|
|
1. Eseguire i test unitari creati per l'adapter e correggere eventuali problemi.
|
|
2. Se i test passano, iniziare l'integrazione dell'adapter nella pagina `Page02`
|
|
come prova di concetto (spinbox/combobox).
|
|
|
|
---
|
|
|
|
Documenterò ogni passo e aggiornerò questo file con risultati e decisioni.
|