Files
DCU_DesktopController/CHANGELOG.md
T
cbb 43d42ad891 docs: 新增 CHANGELOG, 记录 2026-09-05 三项变更
app 窗口租约(关窗自动停从站)、首页 GD32 CPU 负载率指标、PDO 周期
缓存迁移与测试对齐; 面向使用者的视角, 实现细节指向 README 与提交。
2026-09-05 19:58:50 +08:00

50 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 更新日志 (CHANGELOG)
按日期倒序记录面向使用者的变更;实现细节见 README 对应章节与提交说明。
## 2026-09-05
### 新增:app 窗口租约 —— 关掉 app 必停从站
- 每个 app 页面与本地页面服务器保持一条 WebSocket(`js/common/app-lease.js` →
`GET /ws/app-lease`);**最后一条**租约断开(所有 app 窗口关闭)后,服务端
等 3s 宽限自动调后端 `/api/op/stop`:停 PDO 循环、从站退回 INIT。
覆盖两种 native `--parent-pid` 看门狗够不着的离开方式:浏览器模式关窗后
服务还活着、窗口模式复用现成 ecat_native 实例。
- 断开感知靠 TCP FIN / Close 帧回显而非心跳计时器,后台标签页定时器节流
不会误停;3s 宽限吸收 F5 刷新的断连→重连;外壳内切标签不停(外壳自己
持有租约);只停"本服务经代理确认跑过"的循环,ecat 控制台(:8090)
手工起的循环不受影响;服务进程退出路径(`/api/shutdown`、Ctrl+C)同步补停。
- 接入点:`tabs.html`(外壳)与 `pages/motor.html`(单独打开电机页)。
- 新增自测:`python scripts/test_app_lease.py`(服务端逻辑,裸 TCP 全路径)
+ `node scripts/test_app_lease_e2e.mjs`(真 Edge headless + 假后端 8091,
不碰真总线)。
- 代价说明:每次重开 app 都要重走 PREOP→SAFEOP→OP,有概率撞 SSC 邮箱楔死
——这是"关闭必须停"这个要求本身的代价。设计细节见 README"关掉 app 必停
从站"一节。
### 新增:首页运行指标卡显示 GD32 CPU 负载率
- 新指标 `GD32 负载`(`#mGd32Load`):DCU_APP 固件 ≥ 1.5.61 把"中断 +
非延迟处理段"占用率写进 EtherCAT 输入 PDO 段 5(1s 滚动窗口,0.1%
分辨率),前端经 `/ecat/api/app/load` 轮询显示(`js/ota/ecat_load.js`)。
- 与 `/system/status` 轮询完全独立:ESP32 离线互不影响;失败静默退避
(1s→5s→30s),不触发页面服务器的自动拉起刷屏;≥85% 琥珀色提示。
- 无效语义(显示 `--`):ECAT 总线未打开 / 循环未跑 / 固件 < 1.5.61 /
负载值超 3s 未滚动(PDO 循环已停)。
### 变更:PDO 周期缓存一次性迁移,恢复默认改为"跟随后端"
- 存量 localStorage `dcu_ecat_period_ms=4`(Python 时代默认,检查脚本
收尾也会写入)会在下次启动时自动清除一次(迁移标记
`dcu_ecat_period_mig`),避免把 native 已调小的总线默认周期压回 4ms;
迁移后用户显式设 4 会被原样保留。
- `setPdoPeriod` 的"恢复默认"从 `setPdoPeriod(4)` 改为删除该键、跟随后端
默认(固件修好前别低于 1ms)。
### 修复:电机传输测试对齐生产代码的 `pcore_mask`
- 自旋节拍钉核显示此前已由"钉 E 核"改为"钉 P 核"并改用快照字段
`pcore_mask`,`scripts/test_motor_transport.mjs` 仍是旧字段与旧措辞,
本次对齐(含跨 32 位掩码、不连续核号区间等用例)。