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

3.5 KiB

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: