mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2026-10-18 13:32:37 +00:00
TrackedSatelliteInfo.used only says whether a tracked satellite/signal contributed to the fix, not why it didn't -- below PVT.elevation_mask, RAIM FDE, and broadcast-unhealthy are all indistinguishable to a monitor client. Add a `healthy` field (proto field 8, default true) alongside it. GPS health comes from the decoded ephemeris's SV_health, falling back to the almanac (broadcast by every satellite) when no ephemeris has been decoded yet. Galileo health is resolved per-signal via the existing get_galileo_signal_health(), with the same almanac fallback when no ephemeris is available for that signal's service. Other systems default to healthy=true.