fix radar web
This commit is contained in:
1 parent
f5b4ef4e90
commit
8f9a7bae62
3 files changed
+139
-39
No files matched your search
+46
-14
@@ -249,28 +249,60 @@ journalctl -u radar-web -f # Xem log realtime
|
||||
|
||||
---
|
||||
|
||||
## 7. Troubleshooting
|
||||
## 7. Troubleshooting — Kiểm tra lỗi nhanh
|
||||
|
||||
### Không mở được trang web
|
||||
### 7.1 Quick check trong 60 giây
|
||||
Nếu backend log "Đã kết nối WebSocket tới ESP32" nhưng web không thấy dữ liệu, làm theo thứ tự:
|
||||
|
||||
1. **Mở DevTools (F12) → tab Console**:
|
||||
- Gõ: `await fetch('/api/state').then(r=>r.json()).then(d=>console.log(d))`
|
||||
- Kết quả đúng phải là object có `zones` và `targets` (3 phần tử mỗi mảng)
|
||||
- Nếu nhận được object: WebSocket frontend đang có vấn đề (hãy xem log có chữ `[Radar] WebSocket closed?`)
|
||||
- Nếu không nhận được: backend có vấn đề (xem log terminal backend)
|
||||
|
||||
2. **Xem 2 chip trạng thái trên header (góc trên phải)**:
|
||||
- `ESP32: Đã kết nối` (xanh) — backend ↔ ESP32 OK
|
||||
- `WS: Đã kết nối` (xanh) — trình duyệt ↔ backend OK
|
||||
- Nếu WS màu đỏ: mở DevTools → Network → WS → chọn `/ws` → xem "Messages" có dòng nào không.
|
||||
|
||||
3. **Hiển thị gì phải có ngay cả khi parser ESP32 là stub?**
|
||||
- Grid, vòng tròn khoảng cách, radar (điểm đỏ dưới cùng), **3 zones theo mặc định phải hiện rõ ràng**
|
||||
- Chip `ESP32` phải xanh, `Frames` trong Thống kê = 0 là bình thường (parser stub)
|
||||
- **Target không thấy là Bình thường** nếu parser chưa implement — nhưng zones & grid PHẢI hiện.
|
||||
|
||||
---
|
||||
|
||||
### 7.2 Không mở được trang web
|
||||
1. **Ping Orange Pi**: `ping <OrangePi_IP>`
|
||||
2. **Kiểm tra port đang mở**: `ss -tulpn | grep 8000`
|
||||
3. **Tường lửa?** `sudo ufw allow 8000/tcp` hoặc tạm thời `sudo ufw disable`
|
||||
2. **Kiểm tra port đang mở**: `ss -tulpn | grep 9000` (thay `9000` bằng port bạn dùng)
|
||||
3. **Tường lửa?** `sudo ufw allow 9000/tcp` hoặc tạm thời `sudo ufw disable`
|
||||
4. **Visualizer đang chạy?** `ps aux | grep visualizer`
|
||||
|
||||
### Không thấy dữ liệu radar (không có target)
|
||||
1. **Kiểm tra trạng thái ESP32** (chip màu đỏ/xanh trên cùng bên phải trang web)
|
||||
2. **Ping ESP32**: `ping 192.168.1.100`
|
||||
3. **Test REST ESP32**: `curl http://192.168.1.100/status` → phải có JSON `{"status":"ok",...}`
|
||||
4. **ESP32 đang DIAGNOSTIC_MODE 1?** → phải là `0` mới có WiFi/WebSocket
|
||||
5. **Parser ESP32 vẫn là stub?** → Target luôn `INVALID` nếu parser chưa triển khai (thông báo ở README gốc)
|
||||
---
|
||||
|
||||
### Tốc độ cập nhật chậm
|
||||
### 7.3 Không thấy dữ liệu radar / không có target
|
||||
1. **Kiểm tra 2 chip trạng thái** (section 7.1)
|
||||
2. **Ping ESP32**: `ping 192.168.88.32` (thay IP của bạn)
|
||||
3. **Test REST ESP32**: `curl http://192.168.88.32/status` → phải trả JSON `{"status":"ok",...}`
|
||||
4. **Test state từ backend (ngoài trình duyệt)**: `curl http://<OrangePi_IP>:9000/api/state` → object JSON 2 mảng zones + targets
|
||||
5. **ESP32 đang `DIAGNOSTIC_MODE 1`?** → phải là `0` mới có WiFi/WebSocket
|
||||
6. **Parser ESP32 vẫn là stub?** → **Target luôn = 0 / INVALID là BÌNH THƯỜNG** cho đến khi bạn implement `tryParseFrame()` thật trong `LD2453Parser.cpp`. Grid + zones vẫn phải hiện.
|
||||
|
||||
---
|
||||
|
||||
### 7.4 Tốc độ cập nhật chậm
|
||||
- Mặc định radar LD2453 gửi ~2 frame/giây. Đó là giới hạn phần cứng.
|
||||
- **Bảo đảm Orange Pi gửi state liên tục**: heartbeat 1 giây luôn gửi ngay cả khi ESP32 không gửi frame mới.
|
||||
- Đảm bảo Orange Pi và ESP32 có tín hiệu WiFi tốt.
|
||||
|
||||
### WebSocket không kết nối (trình duyệt báo lỗi)
|
||||
- Mở DevTools (F12) → Console xem lỗi chi tiết
|
||||
- Kiểm tra trình duyệt truy cập đúng `http://<IP>:8000` (không phải `https://`)
|
||||
---
|
||||
|
||||
### 7.5 WebSocket không kết nối (trình duyệt báo lỗi)
|
||||
- Mở DevTools (F12) → **Console** sẽ log rõ ràng: `[Radar] WebSocket closed (code=...)`
|
||||
- `code=1006`: mạng bị ngắt giữa chừng → tự động reconnect 2s sau
|
||||
- `code=403/404`: mở sai port hoặc sai path
|
||||
- Kiểm tra trình duyệt truy cập đúng `http://<IP>:9000` (**KHÔNG** `https://`)
|
||||
- Nếu mở trên **mobile cùng WiFi** mà không được: tắt "VPN / Private DNS / Use random MAC" trên điện thoại thử lại
|
||||
- Nếu dùng reverse proxy (Caddy/Nginx): cấu hình WebSocket upgrade (header `Upgrade: websocket`)
|
||||
|
||||
---
|
||||
|
||||
Reference in new issue
Block a user