Files
cnc_wams/备忘/备忘5.txt
2026-07-02 08:01:34 -04:00

259 lines
12 KiB
Plaintext
Raw Permalink 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.
我会先读取两个项目的结构和已有 gmoccapy/RTCP 相关实现,确认页面、
测试入口和 LinuxCNC 参考程序的位置,
再决定需要补齐的功能和验证文档落点
当前项目已经有 gmoccapy、XYZAB/XYZAC、真实 LinuxCNC 五轴程序相关测试和文档资产。
我接下来会把现有实现与 LinuxCNC configs/sim/gmoccapy 的五轴配置、
实际 RTCP 程序和测试脚本对齐,先找出差距再补实现/验证文档。
我看到工作树已有大量未提交改动,
其中不少正好涉及本项目的 gmoccapy、RTCP、task/HAL 和测试。
我会只在必要文件上增量修改,不回退现有内容;
下一步重点收敛到 LinuxCNC 的 gmoccapy 非平凡五轴配置和 TRT/RTCP 程序。
先给出当前执行计划:
1) 提取 LinuxCNC gmoccapy 五轴基准;
2) 对照 Web 页面状态、按钮、DRO、RTCP/kins/task-HAL 数据链;
3) 补测试或小范围实现;
4) 运行验证;
5) 输出中文评价文档并按 AGENTS 规则追加过程日志。
LinuxCNC 的 gmoccapy 五轴参考不是 switchkins 版本,
而是 configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini
固定 xyzac-trt-kins、DISPLAY=gmoccapy、XYZAC、tool-offset/y-offset/z-offset HAL 链路,
并用 boat/impeller/test 程序验证非平凡五轴 RTCP/刀长语义。
我会把这条 gmoccapy 专属基准纳入 Web 侧验证,
而不只依赖 axis/vismach 的 M428/M429 示例。
现有测试已经覆盖 axis/vismach TRT demos 和 switchkins
但还没有把 LinuxCNC gmoccapy/non_trivial_kinematics/table-rotary-tilting
作为单独对标对象。接下来我会补一个 gmoccapy 参考验证,
把 INI/HAL/刀表/示例程序、页面状态和 canonical 执行链打通。
为避免把“页面像 gmoccapy”误写成“功能等价”我会用两个层面做证据
一是 LinuxCNC gmoccapy 非平凡五轴配置的静态对标,
二是真实 .ngc 经解释器/运动学/页面状态链路的运行对标。
接下来开始补验证脚本。
这里有一个关键差异:
现有 xyzac-trt profile 主要来自 LinuxCNC axis/vismach switchkins 示例,
虽然页面是 gmoccapy shell
但 profile 本身不是 LinuxCNC DISPLAY=gmoccapy 的非平凡五轴配置。
为了让“gmoccapy 页面功能对标 gmoccapy 五轴功能”成立,
我会补一个 gmoccapy-xyzac-trt 专用 profile 和验证链,而不是只在文档里说明。
我会保留现有 xyzac-trt/xyzbc-trt 行为,新增 gmoccapy TRT 作为第三个可运行 RTCP profile
gmoccapy-xyzab 仍保持 trivkins 参考、不可提升为 RTCP。这样不会破坏旧测试的 profile 顺序假设时,
我会同步更新对应断言。
我先确认 vendored source manifest 是否已经包含 gmoccapy 非平凡五轴目录;
如果没有,测试可以直接读取 /home/mes123456/cnc_wams/linuxcnc 作为参考,
但页面 staging 需要知道这些源文件。
我确认了一个限制:
当前 WASM vendor manifest 只包含 axis/vismach/5axis/table-rotary-tilting
没有拷入 LinuxCNC 的 configs/sim/gmoccapy/non_trivial_kinematics。
因此我会把 gmoccapy TRT profile 的验证读取真实 /home/mes123456/cnc_wams/linuxcnc 源文件,
同时让页面/Node staging 支持该来源,不把缺失 vendor manifest 误当作功能通过。
下一步我会把 LinuxCNC gmoccapy TRT 的真实配置和示例程序纳入可访问的 vendored source 清单,
这样页面 staging、Node 验证和评价文档都能引用同一批源文件。
这个改动是对现有 axis/vismach TRT source 的补充,
不会替换旧的 switchkins 测试资产。
我现在会实际落地改动:补 vendored gmoccapy TRT 源文件清单、增加 gmoccapy TRT profile、让 staging/校验识别 examples/ 源程序,并新增覆盖该 profile 的 Node 验证脚本。
由于 gmoccapy TRT 的 xyzac-trt.ini
通过 SUBROUTINE_PATH=./examples:../../macros 调用工具变更 remap
我会把 table-rotary-tilting 和 gmoccapy/macros 两块源文件一并放入 vendor/staging 范围,
避免验证只拿到主程序而缺 remap 子程序。
已复制真实 LinuxCNC gmoccapy TRT 配置、示例程序和 gmoccapy macros 到
wasm-port/vendor/linuxcnc接下来把这些文件加入 manifest
并在应用代码中使用它们。
我会用脚本式追加 manifest 条目来避免手工漏项,然后用 apply_patch 修改应用源码和测试。
我还发现 parser 的“ready”标准目前按 switchkins 示例写死,会把 LinuxCNC gmoccapy
固定 xyzac-trt-kins 配置误判为缺 M428/M429/M430。
我会把 INI 校验改成两类switchkins TRT 和 gmoccapy fixed TRT
二者都能作为五轴 RTCP 参考,但在页面里显示不同边界。
这里的 gmoccapy TRT 固定配置还有一个语义细节:
它的 xyzac-trt-kins 没有 sparm=identityfirst
所以 LinuxCNC 源码里 switchkins-type 0 就是 TRT/TCP而不是 identity。
我会在 Web profile 里明确这个“固定 TRT 默认类型”,避免错误地要求 M428 才算 RTCP 开启。
一个实现细节需要小心处理:
当前 kinematics WASM 模块初始化默认和 LinuxCNC 源码一致xyzac-trt-kins 的 type 0 是 TRT
只有 INI 传 sparm=identityfirst 时 type 0 才变 identity。
现有 Web 的 axis/vismach profile 是通过 Web 映射把 M428/M429
语义处理成 identity/TCPgmoccapy TRT 固定配置则应使用 type 0 TRT 默认。
我开始用补丁新增 gmoccapy-xyzac-trt profile。这个 profile
会保留 LinuxCNC 源中的 DISPLAY=gmoccapy、固定 xyzac-trt-kins、
examples/impeller-7bl-xyzac.ngc、tool-offset/y-offset/z-offset、
POSTGUI 工具/主轴绑定等对标项。
已添加 gmoccapy-xyzac-trt profile 文件。
现在继续把它接入 profile index、source reference、staging、INI 校验和默认程序选择。
我会把 source reference 中原本挂在 xyzac-trt 下的 gmoccapy TRT 条目迁移到新 profile
并增加 generated HAL、macro remap 和源码引用,
这样文档矩阵能明确区分 axis/vismach switchkins 与 gmoccapy 非平凡五轴。
我会把 source reference 中原本挂在 xyzac-trt 下的 gmoccapy TRT 条目迁移到新 profile
并增加 generated HAL、macro remap 和源码引用,
这样文档矩阵能明确区分 axis/vismach switchkins 与 gmoccapy 非平凡五轴。
我已完成 source map 迁移。现在修改 machine-file staging
默认仍走 axis/vismach TRT当 profile 是 gmoccapy-xyzac-trt 时,
自动使用 configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples
作为真实 LinuxCNC G-code 源目录。
我还需要补齐刚才 staging 改动的底部 helper特别是把 examples/ 归类为 demo
并在没有传入 plan 时保持旧的 axis/vismach 默认行为。
我需要同步放宽 INI parser 的 ready 标准gmoccapy TRT 固定配置不声明
[HALUI] M428/M429/M430但它的 KINS=xyzac-trt-kins、XYZAC、5 joints、
tool-offset/y/z-offset 和 gmoccapy POSTGUI 才是对标依据。
我会继续同步构建脚本和默认程序选择,确保 dev 和 dist 两种运行路径都能读取 gmoccapy TRT 源文件。
我正在接入默认加载逻辑gmoccapy TRT 的默认程序应选 impeller-7bl-xyzac.ngc而不是按 profile id 拼 *_switchkins.ngc。同时 store 的项目目录和 source guard 也会识别 examples/ 来源。
现在修改 store 的项目目录/source guard/run preconditions。核心变化是任何 profile 只要声明 rtcpProof=true 且有 LinuxCNC kinematics module就可以进入运行前置条件gmoccapy-xyzab 仍因 rtcpProof=false 被阻止。
我注意到固定 TRT profile 需要把默认 kins 类型设为 tcp-xyzac否则页面会把 LinuxCNC 源码中的 type 0 TRT 误显示成 identity/off。我会补一个 profile 默认 kins 辅助函数,并让 TCP button 识别 value 0 的固定 TRT。
我会先做最小默认 kins 改动,避免影响已有 switchkins profiles只有 fixedTrtDefault profile 默认显示 TCP/RTCP onaxis/vismach 仍默认 identity/off。
我已把固定 TRT 默认 kins 的逻辑接入 store。接下来会补 profile/staging/INI 的 Node 验证脚本,然后先跑相关小测试,及时处理断言或集成问题。
我会新增专门的 verify_gmoccapy_xyzac_trt_parity既检查 profile 静态对标,也检查 staging、INI parser、真实程序 canonical 执行和 store 状态。然后再把旧测试中 profile 列表断言更新。
我会新增的测试脚本放入 tests/node并把它接入 npm --prefix app run smoke:node。脚本会直接跑真实 gmoccapy TRT 的 impeller/boat/test 程序,验证 canonical motion、tool-change remap staging 和页面状态。
我会修正一个刚发现的语义点applyIniConfigToProfile 会把没有 HALUI MDI 的 gmoccapy 固定 TRT 错合并成默认 M428/M429/M430。现在改为固定 TRT 保留 profile 自己的 switchkins 类型映射。
我会调整 applyIniConfigToProfile如果 INI 没有 [HALUI] MDI 命令,就不从 parser 推导 switchkins 类型,以 profile 的固定 TRT 映射为准。
我会把新测试加入 node smoke并先跑新增测试与直接相关的 profile/INI/staging 测试,快速暴露集成问题。
我现在跑新增和相关 Node 测试profile boundary、INI runtime、machine-file staging、gmoccapy TRT parity。若出现断言失败我会按失败点修正实现而不是放宽测试。
新增 gmoccapy TRT 测试、profile boundary、INI parser 和 machine-file staging 都已通过。接下来我会跑受影响的 sidebar/parity/run precondition/browser build 类测试,并处理可能由新 profile 顺序或 source map 变化带来的断言。
我会跑 gmoccapy_trt_project_sidebar、run_preconditions、rtcp_store 和 linuxcnc_parity_matrix这几项最容易受 profile 列表和 source guard 改动影响。
两处失败都是集成断言而不是功能缺陷xyzac-trt 原 profile 没显式 kinematicsModuleId新通用 run gate 因此误判;另一个是测试还按旧 profile 列表断言。我会补显式 module id并更新旧断言。
我已给 xyzac-trt 补上显式 kinematicsModuleId让通用 RTCP run gate 不再把它误判为 unsupported。接下来更新旧测试的 profile 列表断言并复跑失败项。
我会复跑刚才失败的两项,并补跑新增 gmoccapy TRT 测试,确认 profile id 修复没有引入新问题。
相关失败已修复。现在我会跑完整 smoke:node再跑 build/browser smoke如果时间较长我会继续报告进度。
完整 node smoke 走到 verify_gmoccapy_xyzab_profile 时只剩旧 profile 列表断言失败。这个测试应接受新增的 gmoccapy TRT profile我会更新断言并复跑完整 node smoke。
我会复跑完整 node smoke。上一次已经覆盖到后半段这次从头跑能确认新 profile、旧 gmoccapy XYZAB 参考和 parity 矩阵全部兼容。
完整 node smoke 已通过。接下来我会跑静态构建和浏览器 smoke验证 dist 资产复制后 gmoccapy TRT profile 仍能读取 INI/程序,并且页面不空白。
构建已经通过dist 资产复制正常。我会继续跑 browser smoke如果脚本自己起本地服务就直接用它否则我会启动项目 dev server 后验证。
我会写一份单独的中文评价报告,避免把本轮结论混在已有大文档里。报告会列明 LinuxCNC gmoccapy TRT 参考文件、对标功能、测试过程、命令输出摘要、通过/不通过边界和最终评价。
现有 browser smoke 已覆盖默认 axis/vismach TRT 源程序和 dist但没有在浏览器里显式切到新的 gmoccapy-xyzac-trt profile。我会补一段浏览器 profile/source 验证,让 gmoccapy TRT 在实际页面中也被加载、解释和渲染。