139 lines
4.0 KiB
Markdown
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.
|