Se non arrivano frame validi da >2s, l'HEARTBEAT passa a MAV_STATE_CRITICAL e
GPS_RAW_INT a NO_FIX, invece di continuare a emettere gli ultimi valori in
cache come "vivi" (MAV_STATE_ACTIVE). L'HEARTBEAT continua (il link verso il
GCS resta), cosi' il GCS segnala "telemetria persa" anziche' un aereo fermo.
Flight mode->custom_mode NON implementato di proposito: mwp decodifica
custom_mode con mav2inav()/xmav2inav() in formato INAV-specifico e dipendente
dalla versione FC (fc_vers>=hasPOI) -> troppo fragile per il valore offerto.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- decodeTelemetry() ora scarta frame incompleti o con CRC8 errata (prima non
validava nulla: frame corti/corrotti da ESP-NOW venivano decodificati
leggendo oltre il frame -> telemetria spazzatura, e OOB read su FLIGHT_MODE).
- test_decode.cpp: vettori ricostruiti come frame reali con CRC valida
(calcolata offline), battery ri-quadrato a lth=10, assert bat_fuel_drawn
corretto a 350 (era 89678, pre-patch uint24), test "non valida CRC" invertito
in "rigetta CRC errata", aggiunto test su frame troncato.
- Emulatore (03) e backpack reale usano lo stesso framing/CRC -> passano.
DA RI-ESEGUIRE A BANCO: 'pio test -e esp32dev_test' e test RF reale. Se la
telemetria reale sparisce, il backpack potrebbe non rilasciare una CRC valida
nel frame ESP-NOW -> in tal caso ripiegare su validazione solo-lunghezza.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
RADIO_STATUS.rssi/remrssi vanno su scala 0..254 (i GCS riscalano a %:
mwp fa raw*1023/255). Si mandava link_quality grezzo 0..100, quindi con
LQ=100 mwp mostrava 100/2.55 = 39% fisso. Riscalato a 0..254 (come gia'
fa il modo LTM). Root cause confermata dal sorgente mwp (mwp-mavlink_msg.vala).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Stato di partenza prima dei fix. Il repo git era inizializzato a meta'
(config.lock + objects/ mancante, zero commit): riparato.
my_config.h (UID reale, tutti e 3 i sottoprogetti) escluso via .gitignore;
aggiunto my_config.h.example. .pio/ escluso.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>