11 KiB
11 KiB
推进台账
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 恢复重构。