5.5 KiB
5.5 KiB
06-决策记录
DR-W6-001:working6 作为 working5 后续深化,不作为未完成补丁
日期:2026-06-27
决策:
working6不是修补 working5 未完成项,而是承接 working5 台账中“可选深化方向”。- 本轮主线聚焦 gmoccapy 文件/宏页面、tool editor 页面、native GTK 未实现页面诊断边界。
- working5 中已完成的 HAL 输入、hard-button、状态机门控、换刀回环和低频 HAL pin 行为不得在 working6 中回退。
原因:
working5任务矩阵 W5-001 到 W5-900 已全部完成,并有 EV-W5-900 最终复核证据。- 文件/宏/tool editor/native GTK 页面属于页面级能力和诊断边界深化,风险面和验收口径不同于 working5 的 HAL pin 细化。
影响:
working6需要独立任务矩阵、验收证据和决策记录。- 后续提交或验收应区分 W5 已闭环行为与 W6 新增页面级诊断行为。
DR-W6-002:未实现 native GTK 页面必须诊断化,不伪装成已实现
日期:2026-06-27
决策:
- 对 gmoccapy 原生存在但 Web 尚未完整实现的页面,先建立 implementation matrix。
- Web UI 可以显示 diagnostic-only 状态、源码对应关系、未实现原因和未来补齐入口。
- 未实现页面按钮和 hard-button pin 不得触发假的成功状态。
原因:
- gmoccapy 原生 GTK 页面和 Web shell 的布局、运行环境、文件系统权限、HAL 交互能力不同。
- 若直接把未实现页面显示为可操作,会误导验收,掩盖仿真边界。
影响:
- UI 和 tests 必须验证 diagnostic-only/unsupported/not configured 等边界文案或结构化状态。
- store 中未实现 action 应返回明确 operator message。
DR-W6-003:文件/宏/tool editor 先按 XYZAB 配置边界建模
日期:2026-06-27
决策:
- 文件页面、宏页面和 tool editor 页面优先按
gmoccapy_XYZAB.ini当前配置和 Web 仿真能力建模。 - 配置未启用的能力显示为 no config 或 diagnostic-only。
- 真实文件写入、外部 LinuxCNC 进程联动和持久化 tool table 修改不作为初始实现默认目标。
原因:
- 当前 Web 项目是 LinuxCNC/gmoccapy 行为仿真,不是完整桌面 gmoccapy 进程。
- XYZAB 配置的宏、tool sensor、user message 等能力存在明确启用边界。
- 先把边界表达清楚,后续才能安全决定哪些功能升级为可执行。
影响:
- W6-100、W6-110、W6-120 的验收重点是“能力、gate、边界和诊断是否正确”,不是盲目补齐所有 GTK 行为。
- 若后续要启用真实写文件或外部进程,需要新增决策记录和验收任务。
DR-W6-004:XYZAB 宏页按已配置 5 个 [MACROS] 建模
日期:2026-06-27
决策:
gmoccapy_XYZAB.ini的[MACROS]中 5 个宏必须建模为已配置能力:i_am_losthalo_worldjog_aroundincrement xinc yincgo_to_position X-pos Y-pos Z-pos
- Web 通过
GMOCAPY_RUN_MACRO模拟_on_btn_macro_pressed(),生成O<name> call [args]MDI 命令。 - 宏执行必须复用
RUN_MDIgate;未上电、未回零、非 MDI-capable 或解释器忙时拦截。
原因:
- 初始文档把“未配置宏时显示边界”列为需要处理的通用场景,但实际 XYZAB INI 明确配置了 5 个宏。
- gmoccapy 原生
_make_macro_button()从 INI 读取宏,_on_btn_macro_pressed()将宏转为 O-word MDI 调用。
影响:
- profile、HAL model、communication model、store、Node/browser tests 均断言 XYZAB 宏 count 为 5。
- Web 不创建 native entry dialog;参数由 dispatch/test 传入,后续如需 UI 参数输入需要单独任务。
DR-W6-005:tool editor 本轮只做诊断和 gate,不写 tool.tbl
日期:2026-06-27
决策:
- Web 记录
tooledit1、tool.tbl、17 把刀、可见 XYZAB 轴和 M6/M61 工具动作边界。 GMOCAPY_TOOL_EDITOR_ACTION对save、add、delete、touch-off等写操作返回 diagnostic-only/operator message,不修改本地tool.tbl。- 工具换刀继续沿用 working5 的
iocontrol-loopback,不重新启用手动 gmoccapy toolchange GUI pins。
原因:
- 原生 gmoccapy tool editor 可以直接写配置目录中的
tool.tbl,但浏览器 Web 仿真没有等价的 LinuxCNC 配置写回权限和进程同步语义。 - 未经单独设计直接写文件会混淆“诊断仿真”和“真实机床配置修改”的边界。
影响:
- 本轮验收关注 tool table 来源、数量、只读边界和换刀语义一致性。
- 后续若要实现真实写回,需要新增持久化设计、备份策略、并发保护和验收任务。
DR-W6-006:hard-button 对 native-only/diagnostic-only 页面使用结构化页面诊断
日期:2026-06-27
决策:
tbtn_user_tabs、tbtn_setup、btn_touch、btn_tool、tbtn_switch_mode不再作为普通 Web action 或模式切换伪装执行。- 这些按钮通过
GMOCAPY_NATIVE_PAGE更新gmoccapyGui.activeNativePage、nativePageMode和 operator message。 - UI 通过
data-gmoccapy-page="matrix"展示 native GTK 页面实现矩阵。
原因:
- gmoccapy 原生
_button_pin_changed()会触发当前可见且敏感的 GTK 按钮,但 Web shell 尚未实现完整 setup/user tabs/touch/tool/switchkins 页面。 - 直接把这些按钮映射成其他 Web action 会误表达 native 行为。
影响:
- hard-button 模型仍保留 pin 到 native widget 的源码映射。
- Web 验收明确区分 implemented、partial、diagnostic-only、native-only 页面,避免后续重复争论“未实现页面是否可点击成功”。