wasm-port task 主循环完全对标推进索引
目标
本目录用于推进 wasm-port 对标 LinuxCNC linuxcnc/src/emc/task/emctaskmain.cc 的 task 主循环,重点补齐每个 task 周期读取 motion 状态并驱动 task 状态机的结构。
当前基线结论:
- 上游 LinuxCNC task 主循环每周期执行 command read、
emcTaskPlan()、emcTaskExecute()、emcMotionUpdate(&emcStatus->motion)、subordinate sync、emcTaskUpdate()、status write。 wasm-port当前 task-HAL runtime 已闭合本目录任务矩阵:lctask_run_cycles()具备 command read、plan、execute、motion update、subordinate sync、task update、status write 的 LinuxCNC 式周期骨架。- task status 已由周期内
LcmotStatusSnapshot和StandaloneEmcStatus导出,lctask_read_status_json()只读取最后一次 status write,不推进或重新同步 motion。 - RUN 文件主路径已由 staged program 的 plan read/command/execute、
emccanon.cccommand envelope 和taskintf.ccmotion issue 驱动;host JSON motion plan 仅保留为 timed-plan 兼容/调试入口。 - vendored/upstream
emctask.cc、taskintf.cc、emccanon.cc的窄子集已按 T-033 到 T-046 分阶段接入;完整emctaskmain.cc/NML/native HAL/native motion process topology 仍未 promoted。
文档索引
| 文件 | 用途 |
|---|---|
01-项目功能内容.md |
定义本阶段要实现的功能边界和 LinuxCNC 对标范围。 |
02-项目程序开发详细步骤.md |
拆解从当前 minimal adapter 到 LinuxCNC task 主循环对标的开发步骤。 |
03-推进台账.md |
记录每轮做了什么、改了哪些文件、验证了什么、下一步是什么。 |
04-任务矩阵.md |
维护任务编号、状态、验收标准,防止重复做和口径漂移。 |
05-验收证据.md |
记录命令、报告、截图、页面、job/report id 等证据。 |
06-决策记录.md |
记录关键技术决策和理由,后续变更避免重复争论。 |
07-emctaskmain周期对标蓝图.md |
把上游 emctaskmain.cc 周期拆成 WASM 可执行阶段、字段映射和验收要求。 |
08-上游task源码替换分解.md |
拆解 emctask.cc、taskintf.cc、emccanon.cc 的函数族迁移顺序、shim 和验收。 |
09-emc_nml复用评估.md |
记录完整 emc_nml.hh 直接复用评估、依赖清单和当前窄 status 容器路线。 |
10-taskintf-usrmot-shim设计.md |
设计 taskintf.cc usrmot shim 到 lcmot_* 的 command/status/config/error 映射。 |
11-WASM核心状态机边界与后续完善路线.md |
固定 WASM/C++、JS/SDK、JSON 的职责边界,并给出后续完善 WASM 核心状态机的任务拆分规则。 |
12-status-json-LinuxCNC对标方案.md |
对标 LinuxCNC EMC_STAT / status buffer,定义 WASM 中 StandaloneEmcStatus -> status JSON 的字段映射、禁止链路和后续实施批次。 |
使用方式
- 每轮实施前先看
04-任务矩阵.md,选择待办或进行中任务。 - 修改代码或文档后同步更新
03-推进台账.md。 - 每条任务完成前,把可复现命令和关键输出写入
05-验收证据.md。 - 如改变迁移路线、边界或验收口径,先更新
06-决策记录.md。 - 涉及 task 主循环实现时,必须同步查看
07-emctaskmain周期对标蓝图.md。 - 涉及上游 task 源码替换时,必须同步查看
08-上游task源码替换分解.md。 - 涉及完整
emc_nml.hh复用或 status 容器时,必须同步查看09-emc_nml复用评估.md。 - 涉及
taskintf.ccmotion bridge 或 usrmot shim 时,必须同步查看10-taskintf-usrmot-shim设计.md。 - 涉及 WASM 程序核心状态机、JS/SDK 边界或 status JSON 时,必须同步查看
11-WASM核心状态机边界与后续完善路线.md。 - 涉及 status JSON 字段、SDK status API 或 UI status 展示时,必须同步查看
12-status-json-LinuxCNC对标方案.md。 - 每轮结束后遵守仓库
AGENTS.md,追加中文执行日志。
当前闭合状态
04-任务矩阵.md 当前所有任务均为完成,下一条优先任务为“无”。后续继续扩展对标范围时,先在矩阵中新增任务编号、验收标准和 gate,再实施代码或文档变更。
后续 WASM 程序完善的默认方向是:WASM/C++ 承载核心状态机和 LinuxCNC 语义,JS/SDK 承担加载、命令传递、状态读取和文件/OPFS 边界,JSON 仅作为 host/browser 通信格式,不作为核心状态机事实源。