Commit Graph

4 Commits

Author SHA1 Message Date
Francesco Zanin
f8bd99b89d MAVLINK: timeout staleness (no aereo congelato)
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>
2026-06-23 19:48:12 +02:00
Francesco Zanin
bb378f16d0 terseCRSF: valida lunghezza + CRC8 in decodeTelemetry; suite di test riallineata
- 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>
2026-06-23 19:39:02 +02:00
Francesco Zanin
67933bcfc1 Fix RSSI bloccato al 39% nel modo MAVLINK
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>
2026-06-23 19:35:00 +02:00
Francesco Zanin
e22a47fce1 Snapshot iniziale: bridge telemetria CRSF->LTM/MAVLink (ESP-NOW)
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>
2026-06-23 19:32:11 +02:00