feat: forward UART parsed boot info to main log window
UartMonitorWindow now accepts on_log callback. When boot info (IP, version) is parsed from serial output, it: - Appears in the UART window's own log (prefix [UART]) - Forwards to main window's log panel via on_log callback - Unified [UART] prefix across both windows (was [BOOT] in UART window, [UART] Boot detected: in main log)
This commit is contained in:
+9
-1
@@ -786,6 +786,7 @@ class UartMonitorWindow(ctk.CTkToplevel):
|
||||
master: ctk.CTk | ctk.CTkToplevel,
|
||||
port: str,
|
||||
baudrate: int = 115200,
|
||||
on_log: Callable[[str], None] | None = None,
|
||||
) -> None:
|
||||
"""Initialize the UART monitor window.
|
||||
|
||||
@@ -793,6 +794,7 @@ class UartMonitorWindow(ctk.CTkToplevel):
|
||||
master: Parent window (MainWindow).
|
||||
port: Serial port device path (e.g., '/dev/ttyUSB0').
|
||||
baudrate: Baud rate for serial communication.
|
||||
on_log: Optional callback to forward parsed events to main log.
|
||||
"""
|
||||
super().__init__(master)
|
||||
self.title("UART Monitor")
|
||||
@@ -800,6 +802,8 @@ class UartMonitorWindow(ctk.CTkToplevel):
|
||||
self.minsize(480, 360)
|
||||
self.protocol("WM_DELETE_WINDOW", self._on_close)
|
||||
|
||||
self._on_log = on_log
|
||||
|
||||
self._port = port
|
||||
self._baudrate = baudrate
|
||||
self._monitor: UartMonitor | None = None
|
||||
@@ -996,7 +1000,11 @@ class UartMonitorWindow(ctk.CTkToplevel):
|
||||
if info.version:
|
||||
parts.append(f"Ver={info.version}")
|
||||
if parts:
|
||||
self.after(0, lambda: self._log(f"[BOOT] {' '.join(parts)}\n"))
|
||||
msg = f"[UART] {' '.join(parts)}"
|
||||
self.after(0, lambda: self._log(f"{msg}\n"))
|
||||
# Forward to main window log
|
||||
if self._on_log:
|
||||
self.after(0, lambda: self._on_log(msg))
|
||||
|
||||
def _on_error(self, error: str) -> None:
|
||||
self.after(0, lambda: self._log_error(error))
|
||||
|
||||
Reference in New Issue
Block a user