SXXXXXXX_PyMsc/doc/RADAR_INITIALIZATION.md
2025-12-10 11:47:46 +01:00

139 lines
4.0 KiB
Markdown

# 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.