Files
cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/README.md
2026-07-09 18:12:01 -04:00

50 lines
10 KiB
Markdown
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.
# 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`,覆盖预览对预览、执行对执行、预览对执行的一致性误差统计。