Files
cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/03-推进台账.md
2026-07-02 08:01:34 -04:00

281 lines
16 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.
# 03-推进台账
## 2026-07-02 07:31 EDT - DOCX 设计任务书整合到 working
### 本轮目标
`doc/xyzbc-trt-web-cnc-simulation-design-task-and-technical-plan.docx` 的内容整合到 `working` 目录下,方便后续直接用 Markdown 工作文档继续开发和验收。
### 已做事项
- 读取 DOCX 包结构,确认正文包含 507 段文本,图片包含 `xyzbc-trt-axis-window.png``xyzbc-trt-desktop.png``xyzbc-trt-web-architecture.png``xyzbc-trt-json-compare-flow.png``xyzbc-trt-logic-map.png`
- 从 DOCX 的 `word/document.xml` 提取段落和表格,转换为 `working/09-设计任务书与技术方案整合.md`
- 在整合稿中保留 1-11 章项目目标、原型运行证据、完全对标范围、Web 界面设计任务书、技术方案、开发任务分解、验收标准、风险控制、对标文件清单、程序逻辑全量分析、开机/急停/回零/执行状态联锁。
- 将 DOCX 图片引用改为 `../doc/assets/...`,使 working 文档可直接查看原有图像证据。
- 更新 `working/README.md`,把 09 文档加入索引。
- 更新 `04-任务矩阵.md`,新增 `T-040 DOCX 任务书整合到 working`
### 修改文件
```text
web-rtcp-5axis-xyzbc-trt-sim-plan/working/09-设计任务书与技术方案整合.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/README.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/03-推进台账.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/04-任务矩阵.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/05-验收证据.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/06-决策记录.md
```
### 验证情况
- `working/09-设计任务书与技术方案整合.md` 已生成,共 364 行。
- `rg` 检查到核心章节:`项目目标``原型系统运行证据``完全对标范围``Web 界面设计任务书``技术方案``开发任务分解``验收标准``风险和控制措施``程序逻辑全量分析``开机、急停、回零与执行状态的联锁逻辑`
- `rg` 检查到 5 张图片引用,均指向 `../doc/assets/`
### 下一步
1. 后续开发需求优先引用 `working/09-设计任务书与技术方案整合.md`,不再需要反复打开 DOCX 才能检索任务书内容。
2. 若 DOCX 后续继续更新,需要同步重新生成或手工补充 09 文档,并在本台账记录差异。
## 2026-07-02 03:10 EDT
### 本轮目标
对标 `xyzbc-trt-runtime-files.md`,确认 `wasm-port` 是否满足,并创建 Web 方式的 `xyzbc-trt` 数控系统仿真界面与工作文档。
### 已做事项
- 读取 `web-rtcp-5axis-xyzbc-trt-sim-plan/doc/xyzbc-trt-runtime-files.md`
- 读取 `wasm-port/AGENTS.md``wasm-port/SKILL.md``wasm-port/README.md`
- 检查参考 app`web-rtcp-5axis-sim-plan/app`
- 检查 `wasm-port``xyzbc-trt` 的覆盖SDK、vendored config、kinematics probe、remap execute harness、文档覆盖。
- 复制参考 app 和 tests 到目标目录。
- 修改目标 app 默认 profile 为 `xyzbc-trt`
- 修改 OPFS/session/tool-db 命名空间为 `web-rtcp-5axis-xyzbc-trt-sim-plan`
-`xyzbc-trt` profile 增加 `machineFileStaging.defaultProgramFilename = xyzbc_switchkins.ngc`
- 新增 `tests/node/verify_xyzbc_trt_web_app.mjs`
- 创建 `README.md``working/` 六类工作文档。
- 发现 `xyzbc.var` 未进入 `wasm-port/vendor`/manifest本轮记录为参数文件基线导入缺口。
### 修改文件
```text
web-rtcp-5axis-xyzbc-trt-sim-plan/README.md
web-rtcp-5axis-xyzbc-trt-sim-plan/app/index.html
web-rtcp-5axis-xyzbc-trt-sim-plan/app/package.json
web-rtcp-5axis-xyzbc-trt-sim-plan/app/package-lock.json
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/main.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/state/store.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/profiles/index.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/profiles/xyzbc-trt.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/five-axis-session.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/linuxcnc-machine-file-staging.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/linuxcnc-kinematics-runtime.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/linuxcnc-kinematics-worker-client.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/tool-db-simulation.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/ui/gmoccapy-shell.js
web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/working/README.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/01-项目功能内容.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/02-项目程序开发详细步骤.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/03-推进台账.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/04-任务矩阵.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/05-验收证据.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/06-决策记录.md
```
### 验证情况
- 已通过:`npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node`,输出 `xyzbc_trt_web_app_smoke=ok`
- 已通过:`git diff --check -- web-rtcp-5axis-xyzbc-trt-sim-plan`
- 已发现:当前工作区缺少 `wasm-port/build/wasm`,完整 WASM/browser 验收需要先构建 artifact。
### 下一步
1. 运行目标 Node smoke。
2. 如需完整 Web 执行,先构建 `wasm-port/build/wasm`
3. 根据 browser smoke 结果补齐目标项目专用浏览器断言。
## 2026-07-02 native/Web 对比验证轮次
### 本轮目标
执行真实 `xyzbc-trt` 和 Web 仿真采集,分别写入 JSON并通过比较 JSON 找出需要完善的差异。
### 已做事项
- 确认 native `xyzbc-trt` 进程正在运行:`linuxcncsvr``milltask``halui``xyzbc-trt-gui``axis`
- 历史轮次曾使用 `/home/mes123456/linuxcnc-master/scripts/rip-environment python3` 成功导入 LinuxCNC Python API 并读取 `stat()`;当前 native 新基线已切换到 `/home/mes123456/cnc_wams/linuxcnc`
- 新增 native 采集脚本:`tools/collect-native-xyzbc-trt-evidence.py`
- 新增 Web 采集脚本:`tools/collect-web-xyzbc-trt-evidence.mjs`
- 新增 JSON 对比脚本:`tools/compare-xyzbc-trt-evidence.mjs`
-`xyzbc.var` 从真实运行树导入 `wasm-port/vendor/linuxcnc/.../xyzbc.var`,并加入 `wasm-port/tools/source-manifest.txt`
- 更新目标 smoke使参数文件 staging 成为必须通过项。
-`package.json` 增加 `evidence:web``evidence:compare`
### 验证情况
- 已通过 native 真实执行采集:`native-xyzbc-trt-evidence.json``commandResult.status=completed`,事件数 `1462`
- 已通过 Web 采集:`web-xyzbc-trt-evidence.json`profile/INI/OPFS/PyVCP/remap/tool/parameter/default program 均覆盖。
- 已生成比较报告:`compare-xyzbc-trt-evidence.json`12 项检查中 11 项通过。
- 当前唯一失败项:缺少 `wasm-port/build/wasm` 下的 kinematics/core/tp/task-hal `.js/.wasm` artifact。
- 当前环境此前缺少 `emcc`;后续已安装 `emcc 6.0.2`,下一步应直接构建 WASM artifact。
### 下一步
1. 运行 `source /home/mes123456/emsdk/emsdk_env.sh`
2. 运行 `wasm-port/tools/build_kinematics_wasm.sh``build_wasm_core.sh``build_tp_wasm.sh``build_task_hal_wasm.sh`
3. 重跑 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web``evidence:compare`,目标是比较报告 artifact 项通过。
4. 再补目标浏览器 smoke确认 worker runtime 和 canvas 非空。
## 2026-07-02 刀具预览/执行路径 JSON 对比需求补充
### 本轮目标
把“刀具预览路径”和“刀具执行路径”的采集过程纳入 native/Web evidence JSON并要求 compare JSON 使用一致曲线采样周期进行比对。
### 已做事项
-`01-项目功能内容.md` 增加 `pathSampling``previewPath``executionPath``pathComparison` 的 JSON 字段要求。
- 明确 native 和 Web 对比采样周期统一为 `samplePeriodMs = 20`
- 明确每个路径样本必须包含程序行号、运动类型、switchkins/kinematics 状态、刀具信息、XYZBC joint、TCP、toolAxis、feed、spindle。
-`02-项目程序开发详细步骤.md` 增加 native/Web 采集脚本和 compare 脚本的后续实现步骤。
- 在任务矩阵中增加预览路径采集、执行路径采集、统一采样周期、路径误差统计等任务。
### 当前状态
- 本轮只补充工作文档和验收要求。
- 现有 `working/evidence/*.json` 仍是上一轮真实采集结果,尚未伪造或手工改写。
- 后续需要修改采集脚本,让真实 native/Web 运行重新生成包含刀具路径的 JSON。
### 下一步
1.`collect-native-xyzbc-trt-evidence.py` 中增加 LinuxCNC 预览路径与执行反馈路径采集。
2.`collect-web-xyzbc-trt-evidence.mjs` 中增加 Web 预览 planner 与 WASM task/HAL 执行路径采集。
3.`compare-xyzbc-trt-evidence.mjs` 中增加 20ms 重采样和路径误差统计。
4. 重新生成 native/Web/compare 三份 JSON确认 `pathComparison.samplePeriodMs = 20` 且两侧样本可逐点对齐。
## 2026-07-02 全量对标 working 文档完善
### 本轮目标
根据 `doc/xyzbc-trt-runtime-files.md`,让 `working` 文档明确要求 Web 数控系统仿真界面完全对标 LinuxCNC `xyzbc-trt` 真实运行配置。
### 已做事项
- 重新读取 `doc/xyzbc-trt-runtime-files.md`,确认文档共 702 行覆盖进程、启动入口、INI、AXIS、PyVCP、POSTGUI HAL、basic_sim、Vismach、switchkins、G-code、tool table、kinematics、加载顺序和重要文件清单。
- 新增 `working/07-全量对标追踪矩阵.md`,把每个 LinuxCNC 功能点映射到 Web 对标目标、evidence 字段和当前缺口。
- 更新 `01-项目功能内容.md`,明确完全对标范围,并补充 AXIS 等效、POSTGUI HAL 等效、basic_sim、Vismach pin、Ngcgui、演示程序全集、速度/限制、kinematics HAL pins 等功能项。
- 更新 `02-项目程序开发详细步骤.md`,增加全量对标 JSON 字段和后续实现步骤。
- 更新 `04-任务矩阵.md`,新增 T-025 到 T-035。
- 更新 `05-验收证据.md`,新增全量对标 JSON 验收要求。
- 同步 `emcc` 状态:当前已安装 `emcc 6.0.2`,剩余前置是构建 WASM artifact。
### 当前状态
- 文档层面已把 `xyzbc-trt-runtime-files.md` 的完整运行语义转成 Web 对标清单。
- 代码层面仍需继续补齐全量 evidence JSON、UI 等效行为、Vismach pin 验收和 WASM artifact 验收。
### 下一步
1. 构建 `wasm-port/build/wasm` artifact。
2. 修改 native/Web evidence 采集脚本,补齐 `startupSequence``halNets``kinematicsPins``axisJointLimits``uiEquivalence``vismachEquivalent` 等字段。
3. 修改 compare 脚本,把 `07-全量对标追踪矩阵.md` 中的检查项转为自动化 check。
4. 根据新增任务矩阵补齐 Web UI 和 3D 模型行为。
## 2026-07-02 切换 native 对标基线到 `/home/mes123456/cnc_wams/linuxcnc`
### 本轮目标
根据用户要求,以编译成功并能够执行 `xyzbc-trt``/home/mes123456/cnc_wams/linuxcnc` 为真实 LinuxCNC 对标基线,设计 Web 数控仿真界面和逻辑。
### 已做事项
- 检查 `/home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini`,确认配置文件存在。
- 检查 `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment``bin/axis``bin/xyzbc-trt-gui``rtlib/xyzbc-trt-kins.so`,当前自动检查未发现这些 RIP/构建产物。
- 更新 `01-项目功能内容.md`,声明后续 native evidence 采集和 Web 对标基线统一使用 `/home/mes123456/cnc_wams/linuxcnc`
- 更新 `02-项目程序开发详细步骤.md`,将 native 采集命令切换为 `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment`
- 更新 `04-任务矩阵.md`,新增 T-036 到 T-038覆盖 native 基线切换、新基线 JSON 重采集、Web 界面按新 native 运行结果复核。
- 更新 `05-验收证据.md`,新增 native 基线切换验收,记录当前文件检查结果。
- 更新 `07-全量对标追踪矩阵.md``06-决策记录.md`,明确 `/home/mes123456/linuxcnc-master` 只作为历史运行参考。
### 当前状态
- 文档层面已切换对标基线。
- 代码和 evidence 层面还未重新采集;现有 `working/evidence/*.json` 仍来自历史 `/home/mes123456/linuxcnc-master` 运行树。
### 下一步
1. 确认 `/home/mes123456/cnc_wams/linuxcnc` 的 RIP 构建产物实际输出位置。
2. 用该路径执行 `xyzbc-trt.ini`,确认 `axis``xyzbc-trt-gui``xyzbc-trt-kins.so` 可运行。
3. 修改/运行 native evidence 采集脚本,让 `sourceRoot=/home/mes123456/cnc_wams/linuxcnc`
4. 依据新 native JSON 复核 Web UI、switchkins、Vismach 等效模型、刀具路径和 compare 规则。
## 2026-07-02 编译 `/home/mes123456/cnc_wams/linuxcnc`
### 本轮目标
按 run-in-place 方式编译 `/home/mes123456/cnc_wams/linuxcnc`,使其能够作为 `xyzbc-trt` native 真实执行基线。
### 已做事项
- 读取 `docs/INSTALL.adoc`,确认 RIP 构建流程为 `cd src``./autogen.sh``./configure --with-realtime=uspace``make``sudo make setuid`
- 执行 `./autogen.sh`,成功生成 configure/config.h.in。
- 执行 `./configure --with-realtime=uspace --disable-build-documentation`,配置成功,并生成 `scripts/linuxcnc``scripts/rip-environment``scripts/halrun` 等 RIP 脚本。
- 首次执行 `make -j"$(nproc)"` 失败,原因是 shell 环境变量 `DEBUG=release` 被 LinuxCNC Makefile 当作编译参数,导致 `gcc/c++``release: linker input file not found`
- 使用 `env -u DEBUG make -j"$(nproc)"` 重新编译,成功完成。
- 执行 `sudo -n make setuid`,成功设置 `bin/rtapi_app``bin/linuxcnc_module_helper` 的 root/setuid 权限。
### 验证情况
- 已生成 `scripts/rip-environment``scripts/linuxcnc`
- 已生成 `bin/axis``bin/xyzbc-trt-gui``bin/milltask``bin/linuxcncsvr``bin/halui`
- 已生成 `rtlib/xyzbc-trt-kins.so``rtlib/tpmod.so`
- `source scripts/rip-environment` 后,`command -v linuxcnc``axis``halcmd` 均指向 `/home/mes123456/cnc_wams/linuxcnc`
- `python3 -c "import linuxcnc"` 成功,模块路径为 `/home/mes123456/cnc_wams/linuxcnc/lib/python/linuxcnc.so`
- `git status --short` 无输出,说明没有 Git 跟踪文件改动;编译产物均在忽略/生成路径内。
### 下一步
1. 使用 `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment` 重新采集 native `xyzbc-trt` evidence。
2.`native-xyzbc-trt-evidence.json.sourceRoot` 更新为 `/home/mes123456/cnc_wams/linuxcnc`
3. 用新 native JSON 重跑 Web evidence 和 compare。
## 2026-07-02 创建并执行 `xyzbc-trt` 快捷方式
### 本轮目标
`/home/mes123456/cnc_wams/linuxcnc` 中创建执行 `xyzbc-trt` 的桌面快捷方式,并实际启动该配置。
### 已做事项
- 检查显示环境,当前 `DISPLAY=:1``XDG_SESSION_TYPE=x11`
- 参考历史 `/home/mes123456/linuxcnc-master/linuxcnc-rtcp-5axis-shortcuts/table-rotary-tilting/xyzbc-trt.desktop`,创建新快捷方式:
```text
/home/mes123456/cnc_wams/linuxcnc/linuxcnc-rtcp-5axis-shortcuts/table-rotary-tilting/xyzbc-trt.desktop
```
- 快捷方式 `Exec` 指向:
```text
/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment linuxcnc /home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini
```
- 启动前发现历史 `/home/mes123456/linuxcnc-master``xyzbc-trt` 仍在运行。
- 尝试 `/home/mes123456/linuxcnc-master/scripts/linuxcnc -k` 后出现 pickconfig 窗口,未关闭旧实例;随后终止旧 LinuxCNC 相关进程。
- 使用 `setsid` 从新路径后台启动 `xyzbc-trt`
### 验证情况
- 新进程均来自 `/home/mes123456/cnc_wams/linuxcnc``scripts/linuxcnc``linuxcncsvr``rtapi_app``milltask``halui``hal_manualtoolchange``xyzbc-trt-gui``axis`
- `halcmd show pin motion.switchkins-type` 可读,值为 `0`
- LinuxCNC Python API 可读取状态:`file=./demos/xyzbc_switchkins.ngc``axis_mask=55``position=[0,0,0,0,0]`
- `desktop-file-validate` 无输出。
### 下一步
1. 用当前运行的新 native 实例重采集 `native-xyzbc-trt-evidence.json`
2. 将现有历史 `/home/mes123456/linuxcnc-master` evidence 替换为 `/home/mes123456/cnc_wams/linuxcnc` evidence。
3. 基于新 evidence 重跑 Web compare。