Update wasm port validation state

This commit is contained in:
wangdequan
2026-07-10 03:22:55 -04:00
parent 49a8bad404
commit 2e922ad628
91 changed files with 3292 additions and 1488 deletions

View File

@@ -470,8 +470,8 @@ T-046 已完成。主 RUN 文件路径已不再依赖 host JSON motion plan
### 影响文件
- `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_task_subset/emccanon_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/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/tests/wasm/node/verify_task_hal_sdk.mjs`
@@ -519,8 +519,8 @@ T-045 已完成。M62-M68/M66 已有 `EMC_MOTION_SET_DOUT` / `EMC_MOTION_SET_AOU
### 影响文件
- `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_task_subset/emccanon_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/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_spindle_tool.sh`
@@ -571,8 +571,8 @@ T-044 已完成。spindle/tool command 子集已有 `EMC_SPINDLE_*` / `EMC_TOOL_
### 影响文件
- `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_task_subset/emccanon_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/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`
@@ -620,8 +620,8 @@ T-043 已完成。`DWELL()` 和 `SET_MOTION_CONTROL_MODE()` 已通过 `emccanon_
### 影响文件
- `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_task_subset/emccanon_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/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`
@@ -669,8 +669,8 @@ T-042 已完成。`emccanon.cc` straight traverse/feed 已有明确 `EMC_TRAJ_LI
### 影响文件
- `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_task_subset/emccanon_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/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`
@@ -737,8 +737,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
### 改了哪些文件
- `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/emctask_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/emctask_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/tests/wasm/node/verify_task_state_matrix.mjs`
@@ -812,8 +812,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
### 改了哪些文件
- `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/emctask_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/emctask_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_emctask_plan_open_wait.sh`
@@ -942,8 +942,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
### 改了哪些文件
- `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/emctask_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/emctask_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_emctask_subset.sh`
@@ -1020,8 +1020,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.h`
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.cc`
- `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_task_hal_wasm.mjs`
@@ -1095,8 +1095,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.h`
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.cc`
- `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_task_hal_wasm.mjs`
@@ -1175,8 +1175,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.h`
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_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_taskintf_subset.sh`
@@ -1226,7 +1226,7 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
- 新增 `lcmot_read_error_message()`
- 在 abort、motion error、soft-limit 注入时写入窄 error message queue。
- 从 staged INI 的 `COORDINATES` 计算 axes/joints供 config snapshot 使用。
5. 扩展 `vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.hh/.cc`
5. 扩展 `runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.hh/.cc`
- 新增 `lc_taskintf_subset_motion_init()`
- 新增 `lc_taskintf_subset_motion_update()`,通过 `lcmot_read_status_snapshot()``lcmot_read_config_snapshot()``lcmot_read_error_message()` 获取 motion 状态。
- 新增 `lc_taskintf_subset_motion_abort()`
@@ -1251,8 +1251,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.h`
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.cc`
- `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_task_hal_wasm.mjs`
@@ -1612,7 +1612,7 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
- `STRAIGHT_TRAVERSE()`
- `STRAIGHT_FEED()`
2. 确认完整 `emccanon.cc` 依赖 `CanonConfig_t`、offset/unit conversion、`interp_list`、state tags、NURBS、spindle/tool/coolant 等大量 canonical callback 边界,不适合在 T-014 直接完整编译。
3. 新增 `vendor/linuxcnc/src/emc/task/emccanon_wasm_subset.hh``emccanon_wasm_subset.cc`
3. 新增 `runtime/core/linuxcnc_task_subset/emccanon_wasm_subset.hh``emccanon_wasm_subset.cc`
- 定义 `LcEmcCanonSubsetPose``LcEmcCanonSubsetLinearMove`
- 实现 `lc_emccanon_subset_straight_traverse()``lc_emccanon_subset_straight_feed()`
- 保留 source path 和 anchor list`src/emc/task/emccanon.cc``generate_fast_move,generate_move,STRAIGHT_TRAVERSE,STRAIGHT_FEED`
@@ -1627,8 +1627,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
### 改了哪些文件
- `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_task_subset/emccanon_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/emccanon_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp`
- `wasm-port/tools/build_task_hal_wasm.sh`
- `wasm-port/tools/verify_task_emccanon_subset.sh`
@@ -1662,7 +1662,7 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
- `emcJointHome()`
- `emcMotionSetAout()`
2. 确认完整 `taskintf.cc` 直接依赖 `usrmot`、NML、INI config 和 native motion process edge不适合在 T-013 直接完整编译。
3. 新增 `vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.hh``taskintf_wasm_subset.cc`
3. 新增 `runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.hh``taskintf_wasm_subset.cc`
- 定义 `LcTaskIntfSubsetMotionCommand` 作为 task-to-motion command envelope。
- 实现 traj control、linear move、jog incr、joint home、set aout 的最小 command envelope 生成函数。
- 保留 source path 和 anchor list`src/emc/task/taskintf.cc` 及对应函数族。
@@ -1679,8 +1679,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
### 改了哪些文件
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/taskintf_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/taskintf_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp`
- `wasm-port/tools/build_task_hal_wasm.sh`
- `wasm-port/tools/verify_task_taskintf_subset.sh`
@@ -1709,13 +1709,13 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
1. 复核 T-012 要求,确认当前 `wasm-port/vendor/linuxcnc/src/emc/task` 尚不存在完整 task 源码,`verify_task_hal_source_manifest.sh` 仍显示 task 源码 vendor-ready 为 false。
2. 读取上游 `/home/mes123456/cnc_wams/linuxcnc/src/emc/task/emctask.cc``determineMode()``determineState()``emcTaskUpdate()` 锚点,确认这组状态推导逻辑可以先做窄子集,不拉入 interpreter、NML、dlopen、IO/native process 边界。
3. 新增 `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.hh``emctask_wasm_subset.cc`
3. 新增 `wasm-port/runtime/core/linuxcnc_task_subset/emctask_wasm_subset.hh``emctask_wasm_subset.cc`
- 暴露 `LcEmcTaskSubsetUpdateInput` / `LcEmcTaskSubsetUpdateResult`
- 实现上游 `determineMode()``determineState()``emcTaskUpdate()` 的最小状态推导子集。
- 保留 source path 和 anchor list`src/emc/task/emctask.cc``determineMode,determineState,emcTaskUpdate`
4. 更新 `tools/build_task_hal_wasm.sh`
- 增加 `vendor/linuxcnc/src` include。
-`vendor/linuxcnc/src/emc/task/emctask_wasm_subset.cc` 纳入 task-HAL WASM 构建。
-`runtime/core/linuxcnc_task_subset/emctask_wasm_subset.cc` 纳入 task-HAL WASM 构建。
5. 更新 `linuxcnc_task_hal_wasm.cpp`
-`wasm_emcTaskUpdate()` 阶段调用 `lc_emctask_subset_update()`
- 在 status JSON 中新增 `emctaskSourceReuse`,暴露 `emctaskSubsetCompiled`、source path、anchors、derived mode/state、motion line 等证据。
@@ -1729,8 +1729,8 @@ T-041 已完成。`emccanon.cc` 的 canon init/reset/finish/unit/external positi
### 改了哪些文件
- `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.hh`
- `wasm-port/vendor/linuxcnc/src/emc/task/emctask_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_task_subset/emctask_wasm_subset.hh`
- `wasm-port/runtime/core/linuxcnc_task_subset/emctask_wasm_subset.cc`
- `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp`
- `wasm-port/tools/build_task_hal_wasm.sh`
- `wasm-port/tools/verify_task_emctask_subset.sh`