# Capitolo 4: Eseguire una Simulazione

Una volta che hai configurato la connessione e preparato il tuo scenario, sei pronto per avviare il test.

## 4.1. Guida Passo-Passo

Il processo per eseguire una simulazione è semplice e si svolge principalmente nella scheda **"Simulation"**.

1.  **Connettiti al Radar:**
    *   Assicurati che il sistema radar sia acceso e pronto a ricevere dati.
    *   Nella finestra principale, clicca sul pulsante `Connect` nel Pannello di Connessione.
    *   L'indicatore "Target" nella barra di stato in basso dovrebbe diventare **verde**. Se rimane rosso, controlla le impostazioni di connessione (vedi Capitolo 2) e i log.

2.  **Carica lo Scenario:**
    *   Se non è già caricato, seleziona lo scenario che vuoi eseguire dal menu a tendina nel "Pannello di Controllo Scenari".

3.  **Vai alla Scheda "Simulation":**
    *   Clicca sulla scheda `Simulation` nel pannello di lavoro a destra.

4.  **Avvia la Simulazione:**
    *   Clicca sul pulsante `Start Live`.
    *   L'applicazione eseguirà automaticamente un reset del radar per garantire una partenza pulita, invierà le posizioni iniziali dei target e poi avvierà la simulazione. Il reset viene inviato tramite il comando JSON atomico quando possibile, con fallback a comandi legacy per compatibilità.
    *   Prima di avviare una sessione di prova, è consigliabile eseguire lo `Sync Tool` (menu `Debug -> Sync Tool`) per misurare la latenza di rete e verificare che i tempi riscontrati siano compatibili con il tuo scenario di test.
    *   Il pulsante `Start Live` diventerà grigio e il pulsante `Stop Live` diventerà attivo. Il messaggio nella barra di stato cambierà in "Simulation running".

    Nota sui Profili Target: prima dell'invio lo `SimulationController` espande i profili associati ai singoli target e integra i valori (es. `rcs`, `amplitude`) nei payload `tgtinit`/`tgtset` inviati al server. Eventuali sovrascritture definite a livello target o waypoint vengono applicate al momento della generazione del payload.

5.  **Termina la Simulazione:**
    *   La simulazione si fermerà da sola quando tutti i target avranno completato la loro traiettoria.
    *   Per fermarla manualmente in qualsiasi momento, clicca sul pulsante `Stop Live`.

## 4.2. Monitorare la Simulazione in Tempo Reale

Mentre la simulazione è in corso, hai diversi strumenti per monitorarne l'andamento.

![Pannello di Simulazione in Esecuzione](<percorso/relativo/a/pannello_simulazione.png>)
*(Nota: Usa lo stesso screenshot `pannello_simulazione.png` definito nel manuale tecnico)*

*   **PPI Display:** È il tuo strumento di monitoraggio principale.
    *   Osserva i **target simulati (verdi)** muoversi lungo i loro percorsi.
    *   Verifica che appaiano i **target reali (rossi)**, che rappresentano ciò che il tuo sistema radar sta effettivamente tracciando. Idealmente, i punti rossi dovrebbero sovrapporsi o seguire da vicino quelli verdi.
    *   Se hai attivato l'opzione, vedrai la linea dell'**antenna (gialla o grigia)** spazzare all'interno del suo settore di scansione.

*   **Slider di Progresso:** La barra di scorrimento sotto i controlli principali mostra a che punto è la simulazione. I tempi `elapsed / total` sono indicati a destra.

*   **Pannello "Ownship State":** Mostra i dati di volo in tempo reale del tuo aereo (posizione, heading, velocità) come ricevuti dal sistema esterno.

*   **Tabella "Active Targets":** Mostra i dati calcolati per i target simulati, convertiti in coordinate geografiche (Latitudine/Longitudine).

*   **Barra di Stato:** Tieni d'occhio:
    *   **Rate (pkt/s, ev/s):** Indica quanti dati stai ricevendo dal radar. Se questo valore è a zero, significa che il radar non sta inviando dati di traccia.
    *   **Latency (ms):** Stima il ritardo di comunicazione tra il radar e il simulatore. Per misure più accurate, usare lo `Sync Tool` e/o l'`External Profiler` (vedi `Debug -> External Profiler`).

**Output di archivio:** Al termine della simulazione, i file di tracing vengono prodotti nella cartella temporanea (`Temp/`) e poi spostati in `archive_simulations/` con i seguenti suffissi:

- `<timestamp>_<scenario>.trail.csv` — trail delle posizioni.
- `<timestamp>_<scenario>.latency.csv` — campioni di latenza raccolti.
- `<timestamp>_<scenario>.perf.csv` — dati di performance (presente solo se `enable_performance_profiling` era attivo).

Queste impostazioni possono essere controllate da `settings.json` (chiavi di debug `enable_io_trace`, `enable_performance_profiling`, `temp_folder_name`).

*   **Pannello dei Log:** Controlla quest'area per eventuali messaggi di errore (in rosso) che potrebbero indicare problemi durante la simulazione.