提交当前项目改动

This commit is contained in:
mes123456
2026-07-02 08:01:34 -04:00
parent 83075c4b96
commit c4a721f6cf
274 changed files with 157294 additions and 1394 deletions

View File

@@ -0,0 +1,280 @@
# 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。