aggiunta le conversione tra più unità di misura
This commit is contained in:
parent
a6d785b00d
commit
ddd3f02f0f
@ -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:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user