完善五轴 RTCP 仿真与验证资料
This commit is contained in:
92
备忘/备份4.txt
Normal file
92
备忘/备份4.txt
Normal file
@@ -0,0 +1,92 @@
|
||||
本地 LinuxCNC 里同时存在两类关键来源:axis/vismach/5axis/table-rotary-tilting
|
||||
的 xyzac-trt/xyzbc-trt 完整配置,
|
||||
以及 gmoccapy/non_trivial_kinematics/table-rotary-tilting 的
|
||||
gmoccapy 五轴示例。下一步会把这两类来源都落到“对标矩阵”里,避免只覆盖 AXIS/vismach 而漏掉 gmoccapy 路径。
|
||||
|
||||
矩阵会区分“已在浏览器仿真实现”和“只作为 LinuxCNC 源码边界参考”。
|
||||
例如 gmoccapy.py/Glade/图标是界面与 HAL 语义参考;
|
||||
实际状态互锁由 Web store 和 task policy 承接,不会误标成浏览器里运行了 GTK/Python。
|
||||
|
||||
|
||||
|
||||
1、当前代码里已经有 source-reference-map.js,但它主要是“来源索引”,
|
||||
还没有把“哪些 LinuxCNC 功能已经由 Web 状态机承接”做成运行时矩阵。
|
||||
我会在这个基础上补,不重复维护一套散乱清单。
|
||||
|
||||
2、实现上我不会把所有内容塞进 UI 字符串里,而是新增一个可测试的状态对象 linuxCncParityMatrix。
|
||||
界面只负责展示摘要,测试负责检查“对标清单”没有丢项。
|
||||
|
||||
3、现在开始改文件:先扩展 LinuxCNC source map,
|
||||
再加运行时矩阵模块,最后把矩阵接到 store、界面和 smoke 测试。
|
||||
|
||||
|
||||
|
||||
|
||||
Read 3 files and searched codeSearched for *xyzac*trt* in linuxcnc
|
||||
|
||||
Read xyzac-trt.ini
|
||||
|
||||
Read postgui.hal
|
||||
|
||||
Read xyzac-trt.ini
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
我会做三处编辑:新增一个运行时 linuxcnc-parity-matrix 模块;把矩阵挂进 store 和 gmoccapy 信息区;再补一个 Node smoke,确保矩阵里确实包含 gmoccapy、TRT INI、vismach Python、kinematics、M428/M429/M430、真实 G-code 程序来源。
|
||||
|
||||
|
||||
|
||||
|
||||
Read 8 files and searched code, ran a commandRead store.js
|
||||
|
||||
Read package.json
|
||||
|
||||
Read index.js
|
||||
|
||||
Read xyzac-trt.js
|
||||
|
||||
Read xyzbc-trt.js
|
||||
|
||||
Searched for referenceCount|sourceRequiredCount|sourceReferences\.length|sourceSummary\.referenceCount|Profile refs|Source map in node
|
||||
|
||||
Read verify_profile_boundary.mjs
|
||||
|
||||
Read verify_gmoccapy_xyzab_profile.mjs
|
||||
|
||||
Read gmoccapy_shell_smoke.html
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Ran test -f ../linuxcnc/src/emc/task/emctask.cc && echo emctask.cc=ok || true; test -f ../linuxcnc/src/emc/task/emctaskmain.cc && echo emctaskmain.cc=ok || true; test -f ../linuxcnc/src/emc/nml_intf/emc.hh && echo emc.hh=ok || true; test -f ../linuxcnc/src/emc/usr_intf/gmoccapy/gmoccapy.py && echo gmoccapy.py=ok || true; test -f ../linuxcnc/src/hal/user_comps/vismach/xyzac-trt-gui.py && echo xyzac_gui=ok || true; test -f ../linuxcnc/src/hal/user_comps/vismach/xyzbc-trt-gui.py && echo xyzbc_gui=ok || true
|
||||
|
||||
|
||||
|
||||
Searched for EMC_TASK_SET_MODE|EMC_TASK_SET_STATE|EMC_TASK_PLAN_RUN|EMC_TASK_PLAN_EXECUTE|EMC_TASK_PLAN_PAUSE|EMC_TASK_PLAN_RESUME|EMC_TASK_PLAN_STEP|EMC_TASK_ABORT|EMC_JOG|EMC_JOINT_HOME in task
|
||||
|
||||
Searched for const TASK_POLICY_SOURCE_REFERENCES|sourceReferences|EMC_TASK_SET_STATE|emctask in linuxcnc-task-policy.js
|
||||
|
||||
Searched for gmoccapy|xyzac-trt-gui|xyzbc-trt-gui|M428|M429|M430|motion.switchkins-type|POSTGUI_HALFILE|DISPLAY = gmoccapy|DISPLAY = axis in table-rotary-tilting
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
258
备忘/备忘5.txt
Normal file
258
备忘/备忘5.txt
Normal file
@@ -0,0 +1,258 @@
|
||||
|
||||
我会先读取两个项目的结构和已有 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/meswork/cnc_wams/linuxcnc 作为参考,
|
||||
但页面 staging 需要知道这些源文件。
|
||||
|
||||
我确认了一个限制:
|
||||
当前 WASM vendor manifest 只包含 axis/vismach/5axis/table-rotary-tilting,
|
||||
没有拷入 LinuxCNC 的 configs/sim/gmoccapy/non_trivial_kinematics。
|
||||
因此我会把 gmoccapy TRT profile 的验证读取真实 /home/meswork/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/TCP;gmoccapy 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 on;axis/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 在实际页面中也被加载、解释和渲染。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1
备忘/备忘6.txt
Normal file
1
备忘/备忘6.txt
Normal file
@@ -0,0 +1 @@
|
||||
项目“/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan”中,针对的数控系统仿真功能,要求完整准确的对标“/home/meswork/cnc_wams/linuxcnc”中的“gmoccapy”数控系统仿真功能,。通过“/home/meswork/cnc_wams/linuxcnc”和“/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan”分别实际运行G代码程序,将程序的运行结果,包括刀具预览路径、刀具执行路径、G代码每行执行过程分别写入json文件中。json文件中的包含实际程序运行结果。通过这种方式,是西安进行彻底全面完整的测试、验证。结果,分别写入json文件中。然后,通过比对这两个json文件,完善项目“/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan”。
|
||||
Reference in New Issue
Block a user