3042 lines
99 KiB
Markdown
3042 lines
99 KiB
Markdown
# 05-验收证据
|
||
|
||
## 2026-07-08 10:18 EDT T-056 旧 status 字段源头收口
|
||
|
||
### 验收对象
|
||
|
||
`lctask_read_status_json()` 输出契约和直接消费 task status JSON 的 WASM/SDK/state matrix 测试。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && bash wasm-port/tools/build_task_hal_wasm.sh
|
||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||
node wasm-port/tests/wasm/node/verify_task_state_matrix.mjs
|
||
node wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
task_status_json_contract=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_hal_sdk_status_json_contract=ok
|
||
task_state_matrix=ok
|
||
task_status_json_contract_matrix=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_json_contract=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-056 验收通过。task status JSON 不再输出 `taskTopLevelStatus`、`rcsStatus`、顶层 `task`、`servoCycle`、顶层 `motionStatus`;测试读取路径均从 `emcStatus` 取值,并对旧字段做负向断言。
|
||
|
||
## 2026-07-08 09:30 EDT 目标文件 11/12 全部工作复核
|
||
|
||
### 验收对象
|
||
|
||
- `11-WASM核心状态机边界与后续完善路线.md`
|
||
- `12-status-json-LinuxCNC对标方案.md`
|
||
- T-051 到 T-055 / SJ-1 到 SJ-5 当前闭合状态。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_full_closure.sh
|
||
cd /home/mes123456/cnc_wams
|
||
git diff --check
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_full_closure.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
task_status_json_contract=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_state_matrix=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_standalone_emc_status_status=ok
|
||
task_no_json_motion_plan_main_path_status=ok
|
||
task_status_json_contract_status=ok
|
||
task_working_closure_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_full_closure_status=ok
|
||
```
|
||
|
||
`git diff --check`:无输出,以 0 退出。
|
||
|
||
### 结论
|
||
|
||
目标文件 `11` 和 `12` 当前定义的全部可执行工作已闭合。后续新增状态或 LinuxCNC 对标字段仍需先补入任务矩阵、验收标准和 gate。
|
||
|
||
## 2026-07-08 09:26 EDT working 全部工作闭合复核
|
||
|
||
### 验收对象
|
||
|
||
`/home/mes123456/cnc_wams/wasm-port/working` 当前全部任务闭合状态。
|
||
|
||
### 验收目标
|
||
|
||
- `04-任务矩阵.md` 中 T-001 到 T-055 均为完成。
|
||
- 当前推进指针为“下一条优先任务:无”。
|
||
- T-051 到 T-055 的 status JSON contract gate 已纳入 full closure。
|
||
- 全量闭合验证通过。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_full_closure.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_state_matrix=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_standalone_emc_status_status=ok
|
||
task_no_json_motion_plan_main_path_status=ok
|
||
task_status_json_contract_status=ok
|
||
task_working_closure_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_full_closure_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
`wasm-port/working` 全部工作闭合复核通过。后续新增对标项仍需先补入任务矩阵、验收标准和 gate,再实施代码或文档变更。
|
||
|
||
## 2026-07-08 09:12 EDT SJ-1 到 SJ-5 status JSON contract 验收
|
||
|
||
### 验收对象
|
||
|
||
T-051、T-052、T-053、T-054、T-055。
|
||
|
||
### 验收目标
|
||
|
||
- `emcStatus.motion.traj` 导出 LinuxCNC `EMC_TRAJ_STAT` 风格字段,并与兼容 `motionStatus` 同源。
|
||
- `emcStatus.task.currentLine/readLine/motionLine/callLevel` 从 `StandaloneEmcStatus` 导出,并与 `task` 兼容视图同源。
|
||
- `emcStatus.motion.axis[]` 和 `joint[]` 导出结构化数组,旧 `motionStatus.axis`、`joint0` 与其一致。
|
||
- `emcStatus.io.aux/tool/coolant` 显式表达 shim/unsupported 边界,readiness 不提升。
|
||
- `tools/verify_task_status_json_contract.sh` 纳入 full closure。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tools/verify_task_status_json_contract.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_sdk.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tools/verify_task_full_closure.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
构建:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
```
|
||
|
||
新增 contract gate:
|
||
|
||
```text
|
||
task_status_json_contract_runtime=ok
|
||
task_status_json_contract_schema=ok
|
||
task_status_json_contract=ok
|
||
task_status_json_contract_status_read_no_motion_json=ok
|
||
task_status_json_contract_sdk_no_motion_semantics=absent
|
||
task_status_json_contract_sdk_no_task_semantics=absent
|
||
task_status_json_contract_status=ok
|
||
```
|
||
|
||
回归 smoke:
|
||
|
||
```text
|
||
task_status_json_contract=ok
|
||
task_hal_sdk_status_json_contract=ok
|
||
task_status_json_contract_matrix=ok
|
||
```
|
||
|
||
全量闭合:
|
||
|
||
```text
|
||
task_status_json_contract_status=ok
|
||
task_working_closure_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_full_closure_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-051 到 T-055 验收通过。`status JSON` 新增字段均从 `StandaloneEmcStatus` 或同一 C/C++ status buffer 导出,JSON 仍是 host/browser 通信格式,不是 task/motion 事实源。
|
||
|
||
## 2026-07-08 09:00 EDT working 全部工作最终复核
|
||
|
||
### 验收对象
|
||
|
||
`/home/mes123456/cnc_wams/wasm-port/working` 当前全部任务闭合状态。
|
||
|
||
### 验收目标
|
||
|
||
- `04-任务矩阵.md` 无 `待办`、`进行中` 或 `阻塞` 任务行。
|
||
- README、台账、验收证据、决策记录与 T-007/T-046/T-047/T-048/T-049/T-050 当前闭合口径一致。
|
||
- task-HAL 全量闭合 gate 通过。
|
||
- 当前相关差异无 whitespace error。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_full_closure.sh
|
||
git diff --check -- working tools docs runtime tests
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_full_closure.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_state_matrix=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_standalone_emc_status_status=ok
|
||
task_no_json_motion_plan_main_path_status=ok
|
||
task_working_closure_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_full_closure_status=ok
|
||
```
|
||
|
||
`git diff --check -- working tools docs runtime tests`:无输出,以 0 退出。
|
||
|
||
### 结论
|
||
|
||
`wasm-port/working` 全部工作最终复核通过。当前矩阵闭合、全量 gate 通过,后续新增对标范围需先在任务矩阵新增任务编号、验收标准和 gate。
|
||
|
||
## 2026-07-08 08:55 EDT status JSON LinuxCNC 对标方案验收
|
||
|
||
### 验收对象
|
||
|
||
T-050。
|
||
|
||
### 验收目标
|
||
|
||
- `12-status-json-LinuxCNC对标方案.md` 存在。
|
||
- 方案明确 LinuxCNC `EMC_STAT` / status buffer 与 WASM `StandaloneEmcStatus -> status JSON` 的关系。
|
||
- README、功能内容、开发步骤、周期蓝图、核心状态机路线、任务矩阵、台账和决策记录均接入该方案。
|
||
- 既有 working closure gate 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_working_closure.sh
|
||
test -f working/12-status-json-LinuxCNC对标方案.md
|
||
git diff --check -- working
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_working_closure.sh`:
|
||
|
||
```text
|
||
task_working_closure_status=ok
|
||
```
|
||
|
||
`test -f working/12-status-json-LinuxCNC对标方案.md`:以 0 退出。
|
||
|
||
`git diff --check -- working`:无输出,以 0 退出。
|
||
|
||
### 结论
|
||
|
||
T-050 验收通过。status JSON 后续完善方案已固定:WASM/C++ status 容器是事实源,`emcStatus` 是新增 LinuxCNC 对标字段的 JSON 主对象,旧兼容字段只从同一 status buffer 导出。
|
||
|
||
## 2026-07-08 08:18 EDT WASM核心状态机边界文档验收
|
||
|
||
### 验收对象
|
||
|
||
本轮文档完善。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_working_closure.sh
|
||
git diff --check -- working
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_working_closure.sh`:
|
||
|
||
```text
|
||
task_working_closure_status=ok
|
||
```
|
||
|
||
`git diff --check -- working`:无输出,以 0 退出。
|
||
|
||
### 结论
|
||
|
||
文档已固定 WASM/C++、JS/SDK、JSON 的职责边界。后续实现时,核心状态机应继续进入 WASM/C++ 结构体、枚举、队列和周期函数;JSON 只作为外部通信格式。
|
||
|
||
## 2026-07-08 08:08 EDT task-HAL 全量闭合验证入口验收
|
||
|
||
### 验收对象
|
||
|
||
T-049。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `tools/verify_task_full_closure.sh` 存在且可执行。
|
||
- 该脚本能一次性运行 task-HAL build、WASM smoke、SDK smoke、state matrix、motion sync、T-007/T-046/T-047/T-048/docs/readiness gates。
|
||
- source reuse / compatibility 文档记录该 full closure gate。
|
||
- `verify_task_source_reuse_drift_docs.sh` 检查该 full closure gate 和 T-049 矩阵状态。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_full_closure.sh
|
||
git diff --check
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_source_reuse_drift_docs.sh`:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_source_full_closure_gate=ok
|
||
task_source_reuse_drift_docs_compat_full_closure_gate=ok
|
||
task_source_reuse_drift_docs_compat_full_closure=ok
|
||
task_source_reuse_drift_docs_matrix_t049_done=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_full_closure.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_state_matrix=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_standalone_emc_status_status=ok
|
||
task_no_json_motion_plan_main_path_status=ok
|
||
task_working_closure_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_full_closure_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-049 验收通过。task-HAL 对标工作已有统一全量闭合验证入口;后续可用 `./tools/verify_task_full_closure.sh` 一次性验证当前闭合状态。本轮不改变 runtime 行为。
|
||
|
||
## 2026-07-08 05:51 EDT working closure 全局文档 gate 验收
|
||
|
||
### 验收对象
|
||
|
||
T-048。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `verify_task_working_closure.sh` 已记录到 source reuse map。
|
||
- `verify_task_working_closure.sh` 已记录到 compatibility validation。
|
||
- `verify_task_source_reuse_drift_docs.sh` 会检查 working closure gate。
|
||
- 任务矩阵记录 T-048 已完成。
|
||
- T-047 working closure 和 T-007 StandaloneEmcStatus gate 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_working_closure.sh
|
||
./tools/verify_task_standalone_emc_status.sh
|
||
git diff --check
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_source_reuse_drift_docs.sh`:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_source_working_closure_gate=ok
|
||
task_source_reuse_drift_docs_compat_working_closure_gate=ok
|
||
task_source_reuse_drift_docs_compat_working_closure=ok
|
||
task_source_reuse_drift_docs_matrix_t048_done=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_working_closure_status=ok
|
||
task_standalone_emc_status_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-048 验收通过。working closure gate 已纳入 source reuse / compatibility 文档和总文档一致性 gate;后续文档 drift 会检查该收口 gate 是否仍被记录。本轮不改变 runtime 行为。
|
||
|
||
## 2026-07-08 05:46 EDT working closure 验收
|
||
|
||
### 验收对象
|
||
|
||
T-047。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- 任务矩阵所有任务均为完成。
|
||
- 当前推进指针为“无”。
|
||
- working README、功能内容和 NML 评估文档不再保留 T-007 完成前的过期口径。
|
||
- 新增 closure gate 能防止后续 working 索引与矩阵闭合状态漂移。
|
||
- T-007、文档一致性和 no-JSON 主路径 gate 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_working_closure.sh
|
||
./tools/verify_task_standalone_emc_status.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_no_json_motion_plan_main_path.sh
|
||
git diff --check
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_working_closure.sh`:
|
||
|
||
```text
|
||
task_working_closure_matrix_t007_done=ok
|
||
task_working_closure_matrix_t047_done=ok
|
||
task_working_closure_matrix_next_none=ok
|
||
task_working_closure_matrix_unclosed_tasks=absent
|
||
task_working_closure_readme_closed=ok
|
||
task_working_closure_readme_status_source=ok
|
||
task_working_closure_readme_no_json=ok
|
||
task_working_closure_functions_closed=ok
|
||
task_working_closure_functions_standalone_status=ok
|
||
task_working_closure_functions_readiness=ok
|
||
task_working_closure_nml_t007_done=ok
|
||
task_working_closure_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_standalone_emc_status_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_no_json_motion_plan_main_path_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-047 验收通过。working 索引与当前实现口径一致,任务矩阵无待办/进行中/阻塞项,下一条优先任务为“无”。本轮为文档和 gate 收口,不改变 runtime 行为。
|
||
|
||
## 2026-07-08 05:40 EDT StandaloneEmcStatus 验收
|
||
|
||
### 验收对象
|
||
|
||
T-007。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- task/motion/io/top 必需状态集中到 `StandaloneEmcStatus`。
|
||
- `write_status_snapshot()` 在写 status buffer 前同步该容器。
|
||
- JSON status 从该容器导出 `taskTopLevelStatus`、`rcsStatus`、`task`、`motionStatus` 和 `emcStatus`。
|
||
- WASM、SDK、state matrix 均验证 `emcStatus` 与兼容 JSON 字段一致。
|
||
- T-046 no-JSON 主路径、source reuse/drift 文档、readiness contract 和 motion sync 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tools/verify_task_standalone_emc_status.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_no_json_motion_plan_main_path.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
构建:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
```
|
||
|
||
`SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_top_level_rcs_status_aggregation=ok
|
||
standalone_emc_status_container=ok
|
||
task_hal_no_json_main_path_status=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_sdk.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_hal_sdk_status_snapshot=ok
|
||
task_hal_sdk_standalone_emc_status=ok
|
||
task_hal_timed_motion_plan_compat=ok
|
||
```
|
||
|
||
`node tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
standalone_emc_status_matrix=ok
|
||
```
|
||
|
||
`./tools/verify_task_standalone_emc_status.sh`:
|
||
|
||
```text
|
||
task_standalone_emc_status_wrapper_status_struct=ok
|
||
task_standalone_emc_status_wrapper_task_struct=ok
|
||
task_standalone_emc_status_wrapper_motion_struct=ok
|
||
task_standalone_emc_status_wrapper_io_struct=ok
|
||
task_standalone_emc_status_wrapper_sync=ok
|
||
task_standalone_emc_status_wasm_status=ok
|
||
task_standalone_emc_status_sdk_status=ok
|
||
task_standalone_emc_status_state_matrix_status=ok
|
||
task_standalone_emc_status_matrix_t007_done=ok
|
||
task_standalone_emc_status_matrix_next_none=ok
|
||
task_standalone_emc_status_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_no_json_motion_plan_main_path_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-007 验收通过。`StandaloneEmcStatus` 已作为当前阶段 `EMC_STAT` 等价容器集中管理 task/motion/io/top 必需字段,JSON status 从该容器导出并保持兼容字段一致。任务矩阵当前已全部闭合,readiness 仍未提升。
|
||
|
||
## 2026-07-08 05:28 EDT no-JSON 主 RUN 路径验收
|
||
|
||
### 验收对象
|
||
|
||
T-046。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- 主 `verify_task_hal_wasm.sh` smoke 不再调用 `lctask_load_program_motion_plan_json()`。
|
||
- staged program RUN 可通过 `emcTaskPlanRead()`、`emcTaskPlanCommand()`、`emcTaskPlanExecute()`、`emccanon.cc` command envelope 和 `taskintf.cc` motion issue 完成。
|
||
- 主状态保持 `motionPlanLoaded=false`、`planId=0`。
|
||
- `loadProgramMotionPlan()` 仍作为 timed motion plan 兼容/调试入口保留,且有单独验证。
|
||
- T-040/T-041/T-042/T-043/T-044/T-045、SDK、motion sync、readiness contract 和文档 gate 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tools/verify_task_no_json_motion_plan_main_path.sh
|
||
./tools/verify_task_emccanon_motion_output.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emctask_plan_read_execute.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
构建:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
```
|
||
|
||
`SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_runtime_smoke=ok
|
||
emctask_plan_read_execute_status=ok
|
||
emccanon_motion_output_status=ok
|
||
task_hal_no_json_main_path_status=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_sdk.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_hal_sdk_status_snapshot=ok
|
||
task_hal_timed_motion_plan_compat=ok
|
||
task_hal_comment_source_line_numbers=ok
|
||
```
|
||
|
||
`node tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
run_gate_staged_program_executes_without_json_plan=ok
|
||
run_gate_accepts_homed_open_plan=ok
|
||
run_gate_json_motion_plan_compat=ok
|
||
```
|
||
|
||
`./tools/verify_task_no_json_motion_plan_main_path.sh`:
|
||
|
||
```text
|
||
task_no_json_motion_plan_main_path_wasm_test_main_load_plan=absent
|
||
task_no_json_motion_plan_main_path_wasm_test_main_false=ok
|
||
task_no_json_motion_plan_main_path_wasm_test_plan_zero=ok
|
||
task_no_json_motion_plan_main_path_sdk_compat_call=ok
|
||
task_no_json_motion_plan_main_path_state_default_no_json=ok
|
||
task_no_json_motion_plan_main_path_matrix_t046_done=ok
|
||
task_no_json_motion_plan_main_path_matrix_next_t007=ok
|
||
task_no_json_motion_plan_main_path_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_emccanon_motion_output_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_emctask_plan_read_execute_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-046 验收通过。主 RUN 路径已从 JSON timed motion plan 预加载切换为 staged program plan read/execute + emccanon + taskintf;`loadProgramMotionPlan()` 仍保留为兼容/调试入口。readiness 仍保持未提升。
|
||
|
||
## 2026-07-08 05:06 EDT emccanon motion output/switchkins 验收
|
||
|
||
### 验收对象
|
||
|
||
T-045。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- motion output / wait command 已进入 `emccanon_wasm_subset` 的窄 command envelope。
|
||
- task-HAL runtime 可观测 `EMC_MOTION_SET_DOUT` / `EMC_MOTION_SET_AOUT` / `EMC_AUX_INPUT_WAIT` append 到 `interp_list` 的 evidence。
|
||
- M428/M429/M430 不再走 MDI 字符串 special-case,而是通过 canon `SET_AUX_OUTPUT_VALUE()` 到 taskintf AOUT 边界,仍保持 switchkins HAL 同步。
|
||
- T-040/T-041/T-042/T-043/T-044、taskintf、SDK、motion sync 和 readiness contract 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emccanon_motion_output.sh
|
||
./tools/verify_task_emccanon_spindle_tool.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emccanon_dwell_path_control.sh
|
||
./tools/verify_task_emccanon_straight_motion.sh
|
||
./tools/verify_task_emccanon_init_finish_unit.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_taskintf_jog_home_switchkins.sh
|
||
./tools/verify_task_emctask_plan_read_execute.sh
|
||
./tools/verify_task_emctask_plan_open_wait.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
构建:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
```
|
||
|
||
`SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_runtime_smoke=ok
|
||
emccanon_spindle_tool_status=ok
|
||
emccanon_motion_output_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emccanon_motion_output.sh`:
|
||
|
||
```text
|
||
task_emccanon_motion_output_upstream_SET_MOTION_OUTPUT_BIT=ok
|
||
task_emccanon_motion_output_upstream_CLEAR_MOTION_OUTPUT_BIT=ok
|
||
task_emccanon_motion_output_upstream_SET_AUX_OUTPUT_BIT=ok
|
||
task_emccanon_motion_output_upstream_CLEAR_AUX_OUTPUT_BIT=ok
|
||
task_emccanon_motion_output_upstream_SET_MOTION_OUTPUT_VALUE=ok
|
||
task_emccanon_motion_output_upstream_SET_AUX_OUTPUT_VALUE=ok
|
||
task_emccanon_motion_output_upstream_WAIT=ok
|
||
task_emccanon_motion_output_upstream_dout=ok
|
||
task_emccanon_motion_output_upstream_aout=ok
|
||
task_emccanon_motion_output_upstream_wait=ok
|
||
task_emccanon_motion_output_wrapper_old_m428_special=absent
|
||
task_emccanon_motion_output_matrix_t045_done=ok
|
||
task_emccanon_motion_output_matrix_next_t046=ok
|
||
task_emccanon_motion_output_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_source_reuse_drift_docs.sh`:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_source_emccanon_motion_output=ok
|
||
task_source_reuse_drift_docs_drift_emccanon_motion_output=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_motion_output_gate=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_motion_output_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_emccanon_spindle_tool_status=ok
|
||
task_emccanon_dwell_path_control_status=ok
|
||
task_emccanon_straight_motion_status=ok
|
||
task_emccanon_init_finish_unit_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_state_matrix=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_taskintf_jog_home_switchkins_status=ok
|
||
task_emctask_plan_read_execute_status=ok
|
||
task_emctask_plan_open_wait_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-045 验收通过。canon motion output/switchkins 已有 `EMC_MOTION_SET_DOUT` / `EMC_MOTION_SET_AOUT` / `EMC_AUX_INPUT_WAIT` / `interp_list` status evidence;M428-M430 已通过 canon output 到 taskintf AOUT 边界,旧 MDI 字符串 special-case 已移除,readiness 仍未提升。
|
||
|
||
## 2026-07-08 04:50 EDT emccanon spindle/tool 验收
|
||
|
||
### 验收对象
|
||
|
||
T-044。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- spindle/tool command 已进入 `emccanon_wasm_subset` 的窄 command envelope。
|
||
- task-HAL runtime 可观测 `EMC_SPINDLE_*` / `EMC_TOOL_*` append 到 `interp_list` 的 evidence。
|
||
- MDI `S1200 M3`、`M5`、`T7 M6`、`M61 Q8` 可记录 spindle/tool evidence,不误发 motion command。
|
||
- T-040/T-041/T-042/T-043、taskintf、SDK、motion sync 和 readiness contract 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emccanon_spindle_tool.sh
|
||
./tools/verify_task_emccanon_dwell_path_control.sh
|
||
./tools/verify_task_emccanon_straight_motion.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emccanon_init_finish_unit.sh
|
||
./tools/verify_task_emctask_plan_read_execute.sh
|
||
./tools/verify_task_emctask_plan_open_wait.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_taskintf_jog_home_switchkins.sh
|
||
./tools/verify_task_taskintf_linear_move.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
构建:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
```
|
||
|
||
`SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_runtime_smoke=ok
|
||
emccanon_init_finish_unit_status=ok
|
||
emccanon_straight_motion_status=ok
|
||
emccanon_dwell_path_control_status=ok
|
||
emccanon_spindle_tool_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emccanon_spindle_tool.sh`:
|
||
|
||
```text
|
||
task_emccanon_spindle_tool_upstream_SET_SPINDLE_SPEED=ok
|
||
task_emccanon_spindle_tool_upstream_START_SPINDLE_CLOCKWISE=ok
|
||
task_emccanon_spindle_tool_upstream_START_SPINDLE_COUNTERCLOCKWISE=ok
|
||
task_emccanon_spindle_tool_upstream_STOP_SPINDLE_TURNING=ok
|
||
task_emccanon_spindle_tool_upstream_SELECT_TOOL=ok
|
||
task_emccanon_spindle_tool_upstream_CHANGE_TOOL=ok
|
||
task_emccanon_spindle_tool_upstream_CHANGE_TOOL_NUMBER=ok
|
||
task_emccanon_spindle_tool_upstream_RELOAD_TOOLDATA=ok
|
||
task_emccanon_spindle_tool_subset_anchor=ok
|
||
task_emccanon_spindle_tool_wrapper_spindle_append=ok
|
||
task_emccanon_spindle_tool_wrapper_tool_append=ok
|
||
task_emccanon_spindle_tool_wasm_test_status=ok
|
||
task_emccanon_spindle_tool_matrix_t044_done=ok
|
||
task_emccanon_spindle_tool_matrix_next_t045=ok
|
||
task_emccanon_spindle_tool_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_source_reuse_drift_docs.sh`:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_source_emccanon_spindle_tool=ok
|
||
task_source_reuse_drift_docs_drift_emccanon_spindle_tool=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_spindle_tool_gate=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_spindle_tool_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_emccanon_dwell_path_control_status=ok
|
||
task_emccanon_straight_motion_status=ok
|
||
task_emccanon_init_finish_unit_status=ok
|
||
task_emctask_plan_read_execute_status=ok
|
||
task_emctask_plan_open_wait_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_state_matrix=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_taskintf_jog_home_switchkins_status=ok
|
||
task_taskintf_linear_move_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-044 验收通过。canon spindle/tool command 已有 `EMC_SPINDLE_*` / `EMC_TOOL_*` / `interp_list` status evidence,readiness 仍未提升。
|
||
|
||
## 2026-07-08 04:34 EDT emccanon dwell/path-control 验收
|
||
|
||
### 验收对象
|
||
|
||
T-043。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `DWELL()` 和 `SET_MOTION_CONTROL_MODE()` 已进入 `emccanon_wasm_subset` 的窄 command envelope。
|
||
- task-HAL runtime 可观测 `EMC_TRAJ_DELAY` / `EMC_TRAJ_SET_TERM_COND` append 到 `interp_list` 的 evidence。
|
||
- MDI `G64 P...` 和 `G4 P...` 可进入 path-control / dwell evidence,不误发 motion command。
|
||
- T-040/T-041/T-042、taskintf、SDK、motion sync 和 readiness contract 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emccanon_dwell_path_control.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emccanon_straight_motion.sh
|
||
./tools/verify_task_emccanon_init_finish_unit.sh
|
||
./tools/verify_task_emctask_plan_read_execute.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_emctask_update_snapshot.sh
|
||
./tools/verify_task_emctask_plan_open_wait.sh
|
||
./tools/verify_task_emctask_state_mode.sh
|
||
./tools/verify_task_emctask_subset.sh
|
||
./tools/verify_task_taskintf_motion_bridge.sh
|
||
./tools/verify_task_taskintf_traj_control.sh
|
||
./tools/verify_task_taskintf_linear_move.sh
|
||
./tools/verify_task_taskintf_jog_home_switchkins.sh
|
||
git diff --check -- wasm-port/vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.hh wasm-port/vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.cc wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs wasm-port/tools/verify_task_emccanon_dwell_path_control.sh wasm-port/tools/verify_task_emccanon_straight_motion.sh wasm-port/tools/verify_task_source_reuse_drift_docs.sh wasm-port/docs/source-reuse-map.md wasm-port/docs/drift-report.md wasm-port/docs/compatibility-validation.md wasm-port/working/04-任务矩阵.md
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
构建:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
```
|
||
|
||
`SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_runtime_smoke=ok
|
||
emccanon_init_finish_unit_status=ok
|
||
emccanon_straight_motion_status=ok
|
||
emccanon_dwell_path_control_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emccanon_dwell_path_control.sh`:
|
||
|
||
```text
|
||
task_emccanon_dwell_path_control_upstream_DWELL=ok
|
||
task_emccanon_dwell_path_control_upstream_SET_MOTION_CONTROL_MODE=ok
|
||
task_emccanon_dwell_path_control_upstream_delay=ok
|
||
task_emccanon_dwell_path_control_upstream_term_cond=ok
|
||
task_emccanon_dwell_path_control_subset_dwell_impl=ok
|
||
task_emccanon_dwell_path_control_subset_path_impl=ok
|
||
task_emccanon_dwell_path_control_wrapper_dwell_count=ok
|
||
task_emccanon_dwell_path_control_wrapper_term_append=ok
|
||
task_emccanon_dwell_path_control_matrix_t043_done=ok
|
||
task_emccanon_dwell_path_control_matrix_next_t044=ok
|
||
task_emccanon_dwell_path_control_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_source_reuse_drift_docs.sh`:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_source_emccanon_dwell_path_control=ok
|
||
task_source_reuse_drift_docs_drift_emccanon_dwell_path_control=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_dwell_path_control_gate=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_dwell_path_control_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_emccanon_straight_motion_status=ok
|
||
task_emccanon_init_finish_unit_status=ok
|
||
task_emctask_plan_read_execute_status=ok
|
||
task_state_matrix=ok
|
||
task_hal_readiness_contract_status=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_emctask_update_snapshot_status=ok
|
||
task_emctask_plan_open_wait_status=ok
|
||
task_emctask_state_mode_status=ok
|
||
task_emctask_subset_source_reuse=ok
|
||
task_taskintf_motion_bridge_status=ok
|
||
task_taskintf_traj_control_status=ok
|
||
task_taskintf_linear_move_status=ok
|
||
task_taskintf_jog_home_switchkins_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-043 验收通过。canon dwell/path-control 已有 `EMC_TRAJ_DELAY` / `EMC_TRAJ_SET_TERM_COND` / `interp_list` status evidence,readiness 仍未提升。
|
||
|
||
## 2026-07-08 03:52 EDT emccanon straight traverse/feed 验收
|
||
|
||
### 验收对象
|
||
|
||
T-042。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `generate_fast_move()`、`generate_move()`、`STRAIGHT_TRAVERSE()`、`STRAIGHT_FEED()` 已进入 `emccanon_wasm_subset` 的 straight linear move 边界。
|
||
- task-HAL runtime 可观测 canon straight move 生成 `EMC_TRAJ_LINEAR_MOVE` 并进入 `interp_list` 路径的 evidence。
|
||
- no-json staged program RUN 仍能通过 PlanRead/Execute 后进入 canon straight feed 和 structured taskintf linear move。
|
||
- T-041 init/finish/unit、T-040 plan read/execute、taskintf linear move、SDK、motion sync 和 readiness contract 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emccanon_straight_motion.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emccanon_init_finish_unit.sh
|
||
./tools/verify_task_emctask_plan_read_execute.sh
|
||
./tools/verify_task_emccanon_subset.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_emctask_update_snapshot.sh
|
||
./tools/verify_task_emctask_plan_open_wait.sh
|
||
./tools/verify_task_emctask_state_mode.sh
|
||
./tools/verify_task_emctask_subset.sh
|
||
./tools/verify_task_taskintf_motion_bridge.sh
|
||
./tools/verify_task_taskintf_traj_control.sh
|
||
./tools/verify_task_taskintf_linear_move.sh
|
||
./tools/verify_task_taskintf_jog_home_switchkins.sh
|
||
git diff --check -- wasm-port/vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.hh wasm-port/vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.cc wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs wasm-port/tools/verify_task_emccanon_straight_motion.sh wasm-port/tools/verify_task_emccanon_init_finish_unit.sh wasm-port/tools/verify_task_source_reuse_drift_docs.sh wasm-port/docs/source-reuse-map.md wasm-port/docs/drift-report.md wasm-port/docs/compatibility-validation.md wasm-port/working/04-任务矩阵.md
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
emctask_plan_read_execute_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
emccanon_init_finish_unit_status=ok
|
||
emccanon_straight_motion_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emccanon_straight_motion.sh`:
|
||
|
||
```text
|
||
task_emccanon_straight_motion_upstream_generate_fast_move=ok
|
||
task_emccanon_straight_motion_upstream_generate_move=ok
|
||
task_emccanon_straight_motion_upstream_STRAIGHT_TRAVERSE=ok
|
||
task_emccanon_straight_motion_upstream_STRAIGHT_FEED=ok
|
||
task_emccanon_straight_motion_upstream_linear_move=ok
|
||
task_emccanon_straight_motion_upstream_interp_list=ok
|
||
task_emccanon_straight_motion_subset_linear_anchor=ok
|
||
task_emccanon_straight_motion_wrapper_append_count=ok
|
||
task_emccanon_straight_motion_wrapper_last_command=ok
|
||
task_emccanon_straight_motion_matrix_t042_done=ok
|
||
task_emccanon_straight_motion_matrix_next_t043=ok
|
||
task_emccanon_straight_motion_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_source_reuse_drift_docs.sh`:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_source_emccanon_straight_motion=ok
|
||
task_source_reuse_drift_docs_drift_emccanon_straight_motion=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_straight_motion_gate=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_straight_motion_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_emccanon_init_finish_unit_status=ok
|
||
task_emctask_plan_read_execute_status=ok
|
||
task_emccanon_subset_source_reuse=ok
|
||
task_state_matrix=ok
|
||
task_hal_readiness_contract_status=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_emctask_update_snapshot_status=ok
|
||
task_emctask_plan_open_wait_status=ok
|
||
task_emctask_state_mode_status=ok
|
||
task_emctask_subset_source_reuse=ok
|
||
task_taskintf_motion_bridge_status=ok
|
||
task_taskintf_traj_control_status=ok
|
||
task_taskintf_linear_move_status=ok
|
||
task_taskintf_jog_home_switchkins_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-042 验收通过。canon straight traverse/feed 已有 `EMC_TRAJ_LINEAR_MOVE` / `interp_list` status evidence,且 no-json staged program RUN、taskintf structured linear move 和 readiness contract 均未回退。
|
||
|
||
## 2026-07-08 03:36 EDT emccanon init/finish/unit 验收
|
||
|
||
### 验收对象
|
||
|
||
T-041。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `INIT_CANON()`、`ON_RESET()`、`FINISH()`、`USE_LENGTH_UNITS()`、`GET_EXTERNAL_LENGTH_UNITS()`、`GET_EXTERNAL_ANGLE_UNITS()` 和 `GET_EXTERNAL_POSITION*()` 已进入 `emccanon_wasm_subset` 的窄状态边界。
|
||
- task-HAL runtime 可通过 motion/config snapshot 更新 canon unit 和 endpoint evidence。
|
||
- `emccanonSourceReuse` status JSON 可观测 init/finish/reset/unit/position/endpoint 状态。
|
||
- T-039/T-040 plan gate、taskintf gate、SDK、motion sync 和 readiness contract 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emccanon_init_finish_unit.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emctask_plan_read_execute.sh
|
||
./tools/verify_task_emccanon_subset.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
./tools/verify_task_emctask_update_snapshot.sh
|
||
./tools/verify_task_emctask_plan_open_wait.sh
|
||
./tools/verify_task_emctask_state_mode.sh
|
||
./tools/verify_task_emctask_subset.sh
|
||
./tools/verify_task_taskintf_motion_bridge.sh
|
||
./tools/verify_task_taskintf_traj_control.sh
|
||
./tools/verify_task_taskintf_linear_move.sh
|
||
./tools/verify_task_taskintf_jog_home_switchkins.sh
|
||
git diff --check -- wasm-port/vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.hh wasm-port/vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.cc wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs wasm-port/tools/verify_task_emccanon_init_finish_unit.sh wasm-port/tools/verify_task_source_reuse_drift_docs.sh wasm-port/tools/verify_task_taskintf_jog_home_switchkins.sh wasm-port/tools/verify_task_emctask_plan_read_execute.sh wasm-port/docs/source-reuse-map.md wasm-port/docs/drift-report.md wasm-port/docs/compatibility-validation.md wasm-port/working/04-任务矩阵.md
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
emctask_plan_read_execute_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
emccanon_init_finish_unit_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emccanon_init_finish_unit.sh`:
|
||
|
||
```text
|
||
task_emccanon_init_finish_unit_upstream_INIT_CANON=ok
|
||
task_emccanon_init_finish_unit_upstream_ON_RESET=ok
|
||
task_emccanon_init_finish_unit_upstream_FINISH=ok
|
||
task_emccanon_init_finish_unit_upstream_USE_LENGTH_UNITS=ok
|
||
task_emccanon_init_finish_unit_upstream_GET_EXTERNAL_LENGTH_UNITS=ok
|
||
task_emccanon_init_finish_unit_upstream_GET_EXTERNAL_ANGLE_UNITS=ok
|
||
task_emccanon_init_finish_unit_upstream_GET_EXTERNAL_POSITION=ok
|
||
task_emccanon_init_finish_unit_subset_state=ok
|
||
task_emccanon_init_finish_unit_wrapper_status_endpoint=ok
|
||
task_emccanon_init_finish_unit_matrix_t041_done=ok
|
||
task_emccanon_init_finish_unit_matrix_next_t042=ok
|
||
task_emccanon_init_finish_unit_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_source_reuse_drift_docs.sh`:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_source_emccanon_init_finish_unit=ok
|
||
task_source_reuse_drift_docs_drift_emccanon_init_finish_unit=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_init_finish_unit_gate=ok
|
||
task_source_reuse_drift_docs_compat_emccanon_init_finish_unit_status=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
```
|
||
|
||
回归 gate:
|
||
|
||
```text
|
||
task_emctask_plan_read_execute_status=ok
|
||
task_emccanon_subset_source_reuse=ok
|
||
task_state_matrix=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_emctask_update_snapshot_status=ok
|
||
task_emctask_plan_open_wait_status=ok
|
||
task_emctask_state_mode_status=ok
|
||
task_emctask_subset_source_reuse=ok
|
||
task_taskintf_motion_bridge_status=ok
|
||
task_taskintf_traj_control_status=ok
|
||
task_taskintf_linear_move_status=ok
|
||
task_taskintf_jog_home_switchkins_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-041 验收通过。canon init/reset/finish/unit/endpoint 状态已由 `emccanon_wasm_subset` 驱动并进入 task-HAL status evidence;T-042 可继续推进 straight traverse/feed 子集。
|
||
|
||
## 2026-07-08 03:14 EDT emctask plan read/execute 验收
|
||
|
||
### 验收对象
|
||
|
||
T-040。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `emcTaskPlanRead()`、`emcTaskPlanExecute()`、`emcTaskPlanLine()`、`emcTaskPlanLevel()`、`emcTaskPlanCommand()` 已进入 `emctask_wasm_subset` 的 plan IO result 边界。
|
||
- staged program 不再必须依赖 host JSON motion plan 才能 RUN。
|
||
- no-json staged program RUN 可通过 PlanRead/Command/Execute 进入 `interp_list`/taskintf issue 等价路径。
|
||
- MDI execute 也记录 PlanExecute evidence。
|
||
- 现有 task-HAL smoke、state matrix、source reuse/drift 文档和 readiness 均不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emctask_plan_read_execute.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emctask_plan_open_wait.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tools/verify_task_emctask_update_snapshot.sh
|
||
./tools/verify_task_emctask_state_mode.sh
|
||
./tools/verify_task_emctask_subset.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
emctask_plan_read_execute_status=ok
|
||
taskintf_motion_bridge_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emctask_plan_read_execute.sh`:
|
||
|
||
```text
|
||
task_emctask_plan_read_execute_upstream_emcTaskPlanRead=ok
|
||
task_emctask_plan_read_execute_upstream_emcTaskPlanExecute=ok
|
||
task_emctask_plan_read_execute_upstream_emcTaskPlanLine=ok
|
||
task_emctask_plan_read_execute_upstream_emcTaskPlanLevel=ok
|
||
task_emctask_plan_read_execute_upstream_emcTaskPlanCommand=ok
|
||
task_emctask_plan_read_execute_upstream_interp_list=ok
|
||
task_emctask_plan_read_execute_subset_plan_io_result=ok
|
||
task_emctask_plan_read_execute_wrapper_read_execute_helper=ok
|
||
task_emctask_plan_read_execute_wrapper_no_json_run=ok
|
||
task_emctask_plan_read_execute_wrapper_status_interp_list=ok
|
||
task_emctask_plan_read_execute_state_matrix_no_json=ok
|
||
task_emctask_plan_read_execute_matrix_t040_done=ok
|
||
task_emctask_plan_read_execute_matrix_next_t041=ok
|
||
task_emctask_plan_read_execute_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_emctask_plan_open_wait_status=ok
|
||
task_state_matrix=ok
|
||
run_gate_staged_program_executes_without_json_plan=ok
|
||
task_emctask_update_snapshot_status=ok
|
||
task_emctask_state_mode_status=ok
|
||
task_emctask_subset_source_reuse=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_hal_readiness_contract_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-040 通过。`emctask.cc` plan read/execute/line/level/command 子集已接入 staged program 主路径;RUN 不再硬依赖 host JSON motion plan。完整 canon init/finish/unit 和更完整 `interp_list` 命令类型迁移留给 T-041 之后继续推进。
|
||
|
||
## 2026-07-08 02:30 EDT emctask plan wait/open/synch/reset 验收
|
||
|
||
### 验收对象
|
||
|
||
T-039。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `emcTaskPlanSetWait()`、`emcTaskPlanIsWait()`、`emcTaskPlanClearWait()`、`emcTaskPlanSynch()`、`emcTaskPlanOpen()`、`emcTaskPlanClose()`、`emcTaskPlanReset()` 已进入 `emctask_wasm_subset` 的 plan state/result 边界。
|
||
- `lctask_open_program()` 正常路径通过 plan open 处理 staged FS program open。
|
||
- `EMC_TASK_PLAN_RUN` 设置 plan wait,程序完成和 motion wait done 路径清理 plan wait。
|
||
- `should_plan_synch` 通过 `emctask_plan_synch()` 记录 source-anchored plan synch。
|
||
- 现有 task-HAL smoke、state matrix、source reuse/drift 文档和 readiness 均不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emctask_plan_open_wait.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emctask_update_snapshot.sh
|
||
./tools/verify_task_emctask_state_mode.sh
|
||
./tools/verify_task_emctask_subset.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
taskintf_motion_bridge_status=ok
|
||
taskintf_jog_home_switchkins_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emctask_plan_open_wait.sh`:
|
||
|
||
```text
|
||
task_emctask_plan_open_wait_upstream_emcTaskPlanSetWait=ok
|
||
task_emctask_plan_open_wait_upstream_emcTaskPlanIsWait=ok
|
||
task_emctask_plan_open_wait_upstream_emcTaskPlanClearWait=ok
|
||
task_emctask_plan_open_wait_upstream_emcTaskPlanSynch=ok
|
||
task_emctask_plan_open_wait_upstream_emcTaskPlanOpen=ok
|
||
task_emctask_plan_open_wait_upstream_emcTaskPlanClose=ok
|
||
task_emctask_plan_open_wait_upstream_emcTaskPlanReset=ok
|
||
task_emctask_plan_open_wait_subset_plan_state=ok
|
||
task_emctask_plan_open_wait_subset_plan_result=ok
|
||
task_emctask_plan_open_wait_wrapper_plan_open=ok
|
||
task_emctask_plan_open_wait_wrapper_plan_wait=ok
|
||
task_emctask_plan_open_wait_wrapper_plan_clear=ok
|
||
task_emctask_plan_open_wait_wrapper_plan_synch=ok
|
||
task_emctask_plan_open_wait_wrapper_plan_close=ok
|
||
task_emctask_plan_open_wait_wrapper_plan_reset=ok
|
||
task_emctask_plan_open_wait_matrix_t039_done=ok
|
||
task_emctask_plan_open_wait_matrix_next_t040=ok
|
||
task_emctask_plan_open_wait_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_emctask_update_snapshot_status=ok
|
||
task_emctask_state_mode_status=ok
|
||
task_emctask_subset_source_reuse=ok
|
||
task_state_matrix=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_hal_readiness_contract_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-039 通过。`emctask.cc` plan wait/open/synch/reset 子集已接入 staged FS 和 task-cycle command 边界;完整 `PlanRead/Execute/Line/Level/Command` 与 `interp_list` 驱动留给 T-040。readiness 仍保持未 promoted。
|
||
|
||
## 2026-07-08 01:57 EDT emctask determine/update snapshot 验收
|
||
|
||
### 验收对象
|
||
|
||
T-038。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `determineMode()`、`determineState()`、`emcTaskUpdate()` 已进入 `emctask_wasm_subset` 的 update 边界。
|
||
- `wasm_emcTaskUpdate()` 正常路径从 task cycle 的 `LcmotStatusSnapshot` 和 IO latch 构造 update 输入。
|
||
- status JSON 能记录 snapshot-fed update 证据。
|
||
- 现有 task-HAL smoke、state matrix、source reuse/drift 文档和 readiness 均不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emctask_update_snapshot.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_emctask_state_mode.sh
|
||
./tools/verify_task_emctask_subset.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
taskintf_motion_bridge_status=ok
|
||
taskintf_jog_home_switchkins_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emctask_update_snapshot.sh`:
|
||
|
||
```text
|
||
task_emctask_update_snapshot_upstream_determineMode=ok
|
||
task_emctask_update_snapshot_upstream_determineState=ok
|
||
task_emctask_update_snapshot_upstream_emcTaskUpdate=ok
|
||
task_emctask_update_snapshot_wrapper_motion_coord=ok
|
||
task_emctask_update_snapshot_wrapper_motion_enabled=ok
|
||
task_emctask_update_snapshot_wrapper_io_estop=ok
|
||
task_emctask_update_snapshot_wrapper_status_source=ok
|
||
task_emctask_update_snapshot_wasm_assertion=ok
|
||
task_emctask_update_snapshot_matrix_t038_done=ok
|
||
task_emctask_update_snapshot_matrix_next_t039=ok
|
||
task_emctask_update_snapshot_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_emctask_state_mode_status=ok
|
||
task_emctask_subset_source_reuse=ok
|
||
task_state_matrix=ok
|
||
task_command_json_host_boundary=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_hal_readiness_contract_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-038 通过。`emctask.cc` determine/update 子集已由 motion/io snapshot 驱动,task cycle command 触发语义保持稳定;readiness 仍保持未 promoted。下一步进入 T-039。
|
||
|
||
## 2026-07-08 01:49 EDT emctask abort/state/mode 验收
|
||
|
||
### 验收对象
|
||
|
||
T-037。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `emcTaskAbort()`、`emcTaskSetMode()`、`emcTaskSetState()` 已进入 `emctask_wasm_subset` 的 command-result 边界。
|
||
- wrapper 的 SetState/SetMode/Abort 分支通过 `lc_emctask_subset_*()` 决策结果执行。
|
||
- command 仍由 task cycle 消费,不在 send 阶段改变 task 语义状态。
|
||
- 现有 task-HAL smoke、state matrix、readiness 均不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_emctask_state_mode.sh
|
||
./tools/verify_task_emctask_subset.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
node ./tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
taskintf_motion_bridge_status=ok
|
||
taskintf_jog_home_switchkins_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_emctask_state_mode.sh`:
|
||
|
||
```text
|
||
task_emctask_state_mode_upstream_emcTaskAbort=ok
|
||
task_emctask_state_mode_upstream_emcTaskSetMode=ok
|
||
task_emctask_state_mode_upstream_emcTaskSetState=ok
|
||
task_emctask_state_mode_subset_result_type=ok
|
||
task_emctask_state_mode_wrapper_result_apply=ok
|
||
task_emctask_state_mode_wrapper_status_count=ok
|
||
task_emctask_state_mode_matrix_t037_done=ok
|
||
task_emctask_state_mode_matrix_next_t038=ok
|
||
task_emctask_state_mode_status=ok
|
||
```
|
||
|
||
`node ./tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
run_gate_estop_rejected=ok
|
||
run_gate_estop_reset_rejected=ok
|
||
run_gate_manual_rejected=ok
|
||
run_gate_unhomed_rejected=ok
|
||
run_gate_homing_rejected=ok
|
||
run_gate_program_open_required=ok
|
||
run_gate_interpreter_plan_required=ok
|
||
run_gate_accepts_homed_open_plan=ok
|
||
task_command_send_queues_until_cycle=ok
|
||
task_command_json_host_boundary=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_emctask_subset_source_reuse=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
task_hal_readiness_contract_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-037 通过。`emctask.cc` abort/state/mode 子集已通过结构化 command-result 接入,task cycle command 触发语义保持稳定;readiness 仍保持未 promoted。下一步进入 T-038。
|
||
|
||
## 2026-07-08 01:39 EDT taskintf jog/home/switchkins 验收
|
||
|
||
### 验收对象
|
||
|
||
T-036。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `emcJogIncr()`、`emcJointHome()`、`emcJointUnhome()`、`emcMotionSetAout()` 已进入 `taskintf_wasm_subset` 的结构化 command envelope。
|
||
- task runtime 的 jog/home/switchkins 主路径不再依赖 task wrapper 拼接 motion JSON,而是调用结构化 `lcmot_write_*()`。
|
||
- Home/Jog/M428/M429/M430 smoke 均通过,且 readiness 不提升。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_taskintf_jog_home_switchkins.sh
|
||
./tools/verify_task_taskintf_subset.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_taskintf_linear_move.sh
|
||
./tools/verify_task_taskintf_traj_control.sh
|
||
./tools/verify_task_taskintf_motion_bridge.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
taskintf_motion_bridge_status=ok
|
||
taskintf_traj_control_status=ok
|
||
taskintf_linear_move_status=ok
|
||
taskintf_jog_home_switchkins_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_taskintf_jog_home_switchkins.sh`:
|
||
|
||
```text
|
||
task_taskintf_jog_home_switchkins_upstream_taskintf_emcJogIncr=ok
|
||
task_taskintf_jog_home_switchkins_upstream_taskintf_emcJointHome=ok
|
||
task_taskintf_jog_home_switchkins_upstream_taskintf_emcJointUnhome=ok
|
||
task_taskintf_jog_home_switchkins_upstream_taskintf_emcMotionSetAout=ok
|
||
task_taskintf_jog_home_switchkins_lcmot_jog_abi=ok
|
||
task_taskintf_jog_home_switchkins_lcmot_home_abi=ok
|
||
task_taskintf_jog_home_switchkins_lcmot_unhome_abi=ok
|
||
task_taskintf_jog_home_switchkins_lcmot_aout_abi=ok
|
||
task_taskintf_jog_home_switchkins_wrapper_status_count=ok
|
||
task_taskintf_jog_home_switchkins_matrix_t036_done=ok
|
||
task_taskintf_jog_home_switchkins_matrix_next_t037=ok
|
||
task_taskintf_jog_home_switchkins_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_taskintf_subset_source_reuse=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_taskintf_linear_move_status=ok
|
||
task_taskintf_traj_control_status=ok
|
||
task_taskintf_motion_bridge_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-036 通过。`taskintf.cc` jog/home/switchkins 子集已通过结构化 `lcmot_write_*()` 接入,Home/Jog/M428-M430 smoke 通过;readiness 仍保持未 promoted。下一步进入 T-037。
|
||
|
||
## 2026-07-08 01:27 EDT taskintf linear move 验收
|
||
|
||
### 验收对象
|
||
|
||
T-035。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `emcTrajLinearMove()` 已进入 `taskintf_wasm_subset` 的结构化 linear move envelope。
|
||
- task runtime 的 linear move 主路径不再依赖 task wrapper 拼接 linear move JSON,而是调用 `lcmot_write_linear_move()`。
|
||
- pending execute flush 也能携带结构化 `LcTaskIntfSubsetMotionCommand`。
|
||
- G0/G1 smoke 均通过,且 readiness 不提升。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_taskintf_linear_move.sh
|
||
./tools/verify_task_taskintf_subset.sh
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
./tools/verify_task_taskintf_traj_control.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
./tools/verify_task_taskintf_motion_bridge.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
taskintf_motion_bridge_status=ok
|
||
taskintf_traj_control_status=ok
|
||
taskintf_linear_move_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_taskintf_linear_move.sh`:
|
||
|
||
```text
|
||
task_taskintf_linear_move_upstream_emcTrajLinearMove=ok
|
||
task_taskintf_linear_move_upstream_sets_line=ok
|
||
task_taskintf_linear_move_upstream_writes_command=ok
|
||
task_taskintf_linear_move_subset_linear_move_ex_decl=ok
|
||
task_taskintf_linear_move_lcmot_linear_abi=ok
|
||
task_taskintf_linear_move_wrapper_structured_issue=ok
|
||
task_taskintf_linear_move_wrapper_pending_struct=ok
|
||
task_taskintf_linear_move_build_exports_linear=ok
|
||
task_taskintf_linear_move_wasm_test_prints_linear=ok
|
||
task_taskintf_linear_move_matrix_t035_done=ok
|
||
task_taskintf_linear_move_matrix_next_t036=ok
|
||
task_taskintf_linear_move_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_taskintf_subset_source_reuse=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_taskintf_traj_control_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_taskintf_motion_bridge_status=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-035 通过。`taskintf.cc` linear move issue 子集已通过结构化 `lcmot_write_linear_move()` 接入,G0/G1 smoke 通过;readiness 仍保持未 promoted。下一步进入 T-036。
|
||
|
||
## 2026-07-08 01:13 EDT taskintf traj control 验收
|
||
|
||
### 验收对象
|
||
|
||
T-034。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `emcTrajEnable()` / `emcTrajDisable()` / `emcTrajAbort()` / `emcTrajPause()` / `emcTrajStep()` / `emcTrajResume()` / `emcTrajSetMotionId()` 已进入 `taskintf_wasm_subset`。
|
||
- enable/disable/set-motion-id 已接入 `lcmot` runtime 状态。
|
||
- task state ON/OFF、pause/step/resume、program/MDI motion issue 都能通过 taskintf traj control 入口。
|
||
- 现有 pause/step/resume smoke 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_taskintf_traj_control.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
taskintf_motion_bridge_status=ok
|
||
taskintf_traj_control_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_taskintf_traj_control.sh`:
|
||
|
||
```text
|
||
task_taskintf_traj_control_upstream_taskintf=ok
|
||
task_taskintf_traj_control_upstream_motion=ok
|
||
task_taskintf_traj_control_subset_source=ok
|
||
task_taskintf_traj_control_subset_header=ok
|
||
task_taskintf_traj_control_lcmot_header=ok
|
||
task_taskintf_traj_control_lcmot_source=ok
|
||
task_taskintf_traj_control_task_wrapper=ok
|
||
task_taskintf_traj_control_wasm_test=ok
|
||
task_taskintf_traj_control_matrix=ok
|
||
task_taskintf_traj_control_subset_has_enable_fn=ok
|
||
task_taskintf_traj_control_subset_has_disable_fn=ok
|
||
task_taskintf_traj_control_subset_has_motion_id_fn=ok
|
||
task_taskintf_traj_control_lcmot_enable_command=ok
|
||
task_taskintf_traj_control_lcmot_disable_command=ok
|
||
task_taskintf_traj_control_lcmot_motion_id_command=ok
|
||
task_taskintf_traj_control_wrapper_exports_traj_count=ok
|
||
task_taskintf_traj_control_wasm_test_prints_traj=ok
|
||
task_taskintf_traj_control_matrix_t034_done=ok
|
||
task_taskintf_traj_control_matrix_next_t035=ok
|
||
task_taskintf_traj_control_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_taskintf_subset_source_reuse=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_taskintf_motion_bridge_status=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-034 通过。`taskintf.cc` traj control 子集已接入 `lcmot`,并通过 smoke 证明 pause/step/resume 不回退;readiness 仍保持未 promoted。
|
||
|
||
## 2026-07-08 01:00 EDT taskintf motion bridge 验收
|
||
|
||
### 验收对象
|
||
|
||
T-033。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `emcMotionInit()` 通过 `taskintf_wasm_subset` 的 motion bridge 初始化 `lcmot`。
|
||
- `emcMotionUpdate()` 通过 bridge 读取 status/config/error,而不是 task wrapper 直接读取 motion snapshot。
|
||
- `emcMotionAbort()` 通过 bridge 生成 abort command。
|
||
- `lcmot_read_config_snapshot()` 和 `lcmot_read_error_message()` 已作为窄 runtime-edge ABI 存在。
|
||
- task cycle snapshot smoke 继续通过,readiness 不提升。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tools/verify_task_taskintf_motion_bridge.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
motion_abort_drives_task_error=ok
|
||
motion_error_drives_task_error=ok
|
||
motion_soft_limit_drives_task_error=ok
|
||
task_top_level_rcs_status_aggregation=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
taskintf_motion_bridge_status=ok
|
||
```
|
||
|
||
`./tools/verify_task_taskintf_motion_bridge.sh`:
|
||
|
||
```text
|
||
task_taskintf_motion_bridge_upstream_taskintf=ok
|
||
task_taskintf_motion_bridge_upstream_usrmot=ok
|
||
task_taskintf_motion_bridge_subset_source=ok
|
||
task_taskintf_motion_bridge_subset_header=ok
|
||
task_taskintf_motion_bridge_lcmot_header=ok
|
||
task_taskintf_motion_bridge_lcmot_source=ok
|
||
task_taskintf_motion_bridge_task_wrapper=ok
|
||
task_taskintf_motion_bridge_wasm_test=ok
|
||
task_taskintf_motion_bridge_build_script=ok
|
||
task_taskintf_motion_bridge_matrix=ok
|
||
task_taskintf_motion_bridge_subset_has_motion_init=ok
|
||
task_taskintf_motion_bridge_subset_has_motion_update=ok
|
||
task_taskintf_motion_bridge_subset_has_motion_abort=ok
|
||
task_taskintf_motion_bridge_lcmot_has_config_read=ok
|
||
task_taskintf_motion_bridge_lcmot_has_error_read=ok
|
||
task_taskintf_motion_bridge_wrapper_status_exports_bridge=ok
|
||
task_taskintf_motion_bridge_wasm_test_prints_bridge=ok
|
||
task_taskintf_motion_bridge_matrix_t033_done=ok
|
||
task_taskintf_motion_bridge_matrix_next_t034=ok
|
||
task_taskintf_motion_bridge_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_taskintf_subset_source_reuse=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_usrmot_shim_design_status=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_hal_sdk_status_snapshot=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-033 通过。task cycle 的 motion init/update/abort 已经走 `taskintf.cc` 窄 motion bridge;config/error read 有窄 `lcmot_*` ABI;完整 native usrmot/shared-memory/NML 拓扑仍未 promoted。
|
||
|
||
## 2026-07-08 00:52 EDT taskintf usrmot shim 设计验收
|
||
|
||
### 验收对象
|
||
|
||
T-032。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- 已明确 `taskintf.cc` 侧 usrmot shim 不直接复用完整 `usrmotintf.cc`。
|
||
- command write 映射到 `lcmot_write_command_json()`。
|
||
- status read 映射到 `lcmot_read_status_snapshot()`,并保持不推进 servo、不消费队列、不反解析 JSON。
|
||
- config read 明确需要新增 `lcmot_read_config_snapshot()`,当前不能声明已支持。
|
||
- error read 明确需要新增 `lcmot_read_error_message()`,当前不能把 boolean error flag 当作错误队列。
|
||
- T-032 已完成,下一步进入 T-033。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_usrmot_shim_design.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
task_usrmot_shim_design_doc=ok
|
||
task_usrmot_shim_design_matrix=ok
|
||
task_usrmot_shim_design_upstream_header=ok
|
||
task_usrmot_shim_design_upstream_source=ok
|
||
task_usrmot_shim_design_upstream_taskintf=ok
|
||
task_usrmot_shim_design_lcmot_header=ok
|
||
task_usrmot_shim_design_lcmot_source=ok
|
||
task_usrmot_shim_design_taskintf_subset_header=ok
|
||
task_usrmot_shim_design_lcmot_has_command_write=ok
|
||
task_usrmot_shim_design_lcmot_has_status_snapshot=ok
|
||
task_usrmot_shim_design_lcmot_has_init=ok
|
||
task_usrmot_shim_design_lcmot_has_reset=ok
|
||
task_usrmot_shim_design_doc_command_write=ok
|
||
task_usrmot_shim_design_doc_command_maps_lcmot=ok
|
||
task_usrmot_shim_design_doc_status_read=ok
|
||
task_usrmot_shim_design_doc_status_maps_lcmot=ok
|
||
task_usrmot_shim_design_doc_config_read=ok
|
||
task_usrmot_shim_design_doc_config_gap=ok
|
||
task_usrmot_shim_design_doc_error_read=ok
|
||
task_usrmot_shim_design_doc_error_gap=ok
|
||
task_usrmot_shim_design_doc_no_json_status_parse=ok
|
||
task_usrmot_shim_design_doc_no_hal_config=ok
|
||
task_usrmot_shim_design_doc_no_readiness_promotion=ok
|
||
task_usrmot_shim_design_readme_lists_doc=ok
|
||
task_usrmot_shim_design_matrix_t032_done=ok
|
||
task_usrmot_shim_design_matrix_next_t033=ok
|
||
task_usrmot_shim_design_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_taskintf_subset_source_reuse=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
task_hal_readiness_contract_status=ok
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_top_level_rcs_status_aggregation=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-032 通过。`taskintf.cc` usrmot shim 的四类核心边界已经设计闭合:command write/status read 有当前 `lcmot_*` 落点;config read/error read 作为 T-033 之前必须补齐的底层 ABI 缺口被明确记录。
|
||
|
||
## 2026-07-08 00:43 EDT source reuse / drift 文档验收
|
||
|
||
### 验收对象
|
||
|
||
T-030。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `docs/source-reuse-map.md` 反映 T-027/T-028/T-029 后的 task 主循环迁移阶段。
|
||
- `docs/drift-report.md` 记录 task/motion/HAL WASM runtime-edge 和 `emc_nml.hh` status container 边界。
|
||
- `docs/compatibility-validation.md` 记录 task-HAL WASM/SDK、readiness、`emc_nml` 复用评估和文档一致性验证 gate。
|
||
- readiness 仍保持未 promoted,不出现 `nativeTaskReady=true` 或 `nativeHalSyncReady=true`。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_source_reuse_drift_docs.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
task_source_reuse_drift_docs_source_reuse=ok
|
||
task_source_reuse_drift_docs_drift=ok
|
||
task_source_reuse_drift_docs_compatibility=ok
|
||
task_source_reuse_drift_docs_matrix=ok
|
||
task_source_reuse_drift_docs_source_task_row=ok
|
||
task_source_reuse_drift_docs_source_readiness_promoted=ok
|
||
task_source_reuse_drift_docs_source_native_task_false=ok
|
||
task_source_reuse_drift_docs_source_native_hal_false=ok
|
||
task_source_reuse_drift_docs_source_full_program_false=ok
|
||
task_source_reuse_drift_docs_source_rcs_aggregation=ok
|
||
task_source_reuse_drift_docs_source_emc_nml_decision=ok
|
||
task_source_reuse_drift_docs_source_readiness_gate=ok
|
||
task_source_reuse_drift_docs_source_emc_nml_gate=ok
|
||
task_source_reuse_drift_docs_source_docs_gate=ok
|
||
task_source_reuse_drift_docs_source_native_task_true=absent
|
||
task_source_reuse_drift_docs_source_native_hal_true=absent
|
||
task_source_reuse_drift_docs_drift_task_boundary=ok
|
||
task_source_reuse_drift_docs_drift_emc_nml_boundary=ok
|
||
task_source_reuse_drift_docs_drift_rcs_aggregation=ok
|
||
task_source_reuse_drift_docs_drift_readiness_false=ok
|
||
task_source_reuse_drift_docs_drift_runtime_promoted_false=ok
|
||
task_source_reuse_drift_docs_drift_no_promotion=ok
|
||
task_source_reuse_drift_docs_compat_task_hal_wasm=ok
|
||
task_source_reuse_drift_docs_compat_task_hal_sdk=ok
|
||
task_source_reuse_drift_docs_compat_readiness_gate=ok
|
||
task_source_reuse_drift_docs_compat_emc_nml_gate=ok
|
||
task_source_reuse_drift_docs_compat_docs_gate=ok
|
||
task_source_reuse_drift_docs_compat_rcs_status=ok
|
||
task_source_reuse_drift_docs_compat_readiness_false=ok
|
||
task_source_reuse_drift_docs_matrix_t030_done=ok
|
||
task_source_reuse_drift_docs_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_hal_readiness_contract_status=ok
|
||
task_emc_nml_reuse_plan_status=ok
|
||
```
|
||
|
||
未完成验证:
|
||
|
||
```text
|
||
./tests/docs/node/verify_project_release_handoff_docs.sh
|
||
```
|
||
|
||
该 docs gate 当前因 `/home/mes123456/cnc_wams/PROJECT_COMPLETION_TRACKER.md` 缺失而失败,失败发生在读取 tracker 文件阶段,未进入本轮修改的 source reuse / drift / compatibility 断言。
|
||
|
||
### 结论
|
||
|
||
T-030 通过。source reuse、drift、compatibility 文档已同步当前 task 主循环迁移阶段、readiness false 口径、RCS 聚合和 `emc_nml.hh` 复用决策。
|
||
|
||
## 2026-07-08 00:36 EDT emc_nml 复用评估验收
|
||
|
||
### 验收对象
|
||
|
||
T-029。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- 已评估上游 `emc_nml.hh` 的直接 include 依赖。
|
||
- 已明确当前 vendor tree 未包含完整 `emc_nml.hh`。
|
||
- 已形成选择记录:当前不直接 include 完整 `emc_nml.hh`,先走分阶段 typedef / 窄 `StandaloneEmcStatus`。
|
||
- 已记录后续 T-007/T-030/T-032/T-033/T-038 入口。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_emc_nml_reuse_plan.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
task_emc_nml_reuse_plan_upstream=ok
|
||
task_emc_nml_reuse_plan_doc=ok
|
||
task_emc_nml_reuse_plan_matrix=ok
|
||
task_emc_nml_reuse_plan_vendor_emc_nml_hh=absent
|
||
task_emc_nml_reuse_plan_upstream_has_emc_stat=ok
|
||
task_emc_nml_reuse_plan_upstream_has_task_stat=ok
|
||
task_emc_nml_reuse_plan_upstream_has_motion_stat=ok
|
||
task_emc_nml_reuse_plan_upstream_has_io_stat=ok
|
||
task_emc_nml_reuse_plan_doc_choice=ok
|
||
task_emc_nml_reuse_plan_doc_strategy=ok
|
||
task_emc_nml_reuse_plan_doc_standalone=ok
|
||
task_emc_nml_reuse_plan_doc_dependency_nml=ok
|
||
task_emc_nml_reuse_plan_doc_dependency_rs274=ok
|
||
task_emc_nml_reuse_plan_doc_boundary=ok
|
||
task_emc_nml_reuse_plan_doc_next_t032=ok
|
||
task_emc_nml_reuse_plan_matrix_t029_done=ok
|
||
task_emc_nml_reuse_plan_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-029 通过。当前阶段选择分阶段 typedef / 窄 `StandaloneEmcStatus`,不直接 include 完整 `emc_nml.hh`;完整 NML/CMS 依赖和 vendor 提升留给后续 T-032+ 以及 source reuse map 更新。
|
||
|
||
## 2026-07-08 00:33 EDT top-level RCS_STATUS 聚合验收
|
||
|
||
### 验收对象
|
||
|
||
T-028。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- task/motion/io 三方状态聚合顺序与 `emctaskmain.cc` 的顶层 status write 口径一致。
|
||
- JSON status 明确导出 `rcsStatus.top/task/motion/io` 和 `task.status`。
|
||
- task/motion/io 任一 ERROR 会驱动 top/task `ERROR`。
|
||
- task exec done、interp idle、pending 为空、motion done、io done 时 top/task 为 `DONE`。
|
||
- 其它运行中状态为 `EXEC`。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
motion_error_drives_task_error=ok
|
||
motion_soft_limit_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
task_top_level_rcs_status_aggregation=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
task_hal_readiness_status_contract=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-028 通过。status JSON 现在导出 top/task/motion/io 四个 RCS 聚合状态,聚合顺序与上游 `emctaskmain.cc` 的 ERROR -> DONE -> EXEC 口径一致。
|
||
|
||
## 2026-07-08 00:22 EDT motion error/soft-limit 注入验收
|
||
|
||
### 验收对象
|
||
|
||
T-027。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- motion runtime 可以通过测试命令注入独立 motion ERROR。
|
||
- motion runtime 可以通过测试命令注入 soft-limit。
|
||
- task 周期内的 subordinate sync 会消费 motion snapshot,把上述状态转成 task `ERROR`。
|
||
- 最小 `taskTopLevelStatus` 会同步反映 motion ERROR 和 soft-limit 的 `ERROR` 状态。
|
||
- 用户主动 task abort cleanup 语义不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_sdk.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/native/verify_task_hal_phase0.sh
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
motion_error_drives_task_error=ok
|
||
motion_soft_limit_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
task_hal_readiness_status_contract=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
motion_hal_sync_smoke=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_state_matrix=ok
|
||
task_hal_phase0_native_probe_gate=ok
|
||
task_hal_readiness_contract_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-027 通过。motion ERROR 和 soft-limit 现在都有独立注入路径、snapshot 字段和 task subordinate sync 覆盖,均能驱动 task 进入 `ERROR`,并让最小 `taskTopLevelStatus` 反映 `ERROR`。新增 snapshot 字段追加在 `LcmotStatusSnapshot` 尾部,保留已有 C ABI struct offset;既有 abort/io/wait/readiness smoke 未回退。
|
||
|
||
## 2026-07-08 00:13 EDT readiness contract 验收
|
||
|
||
### 验收对象
|
||
|
||
T-015。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `nativeTaskReady`、`nativeHalSyncReady`、`fullLinuxCncProgramExecutionReady` 与当前能力边界一致,均保持 false。
|
||
- `task_hal_runtime_promoted=0` 仍是 task-HAL source manifest 的真实口径。
|
||
- `docs/source-reuse-map.md` 不再声称 task/motion/HAL Web simulation runtime 已 promoted 或 readiness 为 true。
|
||
- WASM smoke 明确断言 `fullLinuxCncProgramExecutionReady=false`。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_hal_readiness_contract.sh
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tests/native/verify_task_hal_phase0.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_sdk.sh
|
||
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
task_hal_readiness_task_hal_runtime_promoted=0
|
||
task_hal_readiness_nativeTaskReady=false
|
||
task_hal_readiness_nativeHalSyncReady=false
|
||
task_hal_readiness_doc_runtime_promoted_false=ok
|
||
task_hal_readiness_doc_native_task_false=ok
|
||
task_hal_readiness_doc_native_hal_false=ok
|
||
task_hal_readiness_doc_full_program_false=ok
|
||
task_hal_readiness_doc_unpromoted_classification=ok
|
||
task_hal_readiness_doc_native_task_true=absent
|
||
task_hal_readiness_doc_native_hal_true=absent
|
||
task_hal_readiness_doc_full_boundary_promoted_claim=absent
|
||
task_hal_readiness_doc_complete_claim=absent
|
||
task_hal_readiness_runtime_native_task_false=ok
|
||
task_hal_readiness_runtime_native_hal_false=ok
|
||
task_hal_readiness_runtime_full_program_false=ok
|
||
task_hal_readiness_wasm_test_full_program_false=ok
|
||
task_hal_readiness_contract_status=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
task_hal_readiness_status_contract=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
```
|
||
|
||
补充回归:
|
||
|
||
```text
|
||
task_hal_phase0_native_probe_gate=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-015 通过。readiness 的文档、manifest、runtime、WASM test 口径已经统一为未 promoted;`docs/source-reuse-map.md` 不再与代码中的 false readiness 状态矛盾。
|
||
|
||
## 2026-07-07 23:59 EDT emccanon 可编译子集验收
|
||
|
||
### 验收对象
|
||
|
||
T-014。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- task-HAL WASM build 已纳入 vendored `emccanon_wasm_subset.cc`。
|
||
- 该子集有明确上游 source path 和锚点:`src/emc/task/emccanon.cc` 的 `generate_fast_move()`、`generate_move()`、`STRAIGHT_TRAVERSE()`、`STRAIGHT_FEED()`。
|
||
- task runtime 的 linear motion 生成先通过 emccanon canonical linear-move envelope,再进入 taskintf command envelope 和 `lcmot_*` runtime edge。
|
||
- 完整 `emccanon.cc` 的 `CanonConfig_t`、`interp_list`、offset/unit conversion、NURBS、spindle/tool 等边界仍未 promoted,readiness 保持保守。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_emccanon_subset.sh
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_emccanon_subset.sh`:
|
||
|
||
```text
|
||
task_emccanon_subset_upstream=ok
|
||
task_emccanon_subset_source=ok
|
||
task_emccanon_subset_header=ok
|
||
task_emccanon_subset_upstream_generate_fast_move=ok
|
||
task_emccanon_subset_origin_generate_fast_move=ok
|
||
task_emccanon_subset_upstream_generate_move=ok
|
||
task_emccanon_subset_origin_generate_move=ok
|
||
task_emccanon_subset_upstream_STRAIGHT_TRAVERSE=ok
|
||
task_emccanon_subset_origin_STRAIGHT_TRAVERSE=ok
|
||
task_emccanon_subset_upstream_STRAIGHT_FEED=ok
|
||
task_emccanon_subset_origin_STRAIGHT_FEED=ok
|
||
task_emccanon_subset_origin_path=ok
|
||
task_emccanon_subset_build_included=ok
|
||
task_emccanon_subset_source_reuse=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
emccanon_subset_source_reuse_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-014 通过。task-HAL WASM build 已编译 vendored `emccanon_wasm_subset.cc`,linear motion 生成现在经由 emccanon canonical envelope,再经 taskintf envelope issue 到 standalone motion runtime。完整 `emccanon.cc` 仍未 promoted。
|
||
|
||
## 2026-07-07 23:51 EDT taskintf 可编译子集验收
|
||
|
||
### 验收对象
|
||
|
||
T-013。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- task-HAL WASM build 已纳入 vendored `taskintf_wasm_subset.cc`。
|
||
- 该子集有明确上游 source path 和锚点:`src/emc/task/taskintf.cc` 的 traj control、linear move、jog、home、aout 函数族。
|
||
- task runtime 的 motion command issuing 已通过该子集生成 command envelope,再转交现有 `lcmot_*` runtime edge。
|
||
- 完整 `taskintf.cc` 的 usrmot/NML/INI/native motion process 仍未 promoted,readiness 保持保守。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_taskintf_subset.sh
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_taskintf_subset.sh`:
|
||
|
||
```text
|
||
task_taskintf_subset_upstream=ok
|
||
task_taskintf_subset_source=ok
|
||
task_taskintf_subset_header=ok
|
||
task_taskintf_subset_upstream_emcTrajAbort=ok
|
||
task_taskintf_subset_origin_emcTrajAbort=ok
|
||
task_taskintf_subset_upstream_emcTrajPause=ok
|
||
task_taskintf_subset_origin_emcTrajPause=ok
|
||
task_taskintf_subset_upstream_emcTrajStep=ok
|
||
task_taskintf_subset_origin_emcTrajStep=ok
|
||
task_taskintf_subset_upstream_emcTrajResume=ok
|
||
task_taskintf_subset_origin_emcTrajResume=ok
|
||
task_taskintf_subset_upstream_emcTrajLinearMove=ok
|
||
task_taskintf_subset_origin_emcTrajLinearMove=ok
|
||
task_taskintf_subset_upstream_emcJogIncr=ok
|
||
task_taskintf_subset_origin_emcJogIncr=ok
|
||
task_taskintf_subset_upstream_emcJointHome=ok
|
||
task_taskintf_subset_origin_emcJointHome=ok
|
||
task_taskintf_subset_upstream_emcMotionSetAout=ok
|
||
task_taskintf_subset_origin_emcMotionSetAout=ok
|
||
task_taskintf_subset_origin_path=ok
|
||
task_taskintf_subset_build_included=ok
|
||
task_taskintf_subset_source_reuse=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
taskintf_subset_source_reuse_status=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-013 通过。task-HAL WASM build 已编译 vendored `taskintf_wasm_subset.cc`,当前 motion command issuing 经由该子集生成 task-to-motion command envelope,再序列化到 standalone `lcmot_*` runtime edge。完整 `taskintf.cc` 仍未 promoted。
|
||
|
||
## 2026-07-07 23:42 EDT emctask 可编译子集验收
|
||
|
||
### 验收对象
|
||
|
||
T-012。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- task-HAL WASM build 已纳入 vendored `emctask_wasm_subset.cc`。
|
||
- 该子集有明确上游 source path 和锚点:`src/emc/task/emctask.cc` 的 `determineMode()`、`determineState()`、`emcTaskUpdate()`。
|
||
- task runtime 在 `wasm_emcTaskUpdate()` 阶段实际调用该子集,并把 source reuse 证据写入 status JSON。
|
||
- readiness 仍保持保守 false;该子集不代表完整 `emctask.cc`、interpreter/NML/native process 已迁移完成。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_emctask_subset.sh
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_emctask_subset.sh`:
|
||
|
||
```text
|
||
task_emctask_subset_upstream=ok
|
||
task_emctask_subset_source=ok
|
||
task_emctask_subset_header=ok
|
||
task_emctask_subset_upstream_determine_mode=ok
|
||
task_emctask_subset_upstream_determine_state=ok
|
||
task_emctask_subset_upstream_update=ok
|
||
task_emctask_subset_origin_path=ok
|
||
task_emctask_subset_origin_determine_mode=ok
|
||
task_emctask_subset_origin_determine_state=ok
|
||
task_emctask_subset_origin_update=ok
|
||
task_emctask_subset_build_included=ok
|
||
task_emctask_subset_source_reuse=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
emctask_subset_source_reuse_status=ok
|
||
```
|
||
|
||
`node tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
run_gate_estop_rejected=ok
|
||
run_gate_estop_reset_rejected=ok
|
||
run_gate_manual_rejected=ok
|
||
run_gate_unhomed_rejected=ok
|
||
run_gate_homing_rejected=ok
|
||
run_gate_program_open_required=ok
|
||
run_gate_interpreter_plan_required=ok
|
||
run_gate_accepts_homed_open_plan=ok
|
||
task_command_send_queues_until_cycle=ok
|
||
task_command_json_host_boundary=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-012 通过。task-HAL WASM build 已编译 vendored `emctask_wasm_subset.cc`,runtime update 阶段实际调用该子集并在 status JSON 中暴露 source reuse 证据。该子集只覆盖 `emctask.cc` 的状态推导锚点;完整 task 源码迁移和 readiness promotion 仍保持后续任务。
|
||
|
||
## 2026-07-07 23:34 EDT JSON command host boundary 验收
|
||
|
||
### 验收对象
|
||
|
||
T-011。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `lctask_send_command_json()` 只解析 host JSON command envelope 并入队内部 `TaskCommand`。
|
||
- `wasm_emcTaskPlan()` 直接处理内部 command,不再通过递归调用 C ABI send 函数执行 task 语义。
|
||
- 未知 host JSON command 在 C ABI 边界被拒绝,不进入 pending command queue。
|
||
- 现有 task/motion/HAL smoke 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/native/verify_task_hal_phase0.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
```
|
||
|
||
`node tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
run_gate_estop_rejected=ok
|
||
run_gate_estop_reset_rejected=ok
|
||
run_gate_manual_rejected=ok
|
||
run_gate_unhomed_rejected=ok
|
||
run_gate_homing_rejected=ok
|
||
run_gate_program_open_required=ok
|
||
run_gate_interpreter_plan_required=ok
|
||
run_gate_accepts_homed_open_plan=ok
|
||
task_command_send_queues_until_cycle=ok
|
||
task_command_json_host_boundary=ok
|
||
```
|
||
|
||
`./tests/native/verify_task_hal_phase0.sh`:
|
||
|
||
```text
|
||
task_hal_phase0_native_probe_gate=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-011 通过。host JSON command 已被限制在 C ABI 边界解析,pending command queue 保存内部 `TaskCommand`,plan 阶段不再回调 `lctask_send_command_json()` 执行 task 语义。未知 host command 会被拒绝且不污染 command queue。
|
||
|
||
## 2026-07-07 23:10 EDT phase0 native probe 与 pause/resume/step 验收
|
||
|
||
### 验收对象
|
||
|
||
T-016、T-010。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `verify_task_hal_phase0.sh` 不再因为缺失 `xyzac-trt_cmds.hal` 失败。
|
||
- 缺失文件来源有明确修复路径:native probe 使用运行目录 overlay,优先引用只读上游 `../linuxcnc`,仅对缺失顶层条目从 `wasm-port/vendor/linuxcnc` 补齐。
|
||
- pause/resume/step 不在 command send 时直接 issue motion command,而是在 task cycle 的 execute 阶段发给 motion runtime。
|
||
- 现有 task/motion/HAL smoke 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/native/probe_trt_task_hal_runtime.sh
|
||
./tests/native/verify_task_hal_phase0.sh
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_hal_source_manifest.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/native/probe_trt_task_hal_runtime.sh`:
|
||
|
||
```text
|
||
trt_task_hal_source_proof_ready=1
|
||
trt_task_hal_probe_result=ready_disabled_by_default
|
||
```
|
||
|
||
`./tests/native/verify_task_hal_phase0.sh`:
|
||
|
||
```text
|
||
task_hal_phase0_native_probe_gate=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
pause_resume_step_motion_issue_from_execute=ok
|
||
```
|
||
|
||
`node tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
run_gate_estop_rejected=ok
|
||
run_gate_estop_reset_rejected=ok
|
||
run_gate_manual_rejected=ok
|
||
run_gate_unhomed_rejected=ok
|
||
run_gate_homing_rejected=ok
|
||
run_gate_program_open_required=ok
|
||
run_gate_interpreter_plan_required=ok
|
||
run_gate_accepts_homed_open_plan=ok
|
||
task_command_send_queues_until_cycle=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_sdk.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_hal_sdk_status_snapshot=ok
|
||
task_hal_feed_timed_motion_plan=ok
|
||
task_hal_comment_source_line_numbers=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_motion_hal_sync.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
motion_hal_servo_cycle=ok
|
||
motion_program_line_hal_sync=ok
|
||
switchkins_type_hal_sync=ok
|
||
jog_motion_status_sync=ok
|
||
motion_status_snapshot_struct=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
`./tools/verify_task_hal_source_manifest.sh`:
|
||
|
||
```text
|
||
task_hal_source_manifest_status=ok
|
||
task_hal_source_manifest_ready=1
|
||
task_hal_runtime_promoted=0
|
||
nativeTaskReady=false
|
||
nativeHalSyncReady=false
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-016、T-010 通过。phase0 native probe 的 `xyzac-trt_cmds.hal` 缺失问题已通过运行目录 overlay 闭合,未修改只读上游 `../linuxcnc`。pause/resume/step 已与 MDI/JOG/HOME 一样进入 execute 阶段 motion issue 队列,并由周期 snapshot 断言证明 send command 本身不直接改变 motion 状态。
|
||
|
||
## 2026-07-07 21:32 EDT wait/error subordinate sync 验收
|
||
|
||
### 验收对象
|
||
|
||
T-008、T-009。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `WAITING_FOR_MOTION_QUEUE` 由周期 `motion_snapshot.queue_full` 驱动。
|
||
- queueFull 时 task 不继续向 motion runtime issue execute motion command。
|
||
- queueFull 解除后 task 由 `WAITING_FOR_MOTION_QUEUE` 回到 `WAITING_FOR_MOTION`。
|
||
- motion queue/active depth 清空且 in-position 后,task 由 `WAITING_FOR_MOTION` 收敛到 `DONE`。
|
||
- 外部 motion abort/error 通过 subordinate sync 驱动 task `ERROR`。
|
||
- IO runtime-edge 注入错误通过 subordinate sync 驱动 task `ERROR`。
|
||
- task 自己发起的 abort 保持 cleanup 到 `DONE`,不误报为外部 motion error。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tools/verify_task_hal_source_manifest.sh
|
||
git diff --check -- wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.h wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp wasm-port/tools/build_task_hal_wasm.sh wasm-port/tests/wasm/node/verify_motion_hal_sync.mjs wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs wasm-port/tests/wasm/node/verify_task_state_matrix.mjs wasm-port/working
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
task_waits_on_motion_snapshot_queue=ok
|
||
motion_abort_drives_task_error=ok
|
||
io_error_drives_task_error=ok
|
||
```
|
||
|
||
`node tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
run_gate_estop_rejected=ok
|
||
run_gate_estop_reset_rejected=ok
|
||
run_gate_manual_rejected=ok
|
||
run_gate_unhomed_rejected=ok
|
||
run_gate_homing_rejected=ok
|
||
run_gate_program_open_required=ok
|
||
run_gate_interpreter_plan_required=ok
|
||
run_gate_accepts_homed_open_plan=ok
|
||
task_command_send_queues_until_cycle=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_sdk.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_hal_sdk_status_snapshot=ok
|
||
task_hal_feed_timed_motion_plan=ok
|
||
task_hal_comment_source_line_numbers=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_motion_hal_sync.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
motion_hal_servo_cycle=ok
|
||
motion_program_line_hal_sync=ok
|
||
switchkins_type_hal_sync=ok
|
||
jog_motion_status_sync=ok
|
||
motion_status_snapshot_struct=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
`./tools/verify_task_hal_source_manifest.sh`:
|
||
|
||
```text
|
||
task_hal_source_manifest_status=ok
|
||
task_hal_source_manifest_ready=1
|
||
task_hal_runtime_promoted=0
|
||
nativeTaskReady=false
|
||
nativeHalSyncReady=false
|
||
```
|
||
|
||
`git diff --check -- ...`:无输出,表示无空白错误。
|
||
|
||
`./tests/native/verify_task_hal_phase0.sh`:本条为 21:32 时的历史失败记录,23:10 已通过上方 phase0 native probe 验收闭合。
|
||
|
||
```text
|
||
trt_task_hal_source_proof_ready expected 1, got 0
|
||
from /home/mes123456/cnc_wams/wasm-port/build/task-hal/probe_trt_task_hal_runtime.stdout.log
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-008、T-009 通过。task 的 `WAITING_FOR_MOTION` / `WAITING_FOR_MOTION_QUEUE` 已依赖周期 motion snapshot;queueFull 场景会阻止 execute 阶段继续 issue motion command,并在 motion queue 可用后恢复等待、最终收敛到 `DONE`。外部 motion abort 和 IO shim error 均能通过 subordinate sync 驱动 task `ERROR`,task 自己发起的 abort cleanup 仍保持 `DONE`。
|
||
|
||
## 2026-07-07 21:21 EDT task 周期阶段拆分验收
|
||
|
||
### 验收对象
|
||
|
||
T-006、T-023、T-024、T-025。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- `lctask_run_cycles()` 已拆成 LinuxCNC `emctaskmain.cc` 式周期阶段。
|
||
- command read、plan、execute、motion update、subordinate sync、task update、top-level status、status write 在代码中有明确函数边界。
|
||
- state/mode/home/run gate 由 task cycle 消费 command 后触发,不由 send API 直接触发。
|
||
- MDI/JOG/HOME 的 motion issue 从 plan command handler 移到 execute 阶段队列。
|
||
- 现有 task/motion/HAL smoke 不回退。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
mdi_jog_home_motion_issue_from_execute=ok
|
||
```
|
||
|
||
`node tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
run_gate_estop_rejected=ok
|
||
run_gate_estop_reset_rejected=ok
|
||
run_gate_manual_rejected=ok
|
||
run_gate_unhomed_rejected=ok
|
||
run_gate_homing_rejected=ok
|
||
run_gate_program_open_required=ok
|
||
run_gate_interpreter_plan_required=ok
|
||
run_gate_accepts_homed_open_plan=ok
|
||
task_command_send_queues_until_cycle=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_sdk.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_hal_sdk_status_snapshot=ok
|
||
task_hal_feed_timed_motion_plan=ok
|
||
task_hal_comment_source_line_numbers=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_motion_hal_sync.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
motion_hal_servo_cycle=ok
|
||
motion_program_line_hal_sync=ok
|
||
switchkins_type_hal_sync=ok
|
||
jog_motion_status_sync=ok
|
||
motion_status_snapshot_struct=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-006、T-023、T-024、T-025 通过。`lctask_run_cycles()` 已形成可继续替换上游源码的周期骨架。MDI/JOG/HOME motion issue 已通过 `pending_execute_motion_commands` 在 `wasm_emcTaskExecute()` 阶段发出。
|
||
|
||
## 2026-07-07 21:01 EDT task 周期 motion snapshot 与 status buffer 验收
|
||
|
||
### 验收对象
|
||
|
||
T-002、T-003、T-004、T-005、T-018、T-019、T-020、T-021、T-022、T-026。
|
||
|
||
本轮验收目标是证明:
|
||
|
||
- 当前 task/motion/HAL 基线已重新固定。
|
||
- motion runtime 已提供结构化 `LcmotStatusSnapshot`,task 周期不再解析 motion JSON。
|
||
- `lctask_run_cycles()` 会刷新 task 持有的 motion snapshot。
|
||
- `lctask_read_status_json()` 只导出最后一次 task status write,不因读取而同步最新 low-level motion。
|
||
- `lctask_send_command_json()` 只入队 command;不调用 `runCycles()` 时 task 语义状态不变化。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_hal_source_manifest.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
node tests/wasm/node/verify_task_state_matrix.mjs
|
||
./tests/native/verify_task_hal_phase0.sh
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`./tools/verify_task_hal_source_manifest.sh`:
|
||
|
||
```text
|
||
task_hal_source_manifest_status=ok
|
||
task_hal_source_manifest_ready=1
|
||
task_hal_source_count=20
|
||
task_source_count=7
|
||
hal_source_count=4
|
||
motion_source_count=6
|
||
task_hal_reference_source_ready=1
|
||
task_hal_vendor_source_ready=0
|
||
task_hal_runtime_promoted=0
|
||
nativeTaskReady=false
|
||
nativeHalSyncReady=false
|
||
```
|
||
|
||
`./tests/wasm/node/verify_motion_hal_sync.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
motion_hal_servo_cycle=ok
|
||
motion_program_line_hal_sync=ok
|
||
switchkins_type_hal_sync=ok
|
||
jog_motion_status_sync=ok
|
||
motion_status_snapshot_struct=ok
|
||
motion_hal_sync_smoke=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_wasm.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_runtime_smoke=ok
|
||
task_status_from_linuxcnc_runtime=ok
|
||
task_commands_drive_motion_runtime=ok
|
||
mdi_jog_task_motion_hal_sync=ok
|
||
pause_freezes_motion_queue=ok
|
||
resume_restores_interp_resume_state=ok
|
||
step_returns_to_paused=ok
|
||
task_status_updates_from_cycle_snapshot=ok
|
||
```
|
||
|
||
`./tests/wasm/node/verify_task_hal_sdk.sh`:
|
||
|
||
```text
|
||
linuxcnc_task_hal_wasm_build=ok
|
||
linuxcnc_task_hal_sdk=ok
|
||
task_hal_sdk_status_snapshot=ok
|
||
task_hal_feed_timed_motion_plan=ok
|
||
task_hal_comment_source_line_numbers=ok
|
||
```
|
||
|
||
`node tests/wasm/node/verify_task_state_matrix.mjs`:
|
||
|
||
```text
|
||
task_state_matrix=ok
|
||
run_gate_estop_rejected=ok
|
||
run_gate_estop_reset_rejected=ok
|
||
run_gate_manual_rejected=ok
|
||
run_gate_unhomed_rejected=ok
|
||
run_gate_homing_rejected=ok
|
||
run_gate_program_open_required=ok
|
||
run_gate_interpreter_plan_required=ok
|
||
run_gate_accepts_homed_open_plan=ok
|
||
task_command_send_queues_until_cycle=ok
|
||
```
|
||
|
||
`./tests/native/verify_task_hal_phase0.sh`:本条为 21:01 时的历史失败记录,23:10 已通过上方 phase0 native probe 验收闭合。
|
||
|
||
```text
|
||
trt_task_hal_source_proof_ready expected 1, got 0
|
||
from /home/mes123456/cnc_wams/wasm-port/build/task-hal/probe_trt_task_hal_runtime.stdout.log
|
||
```
|
||
|
||
对应 stdout log 关键内容:
|
||
|
||
```text
|
||
trt_task_hal_missing_source_xyzac_trt_cmds_hal=/home/mes123456/cnc_wams/wasm-port/../linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal
|
||
trt_task_hal_source_proof_ready=0
|
||
trt_task_hal_runtime_ready=1
|
||
nativeTaskReady=false
|
||
nativeHalSyncReady=false
|
||
native_probe_status=blocked_missing_source
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-002、T-003、T-004、T-005、T-018、T-019、T-020、T-021、T-022、T-026 通过。task status 的 motion 部分已经来自 task 周期写入的结构化 snapshot;low-level motion 单独 step 后,task status 不会自动同步,必须等待下一次 `lctask_run_cycles()`。task command 发送也已改为入队,状态变化必须等待 task cycle 消费 command。
|
||
|
||
T-016 在 21:01 时仍阻塞;后续 23:10 已通过运行目录 overlay 修复 `xyzac-trt_cmds.hal` 缺失输入并闭合。
|
||
|
||
## 2026-07-07 19:45 EDT 上游 task 源码替换分解验收
|
||
|
||
### 验收对象
|
||
|
||
把 `emctask.cc`、`taskintf.cc`、`emccanon.cc` 的具体实施步骤拆解到函数族、shim、验收和任务矩阵。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
find wasm-port/working -maxdepth 1 -type f | sort
|
||
rg -n "T-031|D-007|emctask.cc|taskintf.cc|emccanon.cc|B1|B6" wasm-port/working
|
||
git diff --check -- wasm-port/working
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`find wasm-port/working -maxdepth 1 -type f | sort`:
|
||
|
||
```text
|
||
wasm-port/working/01-项目功能内容.md
|
||
wasm-port/working/02-项目程序开发详细步骤.md
|
||
wasm-port/working/03-推进台账.md
|
||
wasm-port/working/04-任务矩阵.md
|
||
wasm-port/working/05-验收证据.md
|
||
wasm-port/working/06-决策记录.md
|
||
wasm-port/working/07-emctaskmain周期对标蓝图.md
|
||
wasm-port/working/08-上游task源码替换分解.md
|
||
wasm-port/working/README.md
|
||
```
|
||
|
||
`rg -n "T-031|D-007|emctask.cc|taskintf.cc|emccanon.cc|B1|B6" wasm-port/working` 命中摘要:
|
||
|
||
```text
|
||
wasm-port/working/04-任务矩阵.md: T-031
|
||
wasm-port/working/06-决策记录.md: D-007
|
||
wasm-port/working/08-上游task源码替换分解.md: emctask.cc
|
||
wasm-port/working/08-上游task源码替换分解.md: taskintf.cc
|
||
wasm-port/working/08-上游task源码替换分解.md: emccanon.cc
|
||
wasm-port/working/08-上游task源码替换分解.md: B1
|
||
wasm-port/working/08-上游task源码替换分解.md: B6
|
||
```
|
||
|
||
`git diff --check -- wasm-port/working`:无输出,表示无空白错误。
|
||
|
||
### 结论
|
||
|
||
T-031 通过。后续源码替换不再只停留在泛泛“引入上游文件”,而是按 `taskintf.cc` minimal bridge、`emctask.cc` state/update/plan、`emccanon.cc` straight/spindle/tool/io 子集逐批实施。
|
||
|
||
## 2026-07-07 19:29 EDT 实施文档细化验收
|
||
|
||
### 验收对象
|
||
|
||
继续完善 `wasm-port/working` 实施文档,使其完全对标“把 `emctaskmain.cc` 周期结构迁到 `wasm-port`”这一目标。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
find wasm-port/working -maxdepth 1 -type f | sort
|
||
rg -n "T-017|D-005|emctaskmain 周期对标蓝图|LcmotStatusSnapshot|command read" wasm-port/working
|
||
git status --short wasm-port/working
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`find wasm-port/working -maxdepth 1 -type f | sort`:
|
||
|
||
```text
|
||
wasm-port/working/01-项目功能内容.md
|
||
wasm-port/working/02-项目程序开发详细步骤.md
|
||
wasm-port/working/03-推进台账.md
|
||
wasm-port/working/04-任务矩阵.md
|
||
wasm-port/working/05-验收证据.md
|
||
wasm-port/working/06-决策记录.md
|
||
wasm-port/working/07-emctaskmain周期对标蓝图.md
|
||
wasm-port/working/README.md
|
||
```
|
||
|
||
`rg -n "T-017|D-005|emctaskmain 周期对标蓝图|LcmotStatusSnapshot|command read" wasm-port/working` 命中摘要:
|
||
|
||
```text
|
||
wasm-port/working/04-任务矩阵.md: T-017
|
||
wasm-port/working/04-任务矩阵.md: LcmotStatusSnapshot
|
||
wasm-port/working/06-决策记录.md: D-005
|
||
wasm-port/working/07-emctaskmain周期对标蓝图.md: command read
|
||
```
|
||
|
||
`git status --short wasm-port/working`:
|
||
|
||
```text
|
||
?? wasm-port/working/
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-017 通过。实施文档已新增独立周期对标蓝图,并把后续实现拆分到 T-018 到 T-030。后续代码实施应从 T-002 基线证据开始,再进入 snapshot/status buffer/command buffer 周期骨架。
|
||
|
||
## 2026-07-07 19:17 EDT 文档创建验收
|
||
|
||
### 验收对象
|
||
|
||
创建 `wasm-port/working` 推进文档,用于后续推进 LinuxCNC `emctaskmain.cc` task 主循环完全对标。
|
||
|
||
### 证据命令
|
||
|
||
```bash
|
||
find wasm-port/working -maxdepth 1 -type f | sort
|
||
git status --short wasm-port/working
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
`find wasm-port/working -maxdepth 1 -type f | sort`:
|
||
|
||
```text
|
||
wasm-port/working/01-项目功能内容.md
|
||
wasm-port/working/02-项目程序开发详细步骤.md
|
||
wasm-port/working/03-推进台账.md
|
||
wasm-port/working/04-任务矩阵.md
|
||
wasm-port/working/05-验收证据.md
|
||
wasm-port/working/06-决策记录.md
|
||
wasm-port/working/README.md
|
||
```
|
||
|
||
`git status --short wasm-port/working`:
|
||
|
||
```text
|
||
?? wasm-port/working/
|
||
```
|
||
|
||
### 结论
|
||
|
||
T-001 通过。README 和 01-06 号推进文档均已创建;任务矩阵、推进台账、验收证据和决策记录具备初始内容。`git status` 显示 `wasm-port/working/` 为新增未跟踪目录,符合本轮只创建文档的预期。
|
||
|
||
### 当前已知基线命令
|
||
|
||
后续 `T-002` 需要正式运行并记录完整输出:
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
./tools/verify_task_hal_source_manifest.sh
|
||
./tests/wasm/node/verify_motion_hal_sync.sh
|
||
./tests/wasm/node/verify_task_hal_wasm.sh
|
||
./tests/wasm/node/verify_task_hal_sdk.sh
|
||
./tests/native/verify_task_hal_phase0.sh
|
||
```
|
||
|
||
### 已知结果口径
|
||
|
||
上一轮分析已确认:
|
||
|
||
- `verify_task_hal_source_manifest.sh` 可通过,但显示 `task_hal_runtime_promoted=0`、`nativeTaskReady=false`、`nativeHalSyncReady=false`。
|
||
- `verify_motion_hal_sync.sh` 可通过。
|
||
- `verify_task_hal_wasm.sh` 可通过。
|
||
- `verify_task_hal_phase0.sh` 当前失败,原因是缺少 `linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal`。
|
||
|
||
正式推进时,以每轮重新运行结果为准,不沿用旧输出冒充新证据。
|
||
|
||
## 待补证据类型
|
||
|
||
- 命令输出。
|
||
- Node/WASM 测试报告。
|
||
- Browser smoke 页面或截图。
|
||
- 如后续接入 CI/job 系统,记录 `job_id`。
|
||
- 如后续生成对标报告,记录 `report_id` 和报告路径。
|
||
- 如后续生成 PDF 或截图,记录文件路径。
|