Files
App/README.md
HiepLM 4054d81aaf
Some checks failed
Test / test (push) Has been cancelled
add function create dashboard
2026-06-17 10:19:14 +07:00

127 lines
3.0 KiB
Markdown

# Robot App Web (Test3)
Chức năng:
- Đăng ký danh sách cảm biến LiDAR (tên, ip, port)
- Đăng ký IMU (tên, frame_id, topic, nguồn) và pose trên robot
- Kéo thả icon LiDAR/IMU trên canvas để set vị trí (robot frame)
- Nhiều layout — mỗi layout lưu tại `data/models/{id}.json`; catalog trong `data/state.json`
## Build
```bash
cd /home/robotics/RD/Test3
cmake -S . -B build
cmake --build build -j
```
## Run
Chạy mặc định port 8080, phục vụ static từ `www/`, dữ liệu ở `data/state.json`:
```bash
./build/lidar_manager_web
```
Hoặc chỉ định:
```bash
./build/lidar_manager_web 8080 ./www ./data/state.json
```
Mở trình duyệt: `http://localhost:8080/`
### Đăng nhập (Signing in — MiR §2.1)
Trang web **bắt buộc đăng nhập**. Hai tab: tên/mật khẩu hoặc **Mã PIN** (keypad 4 số). Tài khoản mặc định (`data/auth.json`):
| User | Password | Nhóm |
|------|----------|------|
| Admin | admin | Administrators (full quyền) |
| User | user | Users (dashboard write, còn lại read) |
| Distributor | distributor | Distributors (full quyền) |
PIN 4 chữ số chỉ dùng được với user thuộc nhóm **Users** sau khi admin gán PIN (`PUT /api/users/:id`).
Tắt auth cho dev/test: `LM_AUTH_DISABLED=1 ./build/lidar_manager_web …`
Tài liệu đầy đủ: [`docs/Reference_guide.md` §2.1](docs/Reference_guide.md#21-signing-in).
## Docker (giới hạn 2 CPU, 4 GB RAM)
Mô phỏng cấu hình controller tối thiểu SICK (Dual-Core, 4 GB) trên máy dev:
```bash
cd /home/robotics/RD/Test3
./scripts/lm.sh docker up
# hoặc: sudo docker compose up --build -d
```
Kiểm tra giới hạn:
```bash
./scripts/lm.sh docker stats
```
Dừng:
```bash
./scripts/lm.sh docker down
```
Dữ liệu layout vẫn lưu tại `data/` trên host (volume mount).
Kiểm tra tài nguyên trong container:
```bash
# Vào shell container
./scripts/lm.sh docker shell
# Trong container, thử:
htop # CPU/RAM (q để thoát)
free -h # RAM
nproc # số CPU nhìn thấy
ps aux # process
cat /proc/meminfo | head
```
```bash
./scripts/lm.sh docker htop
./scripts/lm.sh docker stats
```
## Test tự động
Chạy toàn bộ: unit C++ (GTest), API smoke (`curl`), pytest integration.
```bash
cd /home/robotics/RD/Test3
chmod +x scripts/lm.sh scripts/test/*.sh
./scripts/lm.sh test run
```
Chỉ unit test C++:
```bash
cmake -S . -B build -DBUILD_TESTING=ON
cmake --build build -j
ctest --test-dir build --output-on-failure
```
Chỉ API smoke (server đang chạy, dùng fixture `tests/fixtures/data/`):
```bash
./build/lidar_manager_web 18080 www tests/fixtures/data/state.json &
./scripts/lm.sh test smoke http://127.0.0.1:18080
```
Fixture mission id mặc định: `testmission00001` (`tests/fixtures/data/missions.json`).
Benchmark hiệu năng trong container (cần `docker compose up -d`):
```bash
./scripts/lm.sh docker bench
# hoặc chỉ HTTP: ./scripts/lm.sh bench http
```
CI: GitHub Actions workflow `.github/workflows/test.yml`.