## Italiano

### **Manuale Utente - Radar Data Reader & Processor**

#### **1. Introduzione**

Questo manuale fornisce una guida completa all'utilizzo dell'applicazione Radar Data Reader & Processor. L'applicazione è progettata per orchestrare un intero flusso di lavoro di analisi dei dati radar, dalla registrazione grezza all'estrazione finale dei dati, risolvendo tre problemi principali:
1.  **Analisi di Volo**: Analizzare un'intera sessione di volo registrata (`.rec` files) per identificare e riassumere automaticamente i segmenti operativi significativi.
2.  **Esportazione e Processamento Dati**: Estrarre dati specifici dai segmenti di volo generati (`.out` files) in formati standard (CSV, JSON) utilizzando profili di esportazione personalizzabili.
3.  **Conversione Manuale**: Fornire un'interfaccia controllata per l'utility a riga di comando `g_reconvert.exe` per conversioni manuali o specifiche.

#### **2. Requisiti di Sistema**

*   Un ambiente Python 3 installato.
*   Le librerie Python richieste (es. `pandas`, `numpy`).
*   L'eseguibile **`g_reconvert.exe`** deve essere accessibile dal sistema. L'applicazione è un wrapper e dipende da questo file per le sue funzionalità principali.

#### **3. Configurazione Iniziale**

Al primo avvio, l'applicazione crea un file `config/config.json` nella sua directory. È **fondamentale** configurare correttamente l'applicazione prima dell'uso.

1.  Avvia l'applicazione.
2.  Vai alla scheda **"4. REC to OUT Converter"**.
3.  Clicca sul pulsante **"g_reconverter Advanced Config..."**.
4.  Nella finestra che si apre, il primo campo è **"Executable Path"**. Clicca su **"Browse..."** e seleziona la posizione esatta del tuo file `g_reconvert.exe`.
5.  Clicca su **"Save & Close"**.

Senza questo passaggio, nessuna delle funzionalità che dipendono da `g_reconvert.exe` (Analisi di Volo, Conversione) funzionerà.

#### **4. Guida all'Interfaccia**

L'interfaccia principale è stata riorganizzata per seguire un flusso di lavoro logico attraverso le sue schede (tab):

1.  **`1. Flight Analyzer`**: Il punto di partenza. Analizza un'intera cartella di volo, riassume i segmenti e permette di esportare i dati grezzi dei segmenti di interesse.
2.  **`2. Segment Processor`**: Il secondo passo. Processa in blocco i file `.out` dei segmenti esportati dalla prima tab per estrarre i dati in CSV/JSON.
3.  **`3. Single OUT Processor`**: Per l'analisi dettagliata di un singolo file `.out` arbitrario.
4.  **`4. REC to OUT Converter`**: Per conversioni manuali da `.rec` a `.out`.

La finestra include anche una **Log Console** per messaggi in tempo reale e una **Status Bar** per indicare lo stato corrente.

---

### **Flusso di Lavoro Principale**

#### **5. Passo 1: Analisi del Volo e Esportazione Segmenti (Tab "Flight Analyzer")**

Questa è la funzionalità principale per iniziare un'analisi.

1.  **Seleziona Cartella del Volo**: Clicca su **"Browse..."** accanto a "Recordings Folder" e seleziona la cartella contenente la sequenza completa di file `.rec` del volo.
2.  **Dai un Nome al Volo**: Inserisci un nome identificativo per il volo nel campo "Flight Name". Questo nome verrà usato per creare una cartella di lavoro dedicata.
3.  **Avvia Analisi**: Clicca **"Start Flight Analysis"**. L'applicazione eseguirà `g_reconvert.exe` in background per analizzare tutti i file. Questo processo potrebbe richiedere del tempo.
4.  **Visualizza Risultati**: Al termine, la tabella "Flight Summary & Segments" verrà popolata con un riepilogo di tutti i segmenti operativi trovati, mostrando modalità, durate e file di riferimento.
5.  **Esporta Segmenti**: Seleziona uno o più segmenti dalla tabella e clicca su **"Export Selected Segment(s)"**. L'applicazione creerà una sottocartella per ogni segmento selezionato all'interno della cartella di lavoro del volo, contenente un file `.out` e altri file ausiliari (video, GPS, etc.).

