# working 索引 本目录记录 `xyzbc-trt` Web 数控系统仿真推进资料,用于按任务矩阵继续开发和验收。 文件: - `01-项目功能内容.md`:目标功能、LinuxCNC 对标点、WASM/OPFS 满足度。 - `02-项目程序开发详细步骤.md`:从源码对标到 Web 实现、构建、验证的步骤。 - `03-推进台账.md`:每轮做了什么、改了哪些文件、验证了什么、下一步。 - `04-任务矩阵.md`:任务编号、状态、验收标准,防止重复做。 - `05-验收证据.md`:命令、输出、页面、证据路径和当前阻塞。 - `06-决策记录.md`:关键决策及理由。 - `07-全量对标追踪矩阵.md`:逐项映射 `xyzbc-trt-runtime-files.md` 的真实 LinuxCNC 功能到 Web 对标目标、JSON 证据和缺口。 - `08-xyzbc-trt-界面与图标分析.md`:面向 Web 界面开发的页面区域、PyVCP/SWITCHKINS、Vismach、业务页面和 gmoccapy 图标资产清单。 - `09-设计任务书与技术方案整合.md`:从 DOCX 设计任务书整合出的 Markdown 版本,保留任务书、技术方案、程序逻辑分析、状态联锁和图片引用。 - `11-LinuxCNC源码与真实执行严格对标任务.md`:以 `/home/mes123456/cnc_wams/linuxcnc` 为唯一 native 权威源,整理源码、配置、HAL、Vismach、AXIS、PyVCP、解释器、task/HAL、真实运行采样和 Web 复现的新增严格对标任务。 - `12-20260704-真实执行复验与缺失功能工作计划.md`:记录 2026-07-04 18:12 EDT 重新真实执行 native/Web/compare 后的缺失功能分析和后续工作计划。 - `18-20260707-AXIS主控制按钮调用链与Web完善指南.md`:在两份 `项目分析/AXIS...` 文档和 LinuxCNC 源码复核基础上,整理急停、上电、Home、Run、Pause/Resume、Step 的 task/motion 调用链、状态机制、Web/WASM 完善清单和验收矩阵。 - `19-20260707-AXIS按钮LinuxCNC-task-motion状态机制源码分析.md`:从 LinuxCNC C++ task/motion/homing 源码角度整理 AXIS 按钮真实调用链、状态记录和 Web 对标字段。 - `20-20260707-AXIS按钮LinuxCNC真实C++对标实施步骤.md`:由 19 号源码分析拆分出的详细实施步骤,要求以 LinuxCNC C++ 真实状态机为准,不以 `compare 60/60 pass` 作为完成依据。 - `21-20260707-AXIS按钮LinuxCNC真实C++对标验收测试.md`:由 19 号源码分析拆分出的验收测试文档,定义功能级硬检查、非法命令矩阵、真实程序执行验收和 `functionalSummary` 通过标准。 当前新增关注点: - 2026-07-08 17:26 EDT 已按用户要求全面执行目标项目功能测试,并新增 `npm run smoke:buttons` 全按钮浏览器测试入口:覆盖 `AXIS_BUTTON_PARITY` 的 63 个按钮/动作条目,逐项检查 DOM 控件、LinuxCNC 来源元数据和点击后的状态效果;本轮同时修复 M428/M429/M430 MDI 后 task/HAL 状态回写覆盖 `kinsType` 的问题,并修正旧默认机型/旧项目根测试口径。完整 Node 测试集、WASM status contract、Task/HAL SDK、build、browser smoke、全按钮 smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`。 - 2026-07-08 10:42 EDT 已按用户要求在目标 Web 项目中删除顶层旧字段:`taskHalStatus` 正常形态不再输出或消费 `task`/`motionStatus`,store、policy、feedback、evidence 采集统一读取 `emcStatus` 和 `ui`;旧字段只保留在拒绝输入的负向测试和错误提示中。Node smoke、WASM status JSON contract、Task/HAL SDK、build、browser smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`。 - 2026-07-08 10:01 EDT 已按用户要求移除旧字段兼容:`normalizeTaskHalStatus()` 现在缺少 `StandaloneEmcStatus`/`emcStatus.task`/`emcStatus.motion` 时直接失败,不再从旧 `status.task` 或 `status.motionStatus` 回退;旧格式拒绝检查、Node smoke、browser smoke、WASM status JSON contract、Task/HAL SDK、Web evidence 和 compare 均通过。 - 2026-07-08 09:50 EDT 已完成新版 `wasm-port` task/HAL WASM 状态合同适配:Web runtime 以 `StandaloneEmcStatus`/`emcStatus` 为唯一输入合同,拒绝旧 `task`/`motionStatus` 输入字段;目标 Node smoke、WASM status JSON contract、SDK smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`。 - 2026-07-07 19:03 EDT 已按“完成 working 中全部工作”重新执行当前收口复验:native LinuxCNC evidence、Web evidence、compare、Node smoke、build、Task/HAL 状态矩阵、Task/HAL WASM/SDK smoke、browser smoke 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`。 - 2026-07-07 18:57 EDT 已完成 20/21 号文档要求的功能级 compare 增强:`compare-xyzbc-trt-evidence.json` 现在同时输出 `surfaceSummary` 和 `functionalSummary`;最新结果为 `surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`,硬规则覆盖 `cppTaskStateMachineParity`、`cppModeGateParity`、`cppHomingParity`、`cppRunGateParity`、`cppPauseResumeParity`、`cppStepParity`、`illegalCommandParity`、`realProgramExecutionParity`。 - 2026-07-07 18:35 EDT 已将 19 号源码分析拆分为 20 号实施步骤和 21 号验收测试。后续结论必须区分 `surfaceSummary` 和 `functionalSummary`;`compare 60/60 pass` 只代表表面规则通过,真实通过必须证明 Web 行为符合 LinuxCNC C++ `emctaskmain.cc`、`emctask.cc`、`taskintf.cc`、`motion/command.c`、`control.c`、`homing.c` 的状态机和真实程序执行结果。 - 2026-07-07 18:18 EDT 已完成 AXIS 主控制按钮状态链路收敛:`ESTOP/RESET/Power/Home/Run/Pause/Resume/Step` 统一以 LinuxCNC `task.state + task.mode + interpState + motion/home status` 为事实来源;Web policy、store、Task/HAL WASM、evidence 采集和 smoke/compare 已同步,最新 compare 为 `60/60 pass`、`blockers=[]`、`requiredImprovements=[]`。 - 2026-07-06 00:22 EDT 新任务:完全对标 `/home/mes123456/cnc_wams/linuxcnc` 中 `xyzbc-trt` 的 AXIS/task 状态联锁,重整 Web 仿真系统 `解除 ESTOP`、`上电`、`Home All`、`Run`、`暂停/继续` 功能逻辑;要求修复当前混乱状态流,并通过源码对照、自动化 smoke、browser 验证和 evidence/compare 严格复验。 - 2026-07-05 18:57 EDT 已按 LinuxCNC AXIS 源码修复 Pause:工具栏按钮恢复为 `.toolbar.program_pause -> task_pauseresume` 语义,运行中点击暂停、暂停中点击继续;菜单 Pause/Resume 仍为独立命令。Node smoke、browser smoke、build、native/Web/compare 均通过,最新 compare 为 `60/60 pass`。 - 2026-07-05 18:18 EDT 已按 `working/12-20260704-真实执行复验与缺失功能工作计划.md` 的 P-002 规则再次执行全量复验:native LinuxCNC、Web evidence、compare、build、Node smoke、browser smoke 均通过;最新 `compare-xyzbc-trt-evidence.json` 为 `60/60 pass`、`blockers=[]`、`requiredImprovements=[]`。 - 2026-07-05 18:08 EDT 已按用户要求重新执行“除硬件相关外完全对标”复验:native LinuxCNC、Web evidence、compare、build、Node smoke、browser smoke 均通过;最新 `compare-xyzbc-trt-evidence.json` 为 `60/60 pass`、`blockers=[]`、`requiredImprovements=[]`。 - 当前 native 权威源为 `/home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini` 及其直接引用的 LinuxCNC 源码、配置、HAL、PyVCP、Vismach、remap、NGC、tool table、parameter file、rtlib 和启动入口;用户所述“linuxcnc源程序”的本工作区实际路径为 `/home/mes123456/cnc_wams/linuxcnc`。 - “硬件相关除外”的边界仅排除真实伺服驱动、电气 I/O、现场总线、实体主轴/冷却/刀库等物理设备接入;Web 仿真仍必须对标 LinuxCNC `xyzbc-trt` 的软件运行语义、状态联锁、HAL/task 反馈、AXIS/PyVCP/Vismach 等效界面、刀路和 JSON 证据。 - 2026-07-04 18:22 EDT 已按 P-002 重新执行 native LinuxCNC、Web evidence、compare、Node smoke 和 browser smoke;最新结果仍为 `60/60 pass`、`blockers=[]`、`requiredImprovements=[]`。 - 2026-07-04 18:12 EDT 已重新执行 native LinuxCNC、Web evidence、Node smoke、browser smoke 和 compare;最新结果仍为 `60/60 pass`、`blockers=[]`,按当前硬检查未发现新增缺失功能,详见 `12-20260704-真实执行复验与缺失功能工作计划.md`。 - 2026-07-04 已完成 T-051 到 T-075:对标基线已从“整理过的 runtime-files 文档与已生成 evidence”提升为“直接从 `/home/mes123456/cnc_wams/linuxcnc` 源树和 LinuxCNC `xyzbc-trt` 真实执行采集事实生成证据”;最新 `compare-xyzbc-trt-evidence.json` 为 `60/60 pass`、`blockers=[]`,详见 `11-LinuxCNC源码与真实执行严格对标任务.md`。 - 针对 `working/screenshots/web-simulation-full-process-20260703T051258Z` 的截图问题,已新增 T-047 到 T-050:页面截图真实 G 代码执行过程、实时刀具执行路径/刀位、刀头与刀杆方向一致、逐行执行过程 UI。 - 页面新增 `programUiExecution` 作为截图层实时执行对象;程序区和 LinuxCNC 监控面板会显示展开后的 `sourceFile:line`、operation、sample、step 和当前语句。 - Three.js 刀头 marker、刀轴线和 Vismach 刀杆方向统一使用当前样本 `toolAxis.i/j/k` 派生的 `state.toolAxisVector`,browser smoke 已断言 canvas dataset 与 state 一致。 - DOCX 任务书已整合到 `working/09-设计任务书与技术方案整合.md`,后续开发和验收优先以 `working` 下 Markdown 文件为可检索工作入口。 - `working` 文档必须完全对标 `doc/xyzbc-trt-runtime-files.md`,不仅覆盖文件 staging,也覆盖 AXIS、PyVCP、POSTGUI HAL、basic_sim、Vismach、switchkins、Ngcgui、tool-offset、kinematics pins 和加载顺序。 - native/Web evidence JSON 后续必须包含刀具预览路径 `previewPath` 和刀具执行路径 `executionPath`。 - 路径曲线对比暂定统一使用 `samplePeriodMs = 50`,通过相同 `sampleIndex/timeMs` 对齐。 - compare JSON 后续必须输出 `pathComparison`,覆盖预览对预览、执行对执行、预览对执行的一致性误差统计。