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):
|
def __init__(self, master=None):
|
||||||
super().__init__(master)
|
super().__init__(master)
|
||||||
self.master = master
|
self.master = master
|
||||||
|
# Make the debug window slightly larger by default
|
||||||
|
try:
|
||||||
|
self.geometry("1100x700")
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
self.logger = logging.getLogger(__name__)
|
self.logger = logging.getLogger(__name__)
|
||||||
# Router instance (buffers latest payloads per flow)
|
# Router instance (buffers latest payloads per flow)
|
||||||
self.payload_router = DebugPayloadRouter()
|
self.payload_router = DebugPayloadRouter()
|
||||||
@ -630,15 +635,37 @@ class SfpDebugWindow(tk.Toplevel):
|
|||||||
for label, key, unit in order:
|
for label, key, unit in order:
|
||||||
if key in scenario:
|
if key in scenario:
|
||||||
val = scenario.get(key)
|
val = scenario.get(key)
|
||||||
# apply conversions
|
# apply conversions and show raw in parentheses
|
||||||
if key == "platform_azimuth" or key == "true_heading":
|
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"):
|
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":
|
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"):
|
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:
|
else:
|
||||||
display_val = val
|
display_val = val
|
||||||
self.scenario_tree.insert("", tk.END, values=(f"{label} {('('+unit+')' if unit else '')}", display_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 = (
|
vals = (
|
||||||
t.get("index"),
|
t.get("index"),
|
||||||
t.get("flags"),
|
t.get("flags"),
|
||||||
f"{heading_deg:.3f}",
|
f"{heading_deg:.3f} ° ({t.get('heading')})",
|
||||||
f"{x:.3f}",
|
f"{x:.3f} m ({t.get('x')})",
|
||||||
f"{y:.3f}",
|
f"{y:.3f} m ({t.get('y')})",
|
||||||
f"{z_ft:.3f}",
|
f"{z_ft:.3f} ft ({t.get('z')})",
|
||||||
)
|
)
|
||||||
self.ris_tree.insert("", tk.END, values=vals)
|
self.ris_tree.insert("", tk.END, values=vals)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user