Files
YRobot_Panel/docs/hardware-validation.md
T
pNexus dd442f0f22 feat(yrobot-panel): 实现电机控制上位机
完成 Rust/egui 上位机主流程:BLE/USB 传输、协议编解码、控制/实时/统计/CSV、UI 与验证脚本。\n\n保留真实设备联调和长稳实测清单,避免把未验证的硬件结果当成交付完成。
2026-06-12 17:46:29 +08:00

129 lines
3.5 KiB
Markdown

# Hardware Validation Checklist
Use this checklist with a real YRobot motor and USB Dongle before marking the project fully complete.
## Environment
- Windows 10+ machine.
- Built executable: `target/x86_64-pc-windows-gnu/release/yrobot-motor-control-panel.exe`.
- One YRobot BLE motor.
- One USB Dongle and matching serial driver, if USB mode is being validated.
Record:
- App version/build time:
- Windows version:
- Motor identifier:
- USB Dongle port:
- Tester:
- Date/time:
## BLE Direct Mode
1. Start the app and select `BLE`.
2. Select `Left`, `Right`, or `Neutral`.
3. Click `Scan / Refresh`.
4. Confirm target device appears with name/ref/RSSI and preferred marker when applicable.
5. Click `Stop Scan` and confirm discovery stops.
6. Select the device and click `Connect BLE`.
7. Confirm status becomes `Connected` only after BLE notify is ready.
8. Keep the session open for at least 30 seconds and confirm no heartbeat error appears.
9. Send:
- Query Current
- Query Mode
- Set Params
- Enable Realtime
- Disable Realtime
10. Confirm TX events and RX events appear in the event log.
11. Confirm realtime samples appear in chart/status when debug stream is enabled.
12. Click `Disconnect` and confirm connection closes and heartbeat stops.
Pass criteria:
- No app crash.
- No stale scanning after stop/disconnect.
- Commands are logged.
- Realtime data parses without blocking valid fields.
- Latest error is empty or explains any hardware/protocol issue.
## USB Dongle Mode
1. Start the app and select `USB Dongle`.
2. Refresh ports and select the Dongle serial port.
3. Click `Open USB`.
4. Confirm status becomes `Connected` with `115200 8N1`.
5. Keep the session open for at least 30 seconds and confirm heartbeat starts only after serial open.
6. Send:
- Query Current
- Query Mode
- Set Params
- Enable Realtime
- Disable Realtime
7. Confirm USB RX events include `DEV`, `LEN`, `seq_id`, and `dt_ms`.
8. Confirm USB statistics show:
- seq gaps
- out-of-order count
- USB dt avg/max
- host interval avg/max
9. Disconnect and confirm serial resources are released.
Pass criteria:
- No app crash.
- Serial open failure is shown as a recoverable error.
- Downlink uses `DEV=0x31`.
- Uplink strips `seq_id`/`dt_ms` before motor parser.
- USB metadata is visible in event log/status/CSV.
## CSV Recording
1. Connect through BLE or USB.
2. Set a writable CSV path.
3. Start recording.
4. Enable realtime debug and collect at least 100 samples.
5. Stop recording.
6. Open the CSV and confirm it contains:
- timestamp
- connection mode
- target id
- side
- raw debug string
- parsed current/velocity/position/voltage/temperature
- USB `seq_id`/`dt_ms` for USB mode
7. Repeat with recording active, then disconnect. Confirm CSV is flushed and readable.
Pass criteria:
- CSV is not created before recording starts.
- CSV write errors are shown and recording stops.
- Session end closes the file cleanly.
## Stability
Run one session for at least 1 hour before release, and 8 hours for final acceptance.
Record every 15 minutes:
- sample count
- app memory usage
- latest error
- drop rate
- USB seq gaps/out-of-order, if USB mode
Pass criteria:
- UI remains responsive.
- Control, display, CSV, and statistics work concurrently.
- No obvious memory growth above 100 MB over the acceptance run.
- Disconnect closes scan/session/CSV resources.
## Result
- BLE Direct: Pass / Fail
- USB Dongle: Pass / Fail
- CSV Recording: Pass / Fail
- Stability: Pass / Fail
Notes: