update UI, version

This commit is contained in:
2026-03-09 19:33:00 +07:00
parent 19febeaf3f
commit 042c50536c
4 changed files with 501 additions and 321 deletions

View File

@@ -28,7 +28,7 @@ flowchart TD
S1 --> F1{"Lọc bỏ:\n• Local IP\n• Gateway IP\n• 192.168.11.102"}
F1 --> C1{Đủ số lượng\nthiết bị?}
C1 -->|Có| P2["── Phase 2: Flash ──"]
C1 -->|Chưa đủ| C2{Đã scan\n≥ 20 lần?}
C1 -->|Chưa đủ| C2{Đã scan\n≥ 15 lần?}
C2 -->|Chưa| W1["Chờ 5 giây\n→ scan lại"]
W1 --> S1
C2 -->|Rồi| T1["⚠️ scan_timeout\nThông báo lỗi"]
@@ -54,7 +54,7 @@ flowchart TD
| Hằng số | Giá trị | Mô tả |
| ------------------- | ------- | ------------------------------------------------------ |
| `MAX_FLASH_RETRIES` | 3 | Số lần retry tối đa khi nạp FW thất bại cho 1 thiết bị |
| `MAX_SCAN_ROUNDS` | 20 | Số lần scan LAN tối đa trước khi báo timeout |
| `MAX_SCAN_ROUNDS` | 15 | Số lần scan LAN tối đa trước khi báo timeout |
| Scan interval | 5 giây | Khoảng cách giữa các lần scan (check stop mỗi 0.5s) |
| Retry delay | 2 giây | Thời gian chờ trước khi retry nạp FW |
@@ -101,12 +101,12 @@ AutoFlashWorker(
### 6.1. Phase 1 — Scan Mạng LAN
```
Lần 1/20 → scan_network("192.168.11.0/24")
Lần 1/15 → scan_network("192.168.11.0/24")
→ Lọc bỏ: local_ip, gateway_ip, 192.168.11.102
→ Tìm thấy 3/5 thiết bị → chưa đủ
→ Chờ 5 giây...
Lần 2/20 → scan_network(...)
Lần 2/15 → scan_network(...)
→ Tìm thấy 5/5 thiết bị → ĐỦ!
→ Chuyển sang Phase 2
```
@@ -119,7 +119,7 @@ Lần 2/20 → scan_network(...)
**Timeout:**
- Sau **20 lần scan** mà chưa đủ thiết bị → emit `scan_timeout`
- Sau **15 lần scan** mà chưa đủ thiết bị → emit `scan_timeout`
- UI hiện popup cảnh báo kèm gợi ý kiểm tra:
- Thiết bị đã bật và kết nối mạng chưa
- Dải mạng có đúng không
@@ -176,7 +176,7 @@ Mỗi thiết bị được nạp trong `ThreadPoolExecutor` (chạy song song):
├──────────────────────────────────────────┤
│ 📝 Log (thu gọn được) │
│ 🚀 Bắt đầu chế độ tự động hóa nạp FW...│
│ 🔍 Scan lần 1/20... │
│ 🔍 Scan lần 1/15... │
│ Tìm thấy 5/5 thiết bị │
│ ✅ Đủ 5 thiết bị! Bắt đầu nạp FW... │
│ ⚠️ [192.168.11.105] Lần 1 thất bại... │
@@ -228,7 +228,7 @@ Kết quả nạp được lưu ở **2 nơi** với cùng format:
| Tình huống | Hành vi |
| ------------------------------ | --------------------------------------------------- |
| Scan exception (network error) | Log lỗi, chờ 3s, scan lại (đếm vào MAX_SCAN_ROUNDS) |
| Scan 20 lần chưa đủ thiết bị | Emit `scan_timeout`, hiện popup cảnh báo, dừng |
| Scan 15 lần chưa đủ thiết bị | Emit `scan_timeout`, hiện popup cảnh báo, dừng |
| Flash thất bại lần 1-2 | Log cảnh báo, chờ 2s, retry tự động |
| Flash thất bại sau 3 lần retry | Log lỗi, đánh dấu ❌, tiếp tục device tiếp theo |
| User nhấn DỪNG | Set `_stop_flag`, dừng scan/flash, emit `stopped` |
@@ -255,7 +255,7 @@ Nhấn nút **"🤖 Tự động hóa nạp FW"** ở cuối cửa sổ chính.
Nhấn **"▶ XÁC NHẬN & BẮT ĐẦU"** → xác nhận popup → hệ thống tự động:
1. Scan mạng liên tục cho đến khi đủ thiết bị (tối đa 20 lần)
1. Scan mạng liên tục cho đến khi đủ thiết bị (tối đa 15 lần)
2. Nạp FW song song cho tất cả thiết bị tìm được
3. Tự động retry nếu thiết bị nào bị lỗi (tối đa 3 lần)
4. Hiện thông báo tổng hợp khi hoàn thành