# Inizializzazione Radar - Guida ## Panoramica È stata aggiunta la funzionalità di **inizializzazione del radar** all'applicazione PyMsc. Questa funzione replica il comportamento del vecchio script `test_1553.py` che inviava messaggi di configurazione al server radar per prepararlo alla comunicazione. ## Come Funziona ### 1. Interfaccia Utente Nel tab **Control Panel** troverai: - **Pulsante "🔧 Initialize Radar"**: Avvia la sequenza di inizializzazione - **Indicatore di stato**: Mostra lo stato corrente del radar - ⚠ Arancione: Radar non inizializzato - ⏳ Blu: Inizializzazione in corso - ✓ Verde: Radar pronto - ✗ Rosso: Inizializzazione fallita ### 2. Sequenza di Inizializzazione Quando premi il pulsante, l'applicazione invia al radar (sulla porta 51553) i seguenti messaggi con valori di default: 1. **A1 - Settings and Parameters** - `history_level = TARGET_HISTORY_LEVEL_04` - `rdr_symbology_intensity = 127` 2. **A2 - Operation Command** - `master_mode = RWS` (Range While Search) - `gm_submode = 0` - `spare_0_4 = 0` 3. **A3 - Graphic Setting** - Valori di default 4. **A4 - Nav Data and Cursor** - `validity_and_slew.raw = 0` 5. **A5 - INU High Speed** - `timetag.raw = 0` Ogni messaggio viene inviato con un intervallo di 50ms per garantire la corretta ricezione. ### 3. Log del Server Radar Dopo l'inizializzazione corretta, dovresti vedere nel log del server radar messaggi simili a: ``` %%[435]S:UDP1553 : connected (UDP1553) %%[518]W:CMP : PPS GO: ON %%[666]I:CMP : DFE Radiate: OFF (0/0) %%[766]W:CMP : DFE Radiate: ON (0/1) ``` Questo conferma che il radar ha ricevuto ed eseguito i comandi. ## Utilizzo ### Avvio Normale 1. **Avvia l'applicazione**: `python -m pymsc` 2. **Premi "Initialize Radar"** nel Control Panel 3. **Attendi il messaggio di conferma** (verde) 4. **Il Bus Monitor** inizierà a mostrare i messaggi dal radar ### Test con Fake Radar Se il radar reale non è disponibile, puoi testare con il simulatore: ```powershell # Terminale 1: Fake Radar python tools\fake_radar.py --sa 1 --period 0.5 # Terminale 2: Applicazione python -m pymsc ``` ## Risoluzione Problemi ### Il radar non risponde 1. **Verifica che il server radar sia in esecuzione** 2. **Controlla l'IP destinazione** (default: 127.0.0.1) 3. **Verifica che la porta 51553 sia libera** 4. **Controlla i log del radar** per errori ### Inizializzazione fallita 1. **Controlla la console** per messaggi di errore dettagliati 2. **Verifica la configurazione di rete** con `tools\check_radar_status.py` 3. **Controlla che tutti i messaggi siano registrati** nel controller ### Porta già in uso Se vedi errori sulla porta 61553: - Chiudi altre istanze dell'applicazione - Verifica con `netstat -an | Select-String "61553"` ## Modifiche Tecniche ### AppController - **Nuovo flag**: `radar_initialized` - traccia lo stato di inizializzazione - **Nuovo metodo**: `initialize_radar()` - invia la sequenza di init - **Nuovo metodo**: `_send_single_message()` - helper per invio singolo messaggio - **Nuova proprietà**: `radar_dest_ip` - IP destinazione radar (configurabile) ### MainWindow - **Nuovo pulsante**: "Initialize Radar" nel Control Panel - **Nuovo indicatore**: Stato inizializzazione radar - **Nuovo metodo**: `_on_init_radar()` - handler pulsante - **Nuovo metodo**: `_update_radar_status()` - aggiorna UI dopo init ## Configurazione Avanzata ### Cambiare l'IP del Radar Nel codice, modifica: ```python self.radar_dest_ip = "192.168.100.10" # IP del tuo radar ``` Oppure aggiungi un campo nella GUI Settings tab per configurarlo dinamicamente. ### Personalizzare i Valori di Inizializzazione Modifica il metodo `initialize_radar()` in `app_controller.py` per cambiare i valori inviati al radar. ## Compatibilità Questa implementazione è **100% compatibile** con il vecchio script `test_1553.py`: - Stesse porte (51553 per invio, 61553 per ricezione) - Stessi messaggi - Stessi valori di default - Stesso ordine di invio Il radar riceverà esattamente gli stessi dati che riceveva con il vecchio sistema.