Files

1.4 KiB
Raw Blame History

本模块为独立的辅助脚本集,按功能分为四层:

  • 固件与设备操作层:flash_gd32.py 通过 HTTP 把 Intel HEX 展平 BIN 并经由 ESP32 OTA 中继写入 GD32,轮询 /system/status 确认 GD32_COMPLETE 后写台账 _last_gd32_sha.txt;build_mem.bat / cpu_sample.ps1 / wv2_roles.ps1 分别负责 IDF 构建与 Windows 进程采样。
  • ECAT 数据采集与诊断层:rec_ecat_slots.py 以固定频率轮询服务 /api/motor/state,去重落盘到 CSV(M/F/H 三类行),作为后续分析的唯一输入;probe_ecat_slot_atomicity.py 在此基础上做同一 seq 重复读的撕裂判定;probe_ecat_vs_wifi.py 将 ECAT 帧与 WiFi 二进制 /motor/state?bin=1 对照,逐字节验证一致性;anal_ecat_jumps.py 基于 p99 尺度+孤立尖峰形态检测撕裂,并提供 --selftest 注入混合帧的灵敏度自检。
  • 服务端行为验证层:test_app_lease.py 通过 sys.path.insert 直接 import esp32_server,用假 _ecat_post/_ecat_find_port 启动真实 HTTP 服务,模拟 WS 租约建立/Grace 重连/进程退出等场景断言 EtherCAT 循环启停;Python 版的浏览器 E2E 用例由对应 .mjs 借助 CDP (ws://127.0.0.1:9333) 操控 WebView 页面执行断言。
  • 依赖方向单向向外:所有脚本只读本地文件与服务 HTTP API,不反向修改业务代码;采集与分析脚本之间通过固定 CSV 格式(ecat_slots_raw.csv)解耦。