Validate AXIS task state flow
This commit is contained in:
@@ -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`。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user