feat: UART boot wait, serial validation, xsct logging, layout fix

Config:
- Add boot_wait_delay (default 10s) for post-reboot wait time

Layout:
- Restore row weights for proportional scaling when maximized
- CTkScrollableFrame handles overflow when window is small

Step 3:
- Log xsct/vivado tool output (last 20 lines per result)
  for detailed diagnostics

Step 4:
- UART boot wait: monitor for IP/version via UART after reboot
- If UART unavailable, fall back to config.boot_wait_delay
- Reduces unnecessary wait time when boot is detected early

Serial:
- Real-time port validation on selection change (CTkComboBox command)
- Persistent UART unavailable warning until valid port selected
- Auto-restart UART monitor on port switch
- Graceful cross-platform handling
This commit is contained in:
2026-06-11 14:44:58 +08:00
parent 9b07a4d5ca
commit f6cf5de96f
6 changed files with 406 additions and 108 deletions
+3
View File
@@ -33,6 +33,7 @@ DEFAULT_CONFIG: dict[str, Any] = {
"ping_count": 3,
"uart_delay": 3,
"inter_step_delay": 2,
"boot_wait_delay": 10,
"step_timeouts": {
"check_env": 30,
"flash_erase": 120,
@@ -70,6 +71,7 @@ class Config:
ping_count: int = 3
uart_delay: int = 3
inter_step_delay: int = 2
boot_wait_delay: int = 10
step_timeouts: dict[str, int] = field(default_factory=lambda: {})
# Internal: path to the config file on disk
@@ -178,6 +180,7 @@ class Config:
"ping_count": self.ping_count,
"uart_delay": self.uart_delay,
"inter_step_delay": self.inter_step_delay,
"boot_wait_delay": self.boot_wait_delay,
"step_timeouts": self.step_timeouts,
}
return data