dd442f0f22
完成 Rust/egui 上位机主流程:BLE/USB 传输、协议编解码、控制/实时/统计/CSV、UI 与验证脚本。\n\n保留真实设备联调和长稳实测清单,避免把未验证的硬件结果当成交付完成。
129 lines
3.5 KiB
Markdown
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:
|
|
|