18 KiB
18 KiB
04-任务矩阵
| 编号 | 任务 | 状态 | 验收标准 |
|---|---|---|---|
| T-001 | 对标 xyzbc-trt-runtime-files.md 梳理运行文件 |
完成 | 文档列出 INI、PyVCP、HAL、Vismach、remap、tool table、parameter file |
| T-002 | 判断 wasm-port 是否满足 xyzbc-trt |
完成 | 明确列出 SDK/probe/remap/browser 覆盖和当前 artifact 缺口 |
| T-003 | 创建目标 Web app | 完成 | web-rtcp-5axis-xyzbc-trt-sim-plan/app/index.html 存在 |
| T-004 | 默认机型改为 xyzbc-trt |
完成 | createSimulationStore().getState().machineProfile === "xyzbc-trt" |
| T-005 | 接入 xyzbc-trt INI/profile |
完成 | profile 坐标为 XYZBC,kinematics 为 xyzbc-trt-kins |
| T-006 | OPFS 路径隔离到目标项目 | 完成 | staged 文件 path 以 web-rtcp-5axis-xyzbc-trt-sim-plan/machines/xyzbc-trt/ 开头;浏览器 smoke 断言 machine files/session/tool table 实际 storageMode=opfs 并可从 OPFS 读回 |
| T-007 | 默认加载 xyzbc_switchkins.ngc |
完成 | profile machineFileStaging.defaultProgramFilename 为 xyzbc_switchkins.ngc |
| T-008 | Stage remap/tool/PyVCP 文件 | 完成 | staging 包含 428remap.ngc、429remap.ngc、430remap.ngc、xyzbc-trt.tbl、xyzbc-trt.xml |
| T-009 | 增加目标 Node smoke | 完成 | tests/node/verify_xyzbc_trt_web_app.mjs 存在并通过 |
| T-010 | 导入 xyzbc.var 基线参数文件 |
完成 | wasm-port/vendor/manifest 包含 xyzbc.var,OPFS staging 可保存参数文件 |
| T-011 | 完整 kinematics WASM 验证 | 完成 | SKIP_KINEMATICS_BUILD=1 wasm-port/tests/wasm/node/verify_kinematics_wasm.sh 通过,覆盖 xyzbc-trt |
| T-012 | 完整 interpreter/remap WASM 验证 | 完成 | wasm-port/tests/wasm/node/verify_interp_wasm.sh 通过,输出 interp_wasm_node_smoke=ok |
| T-013 | 完整 task/HAL WASM 验证 | 完成 | SKIP_TASK_HAL_BUILD=1 wasm-port/tests/wasm/node/verify_task_hal_wasm.sh 通过 |
| T-014 | 目标浏览器 smoke | 完成 | npm run smoke:browser 通过;页面默认显示 xyzbc-trt,kinematics/interpreter/task-HAL worker runtime ready,canvas 非空并暴露 Vismach dataset;Web 文件强制使用 OPFS |
| T-015 | native 真实执行 JSON 采集 | 完成 | native-xyzbc-trt-evidence.json 记录真实执行事件,状态 completed |
| T-016 | Web OPFS/WASM readiness JSON 采集 | 完成 | web-xyzbc-trt-evidence.json 记录 Web profile/INI/staging/WASM readiness;真实浏览器 OPFS 由 smoke:browser 读回验证,Node evidence 为内存采集 |
| T-017 | native/Web JSON 对比 | 完成 | compare-xyzbc-trt-evidence.json 已生成并通过;当前 60/60 通过,blockers=[] |
| T-018 | WASM artifact 构建前置 | 完成 | 已生成 core/kinematics/tp/task-hal 所需 .js/.wasm,web-xyzbc-trt-evidence.json.wasm.missing=[] |
| T-019 | native 刀具预览路径 JSON 采集 | 完成 | native-xyzbc-trt-evidence.json.previewPath.samples 使用 50ms 周期记录 native AXIS/Ngcgui 展开预览刀路,当前 sampleCount=1300 |
| T-020 | native 刀具执行路径 JSON 采集 | 完成 | 在 /home/mes123456/cnc_wams/linuxcnc RIP 实例下重采集,native-xyzbc-trt-evidence.json.executionPath.samplePeriodMs=50、sampleCount=4、taskHal.completed=true |
| T-021 | Web 刀具预览路径 JSON 采集 | 完成 | web-xyzbc-trt-evidence.json.previewPath.samples 已由 AXIS/Ngcgui 源程序展开生成 1300 个 50ms 样本 |
| T-022 | Web 刀具执行路径 JSON 采集 | 完成 | web-xyzbc-trt-evidence.json.executionPath.samples 已由 WASM task/HAL 执行反馈生成 228 个 50ms 样本 |
| T-023 | 刀路采样周期一致性检查 | 完成 | compare 检查 native/Web path samplePeriodMs === 50,否则 fail |
| T-024 | 刀路误差统计对比 | 完成 | compare 输出 preview/execution 的 TCP、joint、toolAxis 误差统计和缺样本清单 |
| T-025 | 全量对标追踪矩阵 | 完成 | 07-全量对标追踪矩阵.md 逐项映射 xyzbc-trt-runtime-files.md 的运行功能 |
| T-026 | AXIS 主界面等效功能 | 完成 | Web 首屏包含程序、坐标、状态、MDI/switchkins、override、工具和预览/执行区域;browser smoke 和 Web evidence axisMainUi.ready=true |
| T-027 | POSTGUI HAL/PyVCP 连接等效 | 完成 | Web evidence JSON 记录 pyvcp.* -> halui.mdi-command-* -> M428/M429/M430 和 multilabel 状态 |
| T-028 | basic_sim 等效 task/HAL | 完成 | native/Web evidence 均记录 basic_sim 等效 joint/home/spindle/manual toolchange 反馈,compare 对应检查通过 |
| T-029 | Vismach 3D 模型 pin 对标 | 完成 | Web 3D 模型由 table-x/saddle-y/spindle-z/tilt-b/rotate-c/tool-offset/x-offset/z-offset 驱动;web-xyzbc-trt-evidence.json.vismachEquivalent 记录 pin 值、HAL net 和变换 |
| T-030 | Ngcgui/remap 子程序全集 | 完成 | staging 和 Web evidence 覆盖并通过 WASM machine-file wrapper 执行 xyzbc_switchkins_sub.ngc、centering.ngc、helix_bc.ngc |
| T-031 | 演示程序全集 | 完成 | staging、profile samplePrograms 和 Web evidence 覆盖 xyzbc_switchkins.ngc 与 boat-xyzbc.ngc |
| T-032 | TRAJ/AXIS/JOINT 限制对标 | 完成 | Web evidence 覆盖 XYZBC 单位、速度/加速度、B/C 限位、JOG_AXES、GEOMETRY,并通过 browser smoke/WASM evidence 复核 |
| T-033 | kinematics HAL pins 对标 | 完成 | Web/native evidence 脚本记录 x-offset=-20、z-offset=-15、rot-point、conventional-directions、tool-offset |
| T-034 | tool table 到 tool-offset 闭环 | 完成 | xyzbc-trt.tbl T2/P2/Z10/D8 解析后驱动 toolRuntime.kinematics.toolOffsetZ=10、Web path tool length/diameter 和 Vismach tool-offset=10 |
| T-035 | 全量 evidence JSON 字段 | 完成 | native/Web JSON 已包含 pathSampling、previewPath、executionPath、startupSequence、halNets、kinematicsPins、axisJointLimits、uiEquivalence、vismachEquivalent、basicSimEquivalent、ngcguiExecution、taskStateFlow |
| T-036 | native 基线切换到 /home/mes123456/cnc_wams/linuxcnc |
完成 | scripts/rip-environment、bin/axis、bin/xyzbc-trt-gui、rtlib/xyzbc-trt-kins.so 已生成,RIP 环境可导入 linuxcnc Python 模块 |
| T-037 | 基于新 native 基线重采集 JSON | 完成 | 已在 /home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment 下启动 xyzbc-trt 并重采 native-xyzbc-trt-evidence.json,sourceRoot=/home/mes123456/cnc_wams/linuxcnc |
| T-038 | Web 界面按新 native 运行结果复核 | 完成 | Web evidence nativeStateFlowReview.ready=true,compare 验证状态流、按钮联锁、路径和 HAL pin 复核通过 |
| T-039 | 创建并执行 xyzbc-trt 快捷方式 |
完成 | linuxcnc-rtcp-5axis-shortcuts/table-rotary-tilting/xyzbc-trt.desktop 已创建,进程从 /home/mes123456/cnc_wams/linuxcnc 启动 |
| T-040 | DOCX 任务书整合到 working | 完成 | working/09-设计任务书与技术方案整合.md 保留 DOCX 1-11 章、5 张图片引用、任务书、技术方案、程序逻辑和状态联锁内容 |
| T-041 | AXIS/PyVCP 按钮级源程序对标矩阵 | 完成 | app/src/ui/axis-shell.js 导出 AXIS_BUTTON_PARITY,逐项记录按钮 action、LinuxCNC axis.py/POSTGUI HAL 来源、预期状态效果;Web evidence 输出 axisMainUi.axisButtonParity.ready=true |
| T-042 | AXIS/PyVCP 按钮逐项逻辑验证 | 完成 | Node smoke 验证按钮状态机;browser smoke 实际点击 ESTOP/复位、上电、回零、MDI、M428/M429/M430、Jog、override、主轴、冷却、视图、清轨迹、run-ready,并断言状态变化 |
| T-043 | xyzbc_switchkins.ngc 刀具执行路径源程序语义展开 |
完成 | native/Web evidence 均新增 semanticExecutionPath,按 xyzbc_switchkins_sub.ngc 与 helix_bc.ngc 展开 29 个运动段、1300 个 50ms 执行采样;compare semanticExecutionVsSemanticExecution.geometricAligned=true |
| T-044 | 每行 G 代码执行过程对标 | 完成 | native/Web evidence 均新增 lineExecutionTrace,记录 64 条主程序/子程序展开执行步骤、M428/M429 switchkins、G10、G0、G2 helix;compare lineExecutionComparison.status=pass |
| T-045 | 每行实际轴值对标 | 完成 | native/Web evidence 均新增 axisValuesByLine,记录 29 条产生日志运动的 X/Y/Z/B/C、TCP、toolAxis、feed;compare axisValuesByLineComparison.status=pass 且最大 TCP/joint/toolAxis 误差均为 0 |
| T-046 | 完整 G 代码执行过程 JSON | 完成 | native/Web evidence 均新增 gcodeExecutionProcess,完整记录 128 个动态执行步骤、65 条源行覆盖、每步详细结果;compare gcodeExecutionProcessComparison.status=pass、mismatchCount=0 |
| T-047 | 页面截图必须记录真实 G 代码执行过程 | 完成 | programUiExecution.source=programAxisPreviewPath.samples,实时 UI 显示 sourceFile:line、operation、sample、statement;browser smoke 断言程序区和监控区 dataset 与 state 一致 |
| T-048 | 实时绘制刀具执行路径和刀具位置 | 完成 | RUN/STEP/RUN_FRAME/task-HAL 状态应用统一从 50ms 真实样本派生 programExecutionSampleIndex、已执行路径点、当前刀位;browser smoke 断言实时样本和 canvas 已执行路径同步 |
| T-049 | 刀头方向与刀杆方向一致 | 完成 | 当前样本 toolAxis.i/j/k 提升为 state.toolAxisVector.x/y/z,Three.js canvas data-three-tool-axis 与 state 完全一致;Node/browser smoke 均断言一致 |
| T-050 | 显示 G 代码每行执行过程 | 完成 | 程序区新增实时执行条,显示展开后的 xyzbc_switchkins_sub.ngc/helix_bc.ngc 源行、动态执行 step、sample index 和语句;监控面板同步显示 Source 行 |
| T-051 | 建立 LinuxCNC 源树权威清单 | 完成 | 从 /home/mes123456/cnc_wams/linuxcnc 直接生成 xyzbc-trt 权威 manifest,记录 INI/HAL/XML/TBL/VAR/NGC/C/Python/rtlib/desktop 文件绝对路径、mtime、sha256、来源角色;Web staging 和 evidence 必须引用该 manifest |
| T-052 | 真实启动入口与环境对标 | 完成 | 以 linuxcnc/scripts/rip-environment、bin/axis、bin/xyzbc-trt-gui、linuxcnc-rtcp-5axis-shortcuts/.../xyzbc-trt.desktop 为准,采集实际启动命令、环境变量、当前 INI、进程树、HAL/GUI 加载顺序 |
| T-053 | INI 全字段解析与差异校验 | 完成 | 解析 configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini 的全部 section/key;Web profile、staging、UI、runtime 和 compare 不允许只抽取部分关键字段 |
| T-054 | HAL 图谱运行态完整采集 | 完成 | 从真实 LinuxCNC 运行态采集 LIB:basic_sim.tcl 生成 HAL、switchkins_postgui.hal、INI HALCMD、全部 loadrt/loadusr/net/setp/addf/pin/signal/thread,并与 Web HAL/task 模型逐项比对 |
| T-055 | xyzbc-trt-kins 源码公式级对标 |
完成 | 以 src/emc/kinematics/xyzbc-trt-kins.c 与 trtfuncs.c 为准,对 switchkins 类型、XYZBC forward/inverse、offset、tool-offset、rot-point、conventional-directions、坐标映射和误差阈值做自动化公式/样本校验 |
| T-056 | M428/M429/M430 remap 真实语义对标 | 完成 | 逐行对标 remap_subs/428remap.ngc、429remap.ngc、430remap.ngc,包含 M68 E3 Q*、M66 同步、motion.switchkins-type 校验、debug/STOP 失败路径和 task 模式条件 |
| T-057 | PyVCP 与 POSTGUI HAL 全链路对标 | 完成 | 从 xyzbc-trt.xml 与 switchkins_postgui.hal 生成按钮、multilabel、HAL pin、halui MDI 命令、vismach-clear 的来源矩阵,并用真实点击/状态采样验证 Web 行为 |
| T-058 | AXIS 原生 UI 行为源程序对标 | 完成 | 以 LinuxCNC axis.py 真实菜单、工具栏、模式联锁、打开/运行/暂停/停止/MDI/jog/override/touch-off 行为为准,补齐 Web 控件、快捷键、禁用态和状态消息的来源级验证 |
| T-059 | Vismach 几何与变换树严格对标 | 完成 | 以 src/hal/user_comps/vismach/xyzbc-trt-gui.py 为准,采集 WebGL 模型的 table/saddle/spindle/tilt-b/rotate-c/x-offset/z-offset/tool-offset 变换树、方向、颜色和 capture 点误差 |
| T-060 | 原生 servo/task 时间基准采集 | 完成 | 从真实运行态记录 SERVO_PERIOD=1000000、TASK CYCLE_TIME=0.010、采样时间戳抖动、50ms compare 抽样来源和原始高频样本,避免只保留重采样后的结果 |
| T-061 | LinuxCNC 真实解释器执行事件采集 | 完成 | 不只依赖源程序静态展开;从真实 LinuxCNC 执行中采集当前文件/行、调用栈、参数赋值、G/M 代码、work offset、switchkins、motion segment、feed/spindle/coolant/tool 状态 |
| T-062 | Web staging 与 native 文件 hash 一致 | 完成 | Web 侧 OPFS/staged 文件必须逐文件匹配 T-051 manifest sha256;若 Web 有派生文件或兼容补丁,必须在 evidence 标注派生来源和差异原因 |
| T-063 | WASM artifact 与 LinuxCNC 源码版本绑定 | 完成 | 记录 kinematics/interpreter/task-HAL/core WASM artifact 对应的 LinuxCNC 源码路径、构建命令、编译选项、sha256 和导出符号;compare 拒绝未知来源 artifact |
| T-064 | task/HAL 运行状态全字段对标 | 完成 | native/Web evidence 对齐 estop、power、home、mode、interp/task state、joint pos/cmd/fb、spindle、feed、rapid、coolant、toolchange、manualtoolchange、operator message 和错误状态 |
| T-065 | TRAJ/AXIS/JOINT 限制与联锁对标 | 完成 | 以 INI 中 TRAJ、AXIS_X/Y/Z/B/C、JOINT_0-4 为准,验证速度、加速度、限位、home、jog axis、GEOMETRY、单位和运行中越界/未回零/模式错误的真实阻断路径 |
| T-066 | tool table 与 parameter file 持久化对标 | 完成 | 对标 xyzbc-trt.tbl、xyzbc.var、tool-offset HAL pin、G43/G10/G54 参数变化、运行前后持久化和 Web OPFS 保存/恢复的一致性 |
| T-067 | Ngcgui 与示例程序全集真实执行对标 | 完成 | 覆盖 xyzbc_switchkins.ngc、boat-xyzbc.ngc、xyzbc_switchkins_sub.ngc、centering.ngc、helix_bc.ngc 的 Ngcgui 参数、子程序调用、展开行、运行结果和截图证据 |
| T-068 | native/Web 图形截图同状态对标 | 完成 | 同一运行时间点同时采集 native AXIS/Vismach 和 Web canvas/DOM 截图,记录机床姿态、刀位、刀轴、轨迹、当前行、状态面板,并生成视觉差异说明 |
| T-069 | 错误路径与异常消息对标 | 完成 | 人为触发缺 HAL pin、错误 switchkins-type、未上电运行、未回零、模式错误、文件缺失、remap STOP、toolchange 未确认等路径,native/Web 错误消息和状态转移必须一致 |
| T-070 | compare JSON 升级为源码/运行双基线 | 完成 | compare-xyzbc-trt-evidence.json 增加 sourceManifestComparison、runtimeLaunchComparison、halGraphComparison、iniFullComparison、kinematicsFormulaComparison、uiBehaviorComparison、visualComparison |
| T-071 | 采集脚本禁止静态推导冒充真实运行 | 完成 | native evidence 中明确区分 sourceDerived、runtimeObserved、runtimeSampled;真实执行要求必须来自 LinuxCNC 运行态 API/HAL/日志/截图,不能只由 NGC 静态分析生成 |
| T-072 | 自动复验入口一键化 | 完成 | 提供单一命令重新启动 native、采集 source/runtime evidence、采集 Web evidence、执行 compare、生成截图和任务摘要;失败时输出可定位的 blocker JSON |
| T-073 | 文档反向索引到 LinuxCNC 源码行 | 完成 | working 中每个对标结论必须能反查到 /home/mes123456/cnc_wams/linuxcnc 的具体文件和行号,以及 Web 实现文件和证据 JSON 字段 |
| T-074 | 性能与采样误差预算对标 | 完成 | 记录 native/Web 路径采样耗时、帧率、最大/均方 TCP 误差、joint 误差、toolAxis 角误差、样本丢失、时间漂移和 UI 刷新延迟,超过阈值 fail |
| T-075 | 严格验收冻结与回归门禁 | 完成 | 所有 T-051 到 T-074 通过后,冻结 manifest、证据路径、截图集和 compare 摘要;后续任何修改必须重新生成并通过源码/运行双基线 compare |
| T-076 | 2026-07-04 18:12 EDT 真实执行复验与缺失功能工作计划 | 完成 | 重新执行 native LinuxCNC、Web evidence、Node smoke、browser smoke 和 compare;compare.status=pass、60/60 pass、blockers=[],缺失功能清单为空,后续按 12-20260704-真实执行复验与缺失功能工作计划.md 做变更后强制复验 |
| T-077 | 2026-07-05 用户要求完全对标复验与文档修订 | 完成 | 明确硬件相关排除边界;以 /home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini 为 native 权威基线重新执行 native/Web/compare/build/smoke;compare.status=pass、60/60 pass、blockers=[]、requiredImprovements=[] |
状态说明:
- 完成:本轮已实现并可通过静态/Node 验证。
- 待前置:代码已接入,但仍依赖未完成的外部或运行环境步骤。
- 待实现:已记录验收要求,仍需修改采集或对比脚本。
当前 T-001 到 T-077 均已完成;T-047/T-048/T-049/T-050 是用户指出 working/screenshots/web-simulation-full-process-20260703T051258Z 截图问题后的页面/截图层真实执行闭环项。
T-051 到 T-075 是 2026-07-04 新增的严格完整对标任务:以 /home/mes123456/cnc_wams/linuxcnc 源树和 LinuxCNC xyzbc-trt 真实执行为唯一 native 权威基线,当前已完成,最新 compare 为 60/60 pass,blockers=[]。
T-076 是 2026-07-04 18:12 EDT 的重新真实执行复验和缺失功能分析任务:本轮未发现新增缺失功能,后续工作计划转为固定当前证据、变更后强制复验和 fail/blocker 处置流程。
T-077 是 2026-07-05 用户再次要求“除了硬件相关,在仿真的所有方面完全对标”后的复验与文档修订任务:最新 native/Web/compare/build/smoke 全部通过,compare 为 60/60 pass,blockers=[],requiredImprovements=[]。