aggiunta le conversione tra più unità di misura

This commit is contained in:
VALLONGOL 2025-10-17 11:30:03 +02:00
parent a6d785b00d
commit ddd3f02f0f

View File

@ -50,6 +50,11 @@ class SfpDebugWindow(tk.Toplevel):
def __init__(self, master=None):
super().__init__(master)
self.master = master
# Make the debug window slightly larger by default
try:
self.geometry("1100x700")
except Exception:
pass
self.logger = logging.getLogger(__name__)
# Router instance (buffers latest payloads per flow)
self.payload_router = DebugPayloadRouter()
@ -630,15 +635,37 @@ class SfpDebugWindow(tk.Toplevel):
for label, key, unit in order:
if key in scenario:
val = scenario.get(key)
# apply conversions
# apply conversions and show raw in parentheses
if key == "platform_azimuth" or key == "true_heading":
display_val = f"{to_deg(val):.6f} {unit}" if isinstance(val, (int, float)) else val
if isinstance(val, (int, float)):
conv = to_deg(val)
display_val = f"{conv:.6f} ° ({val:.6f} rad)"
else:
display_val = val
elif key in ("vx", "vy", "vz"):
display_val = f"{m_s_to_ft_s(val):.3f} {unit}" if isinstance(val, (int, float)) else val
if isinstance(val, (int, float)):
conv = m_s_to_ft_s(val)
display_val = f"{conv:.3f} ft/s ({val:.3f} m/s)"
else:
display_val = val
elif key == "baro_altitude":
display_val = f"{m_to_ft(val):.3f} {unit}" if isinstance(val, (int, float)) else val
if isinstance(val, (int, float)):
conv = m_to_ft(val)
display_val = f"{conv:.3f} ft ({val:.3f} m)"
else:
display_val = val
elif key in ("latitude", "longitude"):
display_val = f"{val:.9f} {unit}" if isinstance(val, (int, float)) else val
if isinstance(val, (int, float)):
# Show decimal degrees and DMS (alt display)
dd = float(val)
deg = int(dd)
md = abs((dd - deg) * 60)
minutes = int(md)
seconds = (md - minutes) * 60
dms = f"{deg}°{minutes:02d}'{seconds:.3f}\""
display_val = f"{dd:.9f} ° ({dms})"
else:
display_val = val
else:
display_val = val
self.scenario_tree.insert("", tk.END, values=(f"{label} {('('+unit+')' if unit else '')}", display_val))
@ -676,10 +703,10 @@ class SfpDebugWindow(tk.Toplevel):
vals = (
t.get("index"),
t.get("flags"),
f"{heading_deg:.3f}",
f"{x:.3f}",
f"{y:.3f}",
f"{z_ft:.3f}",
f"{heading_deg:.3f} ° ({t.get('heading')})",
f"{x:.3f} m ({t.get('x')})",
f"{y:.3f} m ({t.get('y')})",
f"{z_ft:.3f} ft ({t.get('z')})",
)
self.ris_tree.insert("", tk.END, values=vals)
except Exception: