Files
linuxcncWebWASM/docs/trt-parametric/03-推进台账.md

11 KiB
Raw Permalink Blame History

推进台账

R09 / 2026-09-18 / 重启接续准备

  • 用户准备重启 Codex;更新根目录 nextTask-hardcoding.md 及本索引,补充读取顺序、首轮操作、启动方法、本地保留项和可复制的接续指令。
  • 已核验功能提交 4a568f1f4c7df43ce9f71e7646d1306957dc9367 在本地与远程 main 一致;R08 保存已完成。
  • 检查主仓库及子模块状态、任务矩阵、验收汇总;9 份验收证据 SHA256 核验通过,文档差异格式检查通过;开发页面 http://127.0.0.1:5174/ 返回 HTTP 200。接续文档不保存账号口令。
  • 本轮仅更新文档,不重复功能测试。已有专项无待办任务,重启后保留原有本地文件,按新目标推进。

R08 / 2026-09-18 / 仓库保存

  • 用户授权:将 R06 配置驱动改造、R07 三轴门控与五轴精确恢复完整保存到指定 Gitea 仓库的 main 分支。
  • 保存范围:自有源码、配置、测试脚本、项目文档与接续入口、coverage/configuration/ 和 coverage/recovery/ 验收证据。
  • 检查:远程 main 与提交前 HEAD 一致;提交前执行差异格式检查。功能验证沿用 E07/E08/E09/E10,本轮仅更新保存记录。
  • 原有大型 tick trace、linuxcnc 子模块本地改动、临时脚本和用户图片保留在本地,不纳入专项提交。
  • 推送完成以远程 main 与本地 HEAD 的提交 ID 一致为准;实际提交 ID 以 Git 记录为准。专项矩阵无待办任务,后续按新需求推进。

R07 / 2026-09-18 / 三轴门控与五轴精确恢复

  • 完成 CFG-R01:为直接工具准备/换刀补齐开机、空闲、操作者模式及运动队列检查;三轴综合测试先验证运行中拒绝,再等待实际队列完成。没有删除原断言或放宽急停/故障约束。
  • 完成 TRT-R01:TP 保存完整原生段状态、混合/速度/进度及队列;程序保存解释器参数、调用栈和子程序源;HAL 保存 tick、引脚/参数和组件内部状态;同时保存调度交接、核心及协议/事件状态。恢复不再根据剩余几何重新建队列或累加 HAL tick。
  • 指针与兼容性:TP 队列、程序缓冲区和解释器 owner 在恢复时重新绑定;CMake 生成源码/编译环境指纹;不同构建、不同配置、损坏块及旧的不完整记录明确拒绝。配置 hash 增加完整解析 INI 的 hash,包含回零参数变更。
  • 幂等性:恢复操作回执,重复 M428 不再执行;回执不递归携带旧 checkpoint 和 UI 快照,避免多次保存时内存增长。
  • 浏览器修复:OPFS 按机型隔离,仅冷启动自动恢复匹配记录;不兼容缓存保留并提示重新加载。关机记录省去可重建的预览,恢复后重新生成并校验。App 保留恢复出来的程序,不再覆盖为船体示例。
  • 额外实测修复:identity Jog 的 motion_delta 曾使用上一采样的关节值,导致增量 Jog 结束后模型落后约一个采样。现直接投影当前 WASM 规划器关节值。
  • 改动文件组:wasm-core/src 及对应头文件/CMake/单测;web/worker/native-checkpoint.mjs、TP/程序/IO 适配器、SimSession、OPFS 桥;web/app/axis-contract.mjs、React App;新增精确恢复和浏览器重启测试、验收汇总脚本。
  • 验证:E08/E09/E10。native 23/23;两机型各五个阶段、合计 120 个连续任务 tick 的状态 hash 完全一致;另有 12 个恢复后 Jog 样本。覆盖暂停、子程序、不同堆地址、trace 导入、新传输会话、损坏/不同构建拒绝及真实 OPFS 重启。
  • 本轮证据统一在 coverage/recovery/,旧 coverage/trt-parametric/ 报告保持原版本;前轮配置证据保留。
  • 当前专项矩阵已无待办任务。代码和证据尚未提交/推送;后续按用户保存指令或新需求推进,不重复已通过整轮测试。

R06 / 2026-09-18 / 配置驱动改造

  • 用户确认范围:机床参数、轴配置、路径、可调界面设置改为配置驱动;保留数学/协议常量及 LinuxCNC 上游代码。
  • 新配置:machine-catalog.json、simulation-resources.json、web-settings.json;新增校验/解析模块 web-settings.mjs、trt-configuration.mjs。具体键和入口见 07。
  • 运行链路:sim-case-loader、sim-session、wasm-linuxcnc-tp、wasm-xyzac-kinematics、wasm-native-homing、IO/device-IO、xyzac-session;取消固定几何、限位、速度和周期覆盖。TRT 的 IO 时间基准跟随实际 task tick。旧兼容仿真的可调数值归入配置。
  • 核心:自有 sim_linuxcnc_tp.c/.h 增加逐轴动力学、倍率、缩放下限、轨迹混合配置入口和边界测试;修正加速度上限取值方向。重建 WASM/native。
  • 界面:App、模型和两个预览、资源路径及类型声明采用配置;支持不同默认机型、INI/程序文件名、图标目录、相机/材质/颜色、Jog 增量、刷新设置。物理计算仍走 WASM。
  • 修复:规划器初始化不再使用上一台机床的快速速度;默认 XYZBC 的会话来源信息同步;通用加载器不再把三轴 Z 上限写成 100;旧队列进给倍率投影使用 WASM 已确认的 controls 值。
  • 恢复:checkpoint 保存运行配置 hash,参数变化或旧记录缺少该 hash 时拒绝恢复,不把旧速度/限位状态带入新配置。
  • 验证:E07,native 23/23、专项 WASM/Worker、改配置的浏览器实际渲染、生产构建、子路径部署和 RTCP 回归通过。旧三轴综合脚本的操作门控问题登记 CFG-R01,不放宽 gate。
  • 证据:统一归档 coverage/configuration/,本轮重跑产生的旧测试报告已归档到该目录;coverage/trt-parametric/ 保留原已提交版本,不破坏 E02/E06 的历史哈希。
  • 接续文件:用户要求后创建 nextTask-hardcoding.md;随后用户明确继续,现已更新为收口状态。
  • 未提交/推送;下一开发任务为 CFG-R01,随后 TRT-R01。原有大型 trace、linuxcnc 子模块及临时文件未纳入本轮。

R05 / 2026-09-18 / 仓库保存

  • 用户授权:保存到 https://gitea.meswork.com/wangdequan/linuxcncWebWASM.git 的 main 分支。
  • 保存内容:TRT-UI01 黄色预览路径、TRT-JOG01 M428 Jog 模式保持修复、对应测试、文档、报告和截图。
  • 检查:已获取远程 main;提交前差异格式检查通过。功能验证沿用 E05/E06,本轮没有新增功能修改。
  • 原有大体积 tick trace、linuxcnc 子模块本地改动、临时脚本和用户图片保留在本地。
  • 推送完成以远程 main 与本地 HEAD 的提交 ID 一致为准;下一开发任务仍为 TRT-R01。

R04 / 2026-09-17 / M428 旋转轴 Jog 刀尖跟随

  • 用户问题:选中 M428 后 Jog 调整 A/C,机床预览没有持续体现刀尖跟随。
  • 根因:WasmLinuxcncTp.abort() 在 JOG_STOP 时把 activeTag 清零,而 switchkins 仍保持 M428。首轮 Jog 有补偿,松开时关节解跳回 identity,后续 Jog 丢失补偿。另有 Jog ID 与历史程序行 ID 复用的模式映射风险。
  • 改动:web/worker/wasm-linuxcnc-tp.mjs 停止只清理队列映射,保留当前坐标系;成功加入 Jog 时记录该段的当前模式,覆盖历史同 ID 条目。正逆解继续使用 WASM,无 Three.js/JS 补偿公式。
  • 测试:新增 web/react/src/test_trt_rtcp_jog.mjs、scripts/test_trt_rtcp_jog_browser.mjs;更新 test_xyzac_runtime_followups.mjs 等待真实 homing 完成后再测试运行/关机。
  • 验证:修复前专项在 a-released 明确失败(mode 0 != 1);修复后两机型均通过。检查连续/增量/反向/重复 Jog、松开无跳变、无效输入、重复停止、程序停止和关机保持、M429 对照及同 ID 段复用。浏览器真实按钮操作 A-C-A-C、B-C-B-C 均通过,快照与实际渲染刀尖一致。详见 E06。
  • 产物:coverage/trt-parametric/rtcp-jog.report.json、rtcp-jog-browser.report.json、两机型截图。
  • 下一步:TRT-R01;本轮未扩展到既有 checkpoint 全状态精度修复。

