Validate AXIS task state flow

This commit is contained in:
wangdequan
2026-07-09 18:12:01 -04:00
parent f99ba2bbe8
commit f4b9911d45
57 changed files with 195248 additions and 647 deletions

View File

@@ -21,7 +21,7 @@
3. `lctask_read_status_json()` 只导出最后一次 status write不推进 cycle、不重新读取 motion、不触发 command 执行。
4. 核心状态保存在 C/C++ 结构体、枚举、队列和周期函数中;当前集中容器为 `StandaloneEmcStatus`
5. motion 状态通过 `LcmotStatusSnapshot` 在 task 周期内读入,再映射到 `StandaloneEmcStatus.motion`
6. JSON 字段可以兼容旧 SDK/UI但必须从核心结构体导出不能成为新的事实源
6. status JSON 只通过 `emcStatus` 暴露 task/motion/io/top 状态;旧顶层状态字段不再作为兼容视图输出
7. 若 LinuxCNC 上游源码已有对应语义,优先接入 vendored source 或窄 shim不在 JS/JSON 中重写。
## 当前事实源
@@ -34,7 +34,7 @@
- RUN 主路径staged program -> `emcTaskPlanRead()` -> `emcTaskPlanCommand()` -> `emcTaskPlanExecute()` -> `emccanon.cc` command envelope -> `taskintf.cc` motion issue。
- JSON status`statusSource=StandaloneEmcStatus` 的外部导出视图。
status JSON 的 LinuxCNC `EMC_STAT` 字段映射、兼容策略和后续 SJ 批次见 `12-status-json-LinuxCNC对标方案.md`
status JSON 的 LinuxCNC `EMC_STAT` 字段映射、旧字段收口策略和后续 SJ 批次见 `12-status-json-LinuxCNC对标方案.md`
当前 `12-status-json-LinuxCNC对标方案.md` 中 SJ-1 到 SJ-5 已补入 `04-任务矩阵.md` 的 T-051 到 T-055并已闭合。后续不得再只用“后续路线”描述实际任务凡是出现可执行实现项必须同步进入任务矩阵。
@@ -57,6 +57,7 @@ status JSON 的 LinuxCNC `EMC_STAT` 字段映射、兼容策略和后续 SJ 批
- T-053 / SJ-3`emcStatus.motion.axis[]``joint[]`
- T-054 / SJ-4`emcStatus.io.aux/tool/coolant` 窄边界。
- T-055 / SJ-5`tools/verify_task_status_json_contract.sh`
- T-056源头取消旧 status 字段兼容输出。
## 代码修改检查清单
@@ -65,7 +66,7 @@ status JSON 的 LinuxCNC `EMC_STAT` 字段映射、兼容策略和后续 SJ 批
- 新状态是否有 C/C++ 结构体字段,而不是只新增 JSON 字段。
- 新 command 是否先入队,再由 `lctask_run_cycles()` 消费。
- 新 status JSON 字段是否从 `StandaloneEmcStatus` 或明确的 C/C++ status buffer 导出。
- JS/SDK 是否只做边界包装和兼容 API
- JS/SDK 是否只做边界包装,不重新引入旧 status 字段兼容读取
- 是否新增或更新 `tools/verify_task_*` gate。
- 是否同步更新 `03-推进台账.md``05-验收证据.md``06-决策记录.md`