# Quick Reference: Sincronizzazione MATLAB → Python

## 🚀 Quick Start

### Per aggiornare Python da modifiche MATLAB:

1. **Fornisci lista file modificati**:
   ```
   - CalcoloBiax_TuL.m
   - CalcoloRSN.m
   ```

2. **Descrizione modifiche** (opzionale):
   ```
   - TuL: Corretto calcolo correlazione Y
   - RSN: Aggiunto handling per valori negativi
   ```

3. **Io farò**:
   - Leggo i file MATLAB
   - Identifico le modifiche
   - Aggiorno il codice Python corrispondente
   - Eseguo validazione
   - Creo commit con descrizione

## 📋 Mapping Veloce MATLAB → Python

### RSN Module
```
CalcoloRSN.m         → src/rsn/elaboration.py
CalcoloRSNHR.m       → src/rsn/elaboration.py
CalcoloLoadLink.m    → src/rsn/elaboration.py
ConvRSN.m            → src/rsn/conversion.py
MediaRSN.m           → src/rsn/averaging.py
```

### Tilt Module
```
CalcoloTLHR.m        → src/tilt/elaboration.py
CalcoloBL.m          → src/tilt/elaboration.py
CalcoloPL.m          → src/tilt/elaboration.py
CalcoloKLHR.m        → src/tilt/elaboration.py
arot.m               → src/tilt/geometry.py
asse_a.m             → src/tilt/geometry.py
asse_b.m             → src/tilt/geometry.py
ConvTilt.m           → src/tilt/conversion.py
```

### ATD Module
```
CalcoloRL.m          → src/atd/elaboration.py::elaborate_radial_link_data()
CalcoloLL.m          → src/atd/elaboration.py::elaborate_load_link_data()
CalcoloPL.m          → src/atd/elaboration.py::elaborate_pressure_link_data()
Calcolo3DEL.m        → src/atd/elaboration.py::elaborate_extensometer_3d_data()
CalcoloCrL.m         → src/atd/elaboration.py::elaborate_crackmeter_data()
CalcoloBiax_PCL.m    → src/atd/elaboration.py::elaborate_pcl_data()
CalcoloBiax_TuL.m    → src/atd/elaboration.py::elaborate_tube_link_data()
corrTuL.m            → src/atd/elaboration.py (incluso in elaborate_tube_link_data)
CalcoloStella.m      → src/atd/star_calculation.py
ConvATD.m            → src/atd/conversion.py
```

### Common
```
database_definition.m → src/common/database.py
carica_parametri.m    → src/common/config.py
carica_calibrazione.m → src/common/config.py
ValidaTemp.m          → src/common/validators.py
Despiking.m           → src/common/validators.py
```

## 📝 Template Richiesta

### Minimo (sufficiente)
```
File modificati:
- CalcoloBiax_TuL.m
- CalcoloRSN.m
```

### Ideale
```
File modificati:
1. CalcoloBiax_TuL.m
   - Corretto calcolo correlazione Y (bug fix)
   - Aggiunto parametro correction_factor

2. CalcoloRSN.m
   - Gestione valori negativi inclinazione
   - Validazione range angoli
```

## ✅ Validazione Post-Update

Dopo ogni aggiornamento Python:

```bash
# 1. Test base
python -m src.main CU001 A

# 2. Validazione vs MATLAB
python -m src.validation.cli CU001 A --output report.txt

# 3. Check report
cat report.txt | grep "VALIDATION"
```

Se vedi `✓✓✓ VALIDATION PASSED ✓✓✓` → tutto OK! ✅

## 🔍 Identificare File MATLAB Modificati

Se hai git nel repo MATLAB:
```bash
# Modifiche dall'ultimo sync
git log --since="2025-10-01" --name-only --pretty=format: | sort -u

# Modifiche rispetto a un tag
git diff v1.0..HEAD --name-only | grep "\.m$"
```

Se non hai git:
```bash
# Per data modifica
find . -name "*.m" -mtime -30  # ultimi 30 giorni
```

## 💡 Esempi

### Esempio 1: Bug Fix Singolo
```
File: CalcoloRSN.m
Modifica: Linea 234, conversione angolo da radianti a gradi
```
→ Tempo: ~15 minuti

### Esempio 2: Multiple Files
```
File:
- CalcoloBiax_TuL.m (nuovo parametro)
- CalcoloBiax_PCL.m (correzione formula)
- ConvATD.m (nuova calibrazione)
```
→ Tempo: ~45 minuti

### Esempio 3: Nuovo Sensore
```
Nuovo sensore: WireExtensometer (WEL)
File nuovi:
- CalcoloWEL.m
- ConvWEL.m
- MediaWEL.m
```
→ Tempo: ~2 ore (implementazione completa)

## 🎯 Best Practices

### ✅ Do
- Fornire lista file modificati
- Aggiungere breve descrizione
- Testare dopo ogni sync
- Committare incrementalmente

### ❌ Don't
- Non accumulare troppe modifiche
- Non skippare la validazione
- Non modificare Python manualmente dopo sync

## 📞 Richiesta Aggiornamento

Basta scrivere:

```
"Ho aggiornato questi file MATLAB:
- CalcoloBiax_TuL.m (corretto bug correlazione)
- CalcoloRSN.m (aggiunto range validation)

Puoi sincronizzare Python?"
```

Oppure ancora più semplice:

```
"File MATLAB modificati:
- CalcoloBiax_TuL.m
- CalcoloRSN.m"
```

---

**TL;DR**: Fornisci lista file MATLAB modificati → Io aggiorno Python corrispondente → Validiamo → Commit ✅

Vedi [MATLAB_SYNC_GUIDE.md](MATLAB_SYNC_GUIDE.md) per dettagli completi.