R03 / 2026-09-17 / 机床预览路径颜色

  • 用户要求:Preview 中工作台上的白色刀具预览路径改为黄色。
  • 改动:web/react/src/XyzacMachineView.tsx 的普通预览路径材质由 0xdce7e8 改为 0xffff00,两种 TRT 机型共用。
  • 验证:E05;对应任务 TRT-UI01。
  • 下一步:仍按 TRT-R01 接续。

R02 / 2026-09-17 / 仓库保存

  • 用户授权:将本轮成果保存到 https://gitea.meswork.com/wangdequan/linuxcncWebWASM.git。
  • 保存范围:TRT 参数化代码、测试、六份项目文档及索引、coverage/trt-parametric/ 验收报告与截图。
  • 检查:远程 origin 与指定仓库一致;提交前已获取远程 main,差异格式检查通过。功能验证沿用 E02/E03/E04,代码未再变更。
  • 原有两份大体积 tick trace、linuxcnc 子模块本地改动、临时脚本和用户图片继续留在本地,不并入本次专项提交。
  • 目标分支:main;推送完成以 Git 远程分支提交 ID 与本地 HEAD 一致为准。
  • 后续开发仍按 TRT-R01 接续。

R01 / 2026-09-17 / 已完成

  • 目标:建立上下文,完成 INI → WASM → G 代码/机床预览参数链路。
  • 已检查:加载器当前使用固定 offsets;WASM ABI 已有全部旋转中心和偏置字段;模型缺失旋转中心投影。
  • 已改文件:本目录六份文档、README;根 README 增加入口;新增 web/workspace/trt-geometry.mjs、web/react/src/TrtGeometryPanel.tsx、web/react/src/test_trt_parametric.mjs、scripts/test_trt_parametric_browser.mjs。
  • 接入改动:sim-case-loader.mjs、sim-session.mjs、App.tsx、legacy.d.ts、styles.css、xyzac-machine-model.ts、XyzacMachineView.tsx;更新相关加载、回零、两机型程序、模型和浏览器回归测试。
  • 完成行为:INI 参数读写和 Worker 二次校验;应用时重载当前程序、清理轨迹并失效回零;旧几何 checkpoint/trace 拒绝恢复;分组参数界面、文件导入和原生 INI 保存。
  • 结构修正:三个 rot-point 进入转台层级;XYZBC 的固定 90 度仅作用于铸件,旋转坐标系按 WASM 保持一致;补齐原生 yslide 的 150 mm 高度。
  • 验证:E02/E03/E04。两机型真实 WASM 程序、确定性重放、结构/刀尖一致性、船体程序、参数保存导入、桌面/移动布局和 3D 像素/交互通过。React 类型和构建通过。
  • 中间失败及处理:旧测试假定 HOME 同步完成,改为等待真实 homing tick;缺失图片测试改用显式 emc2.gif 输入,避免依赖用户修改过的 INI;机型选择测试改为等待 Worker 成功后断言。浏览器新测试改为等待重载完成并排除 hidden 文件 input 的布局断言。
  • 原有改动:两份 coverage tick trace、linuxcnc 子模块内多处 INI/C++/Tcl 改动、临时测试脚本和 PNG 均保留,不作为本轮产物。
  • 下一步:TRT-R01。既有 test_xyzac_recovery.mjs 虽退出 0,但报告 endpoint_at_checkpoint_equal=false;不能作为完整恢复等价证据。该问题单独登记,不扩展本轮到 TP 恢复重构。