#### **6. Passo 2: Processamento in Blocco dei Segmenti (Tab "Segment Processor")**

Dopo aver esportato i segmenti, questa tab permette di estrarre i dati da tutti loro in una sola operazione.

1.  **Carica Segmenti**: Clicca su **"Load Exported Segments from Current Flight"**. La tabella si popolerà con i segmenti precedentemente esportati. Lo stato "Ready" indica che il segmento è pronto per il processing.
2.  **Seleziona Segmenti**: Seleziona i segmenti che vuoi processare. Puoi usare i bottoni "Select All Ready" e "Select None" per velocizzare la selezione.
3.  **Configura Output**:
    *   **Output Directory**: Scegli la cartella di destinazione finale per i tuoi file CSV e JSON.
    *   **Formati e Profili**: Abilita l'esportazione CSV e/o JSON spuntando le relative caselle e seleziona un **Profilo di Esportazione** per ciascuno.
    *   **Opzioni Aggiuntive**: Configura opzioni come la creazione di cartelle separate per ogni analisi o il formato del CSV.
4.  **Avvia Processo**: Clicca su **"Process Selected Segments"**. L'applicazione analizzerà ogni file `.out` selezionato e creerà i file di dati corrispondenti nella directory di output. La barra di progresso mostrerà l'avanzamento.

---

### **Funzionalità Aggiuntive**

#### **7. Analisi di un Singolo File `.out` (Tab "Single OUT Processor")**

Questa scheda è utile per analizzare un file `.out` isolato, non necessariamente legato a un'analisi di volo completa.

1.  **Seleziona File di Input**: Clicca **"Browse..."** e seleziona il file `.out` da analizzare.
2.  **Configura Output**: Imposta la directory di output, il nome del file base e i profili di esportazione.
3.  **Avvia Processo**: Clicca **"Process .out File"**. I dati verranno estratti secondo il profilo scelto.

#### **8. Gestione Avanzata: L'Editor dei Profili di Esportazione**

Per accedere all'editor, vai su `File -> Manage Export Profiles...`.

*   **Pannello Sinistro (Profiles)**: Gestisci i profili (crea, elimina, seleziona).
*   **Pannello Centrale (Available Fields)**: Visualizza tutti i campi dati estraibili. I campi `(Enum)` possono essere tradotti in formati leggibili. Seleziona un campo e usa **`>>`** per aggiungerlo.
*   **Pannello Destro (Selected Fields for Profile)**: Mostra i campi del profilo corrente. Usa **`<<`** per rimuoverli e **Up/Down** per riordinarli.
*   **Colonna "Translate"**: Clicca sulla cella in questa colonna per attivare/disattivare la traduzione di un valore da numerico a testuale (es. da `15` a `STT_MASTER_MODE`).

#### **9. Conversione Manuale `.rec` -> `.out` (Tab "REC to OUT Converter")**

Questa scheda offre un controllo diretto su `g_reconvert.exe` per semplici conversioni.

1.  **Seleziona Input**: Scegli il primo file `.rec` e il numero di file da concatenare.
2.  **Scegli Output**: Definisci la cartella di destinazione.
3.  **Avvia Conversione**: Clicca **"Convert REC to OUT"**.

#### **10. Domande Frequenti (FAQ)**

*   **D: Perché nessuna funzione sembra funzionare?**
    *   **R**: Controlla di aver impostato correttamente il percorso di `g_reconvert.exe` come descritto nella sezione "Configurazione Iniziale".

*   **D: Perché un segmento nella tab "Segment Processor" appare in grigio e non è selezionabile?**
    *   **R**: Significa che il segmento non è stato ancora esportato (o l'esportazione non è riuscita). Torna alla tab "Flight Analyzer", seleziona quel segmento e clicca su "Export Selected Segment(s)".

*   **D: Come posso aggiungere un campo che non vedo nell'albero "Available Fields"?**
    *   **R**: Questo richiede una modifica al codice sorgente. Dovrai definire la nuova struttura dati nel package `radar_data_reader/core/structures` e aggiornare la logica di parsing in `radar_data_reader/core/struct_parser.py`.