Files
cnc_wams/textbak/text30.txt
wangdequan 626bcfe8e3 继续完成 web-rtcp-5axis-sim-plan
结论:完成 LinuxCNC kinematics WASM ABI 覆盖,并将 web-rtcp-5axis-sim-plan 的 RTCP frame/boundary adapter 接到 xyzac-trt kinematics SDK;Node、build、browser smoke 验证通过。
2026-06-21 16:44:29 +08:00

217 lines
6.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
项目接续文件LinuxCNC 移植到数控系统仿真工作的完成度结论
生成时间2026-06-20 CST
本文件接替 `text29.txt`,用于回答:
```text
将 “linuxcnc” 移植到数控系统仿真工作,是否全部完成?
```
一、总结论
```text
没有全部完成。
```
更准确地说:
```text
当前已经完成了可交付的 WASM/browser 数控仿真主路径和大量 LinuxCNC-owned
语义 proof包括 interpreter、INI、tool DB、Python remap、OPFS/session、
virtual HAL、浏览器仿真页面和 release gate 证据链。
但如果“全部完成”定义为完整移植 LinuxCNC 的全部 sim configs、外部进程模型、
UI 进程、native HAL module ABI、硬实时 motion/HAL 运行时和所有上游演示行为,
则仍未完成。
```
因此当前状态应记录为:
```text
阶段性可用 / 当前仿真主范围基本完成;
完整 LinuxCNC 全量移植未完成;
不得宣称 100% 完成。
```
二、当前已经完成的关键结果
1. Node/WASM sim-config inventory baseline 已提升到:
```text
sim_configs_wasm_node_inventory_executed=82
sim_configs_wasm_node_inventory_passed=82
sim_configs_wasm_node_inventory_skipped=77
sim_configs_wasm_node_inventory_unexpected_fail=0
```
2. `L4-PYTHON-REMAP` 已从当前 skip summary 中清除。
```text
53 个 Python-remap inventory rows 已完成:
- row_runtime_transcript_ready=1
- native_pass_ready=1
- wasm_node_pass_ready=1
- browser_pass_ready=1
- baseline promotion 已进入 PASS=82 / SKIP=77。
```
对应最新记录见 `text29.txt`。
3. `L4-TOOL-DB` 已不再计入当前 skip summary。
`axis/db_demo/base.ngc` 的 tool DB proof chain 已完成接入,当前
`wasm-port/docs/sim-configs-coverage-handoff.md` 记录:
```text
L4-TOOL-DB is no longer counted in the current skip summary
```
4. 当前 skip summary 仍为:
```text
ASSET-ONLY=65
L4-USER-M-PROCESS=1
NON_MAIN_CLASS=10
UPSTREAM-DEMO=1
```
这说明剩余 77 个 skipped rows 不再是 Python-remap / tool DB 批量阻塞。
5. 浏览器仿真主路径已具备可用能力:
```text
- AXIS 风格 simulation UI
- LinuxCNC-backed interpreter WASM 执行;
- canonical events / toolpath / playback
- OPFS/session persistence
- virtual HAL 状态和基础 halcmd/motion 仿真;
- 多个 browser smoke / Node smoke / host gate 证据。
```
三、仍未完成或不能宣称完成的部分
1. `L4-USER-M-PROCESS` 的 Web/virtual HAL 仿真状态 proof 已完成,但
inventory promotion 仍未完成。
当前剩余 hard block
```text
path=axis/vismach/millturn/example.ngc
ini=axis/vismach/millturn/millturn.ini
blocked=L4-USER-M-PROCESS
boundary_kind=external_user_m_process
execution_enabled=0
promotion_allowed=0
notes=keep_blocked_until_m128_m129_state_proof
```
该 row 依赖 M128 / M129 external user-M process 边界。当前
`runRealBrowserSimulation()` 已接入受控的 source-derived virtual HAL proof
```text
apiName=real-browser-simulation-millturn-user-m-process-proof
M429 -> M129 -> turn
M428 -> M128 -> mill
motion.switchkins-type / motion.analog-out-03
kinstype.is-0 / kinstype.is-1
ini.x.* / ini.z.* limit pins
```
但浏览器仍不承诺 arbitrary external process execution且该 proof 不等于
sim-config inventory promotion。当前仍需要独占 LinuxCNC native runtime opt-in probe
达到:
```text
millturn_user_m_runtime_probe_status=runtime_state_probe_passed
```
之后才允许继续 Node inventory promotion gate、browser/host promotion proof 和
manual promotion lock review。
2. `ASSET-ONLY=65` 不代表可执行主程序未做完,而是资产/子程序类行。
这类 row 多为 remap subroutine、macro asset、辅助文件不能被当作 standalone main
program 直接执行,也不应为了降低 skip 数字而伪 promotion。
3. `NON_MAIN_CLASS=10` 仍是非主程序类别。
这类 row 需要继续保持分类边界,不能作为主程序执行完成度计算。
4. `UPSTREAM-DEMO=1` 仍是上游演示行为边界。
除非有 LinuxCNC-owned runtime proof 和明确 promotion gate否则不能强行转 PASS。
5. 完整 LinuxCNC native runtime 没有被完整搬进浏览器。
以下仍不是当前项目已经完成的范围:
```text
- Linux kernel hard-realtime ABI
- native HAL module ABI
- arbitrary external hardware driver ABI
- arbitrary LinuxCNC UI process emulation
- arbitrary external user-M executable process
- 完整 native milltask / halcmd / halrun / realtime process graph
- 全部上游 sim configs 的完整运行时等价。
```
四、应如何对外表述当前完成度
推荐表述:
```text
LinuxCNC 到 WASM/browser 数控仿真的当前可交付主范围已经基本完成,
并且 inventory baseline 已提升到 PASS=82 / SKIP=77 / unexpected_fail=0。
核心 interpreter、INI、tool DB、Python remap、OPFS/session、virtual HAL 和
浏览器仿真页面已有 LinuxCNC-owned proof 链路。
但完整移植尚未全部完成。剩余明确边界包括 L4-USER-M-PROCESS=1以及
ASSET-ONLY、NON_MAIN_CLASS、UPSTREAM_DEMO 等不能被当作可执行主程序直接 promotion
的分类。当前不得宣称 LinuxCNC 全量 100% 移植完成。
```
不推荐表述:
```text
LinuxCNC 已全部移植完成。
全部 sim configs 已完成。
浏览器已完整替代 LinuxCNC native runtime。
external user-M process 已完成并已 promotion。
```
五、下一步建议
如果继续推进“全部完成”方向,优先顺序应为:
```text
1. 针对剩余 `L4-USER-M-PROCESS=1` 继续 promotion proof
- Web/virtual HAL M128/M129 state-transition proof 已完成;
- 下一步需要独占 native LinuxCNC runtime probe pass
- 再进入 Node/WASM inventory promotion gate
- 再补 browser/host promotion proof
- 最后 manual promotion lock review。
2. 保持 `ASSET-ONLY` 和 `NON_MAIN_CLASS` 分类,不为降低 skip 数字而伪执行。
3. 若要继续减少 skip只能逐 row 判断是否存在真实 main-program promotion path。
4. 更新旧的 tracker/文档中仍写 `L4-PYTHON-REMAP` 或 `L4-TOOL-DB` locked 的过期描述,
使它们与当前 PASS=82 / SKIP=77 baseline 对齐。
5. 在宣称当前范围完成前,重新运行项目 release gate
`wasm-port/tests/host/verify_project_release_gate.sh`
```
六、本文件结论
```text
结论:未全部完成。
当前可以视为“LinuxCNC-backed WASM/browser 数控仿真主路径阶段性完成”,
但不能视为“LinuxCNC 全量移植完成”。
下一轮若继续实质推进,应优先处理唯一剩余 inventory promotion hard runtime block
`L4-USER-M-PROCESS=1` / `axis/vismach/millturn/example.ngc`。
```