From ddd3f02f0f881e99744821f97783fa7423e11629 Mon Sep 17 00:00:00 2001 From: VALLONGOL Date: Fri, 17 Oct 2025 11:30:03 +0200 Subject: [PATCH] =?UTF-8?q?aggiunta=20le=20conversione=20tra=20pi=C3=B9=20?= =?UTF-8?q?unit=C3=A0=20di=20misura?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- target_simulator/gui/sfp_debug_window.py | 45 +++++++++++++++++++----- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/target_simulator/gui/sfp_debug_window.py b/target_simulator/gui/sfp_debug_window.py index c4e6031..a878204 100644 --- a/target_simulator/gui/sfp_debug_window.py +++ b/target_simulator/gui/sfp_debug_window.py @@ -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: