update UI, version
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user