完善 working5 gmoccapy HAL 输入对标
This commit is contained in:
@@ -5103,3 +5103,582 @@ Final push and verification:
|
||||
Outcome:
|
||||
- Backup-directory file `备忘/备忘3.txt` is now committed and pushed to cloud repository.
|
||||
- This final verification log entry was created after the push and requires one final log-only sync commit.
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-26 18:33 EDT - working5 gmoccapy XYZAB tool-change HAL semantics
|
||||
|
||||
User request:
|
||||
- Start work according to `/home/meswork/cnc_wams/work/working5`.
|
||||
|
||||
Initial context and status:
|
||||
- Read `work/working5/README.md`, `01-项目功能内容.md`, `02-项目程序开发详细步骤.md`, `03-推进台账.md`, `04-任务矩阵.md`, `05-验收证据.md`, and `06-决策记录.md`.
|
||||
- Read `work/working3/gmoccapy_XYZAB_execution_analysis.md`.
|
||||
- Checked repository state:
|
||||
- existing unrelated deletion remained present: `D linuxcnc.zip`.
|
||||
- this deletion was not reverted, staged, or otherwise modified.
|
||||
|
||||
Baseline/source inspection:
|
||||
- Inspected Web project files:
|
||||
- `app/src/state/linuxcnc-task-policy.js`
|
||||
- `app/src/state/store.js`
|
||||
- `app/src/runtime/gmoccapy-hal-model.js`
|
||||
- `app/src/runtime/gmoccapy-communication-model.js`
|
||||
- `app/src/profiles/gmoccapy-xyzab.js`
|
||||
- `app/src/ui/gmoccapy-shell.js`
|
||||
- related Node and browser smoke tests.
|
||||
- Inspected native LinuxCNC reference files:
|
||||
- `linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini`
|
||||
- `linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal`
|
||||
- `linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal`
|
||||
- Key finding:
|
||||
- `gmoccapy_postgui.hal` executes `unlinkp iocontrol.0.tool-change`, `unlinkp iocontrol.0.tool-changed`, and `unlinkp iocontrol.0.tool-prep-number`.
|
||||
- the manual gmoccapy tool-change GUI nets for `gmoccapy.toolchange-change`, `gmoccapy.toolchange-changed`, and `gmoccapy.toolchange-number` are commented out.
|
||||
- the active simulated tool-change completion path is `net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed`.
|
||||
|
||||
Implementation changes:
|
||||
- Updated `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js`:
|
||||
- added structured `toolChange` metadata.
|
||||
- recorded strategy `iocontrol-loopback`.
|
||||
- recorded `manualGmoccapyPinsConnected: false`.
|
||||
- recorded M6/M61 remap references.
|
||||
- recorded the three POSTGUI `unlinkp` pins.
|
||||
- recorded commented manual GUI nets and the active postgui loopback.
|
||||
- exposed tool-change summary fields through `createGmoccapyHalSummary()`.
|
||||
- Updated `web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js`:
|
||||
- added matching `hal.halcmd.toolChange` metadata to the profile.
|
||||
- Updated `web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js`:
|
||||
- added a `Tool change` diagnostic row under gmoccapy HAL diagnostics.
|
||||
- displays strategy, manual GUI pin connection state, POSTGUI unlink count, and commented manual net count.
|
||||
- Updated tests:
|
||||
- `tests/node/verify_gmoccapy_hal_model.mjs`
|
||||
- `tests/node/verify_gmoccapy_xyzab_profile.mjs`
|
||||
- `tests/node/verify_profile_boundary.mjs`
|
||||
- `tests/browser/gmoccapy_shell_smoke.html`
|
||||
- Updated working5 records:
|
||||
- `work/working5/03-推进台账.md`
|
||||
- `work/working5/04-任务矩阵.md`
|
||||
- `work/working5/05-验收证据.md`
|
||||
- `work/working5/06-决策记录.md`
|
||||
|
||||
Validation commands and results:
|
||||
- Targeted Node tests:
|
||||
- command:
|
||||
- `cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app`
|
||||
- `node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_profile_boundary.mjs`
|
||||
- result:
|
||||
- `gmoccapy_hal_model_smoke=ok`
|
||||
- `gmoccapy_xyzab_profile_smoke=ok`
|
||||
- `profile_boundary_smoke=ok`
|
||||
- Full Node smoke:
|
||||
- command:
|
||||
- `npm run smoke:node`
|
||||
- result:
|
||||
- passed.
|
||||
- included `linuxcnc_task_hal_runtime_smoke=ok`, `profile_boundary_smoke=ok`, `gmoccapy_xyzab_profile_smoke=ok`, `gmoccapy_hal_model_smoke=ok`, `gmoccapy_xyzab_gates_smoke=ok`, and `linear_unit_conversion_smoke=ok`.
|
||||
- Build and browser smoke:
|
||||
- command:
|
||||
- `npm run build && npm run smoke`
|
||||
- result:
|
||||
- `gmoccapy_static_build=ok`
|
||||
- `gmoccapy_shell_smoke=ok`
|
||||
- `gmoccapy_dist_smoke=ok`
|
||||
- Diff check:
|
||||
- command:
|
||||
- `git diff --check -- web-rtcp-5axis-sim-plan work/working5`
|
||||
- result:
|
||||
- passed with no output.
|
||||
|
||||
Working tree after implementation:
|
||||
- Modified intended files:
|
||||
- `web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js`
|
||||
- `web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_profile_boundary.mjs`
|
||||
- `work/working5/03-推进台账.md`
|
||||
- `work/working5/04-任务矩阵.md`
|
||||
- `work/working5/05-验收证据.md`
|
||||
- `work/working5/06-决策记录.md`
|
||||
- `web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
|
||||
- Existing unrelated item left untouched:
|
||||
- `D linuxcnc.zip`
|
||||
|
||||
Decision recorded:
|
||||
- `DR-W5-003`: XYZAB tool change is modeled as POSTGUI `iocontrol` loopback, not as a manual gmoccapy tool-change dialog, because the native `gmoccapy_postgui.hal` disconnects the manual GUI pins and leaves those nets commented.
|
||||
|
||||
Outcome:
|
||||
- W5-160 added and marked complete.
|
||||
- gmoccapy XYZAB profile, HAL model, UI diagnostics, Node tests, browser tests, and working5 records now explicitly capture the LinuxCNC XYZAB tool-change behavior.
|
||||
- No commit or push was requested or performed.
|
||||
|
||||
## 2026-06-26 20:15 EDT - ToDesk Ubuntu crash dialog handling
|
||||
|
||||
User request:
|
||||
- The desktop showed an Ubuntu crash report dialog saying "The application ToDesk has closed unexpectedly"; resolve it.
|
||||
|
||||
Process log:
|
||||
- Checked running ToDesk processes with `ps -ef | rg -i 'todesk|ToDesk'`.
|
||||
- Found `/opt/todesk/bin/ToDesk_Service` running as root.
|
||||
- The ToDesk foreground GUI process was not running initially.
|
||||
- Checked systemd services.
|
||||
- `todeskd.service` was loaded, enabled, and active/running.
|
||||
- No `todesk.service` user or system unit existed.
|
||||
- Checked installed package and files.
|
||||
- `todesk 4.8.6.2` was installed.
|
||||
- Binaries existed under `/opt/todesk/bin`.
|
||||
- Checked crash files under `/var/crash`.
|
||||
- Found `/var/crash/_opt_todesk_bin_ToDesk.1000.crash`.
|
||||
- Other unrelated old crash reports for WeChat and LibreOffice were present and left untouched.
|
||||
- Read the ToDesk crash report.
|
||||
- Crash time: Fri Jun 26 20:06:38 2026.
|
||||
- Executable: `/opt/todesk/bin/ToDesk`.
|
||||
- Session tag included `wayland-session`.
|
||||
- Signal: `SIGSEGV`.
|
||||
- Crash title: `ToDesk crashed with SIGSEGV in html::element::determine_style()`.
|
||||
- Stack top showed ToDesk internal UI/rendering functions:
|
||||
- `html::element::determine_style(...)`
|
||||
- `html::element::get_style() const`
|
||||
- `html::element::attr_role() const`
|
||||
- `html::behavior::window_frame_ctl::on(...)`
|
||||
- Checked desktop/session state.
|
||||
- Active session type was `wayland`.
|
||||
- `DISPLAY=:0`, `WAYLAND_DISPLAY=wayland-0`, and user DBus was available.
|
||||
- Checked ToDesk autostart entry.
|
||||
- `/home/meswork/.config/autostart/todesk.desktop` launches ToDesk with:
|
||||
- `LIBVA_DRIVER_NAME=iHD`
|
||||
- `LIBVA_DRIVERS_PATH=/opt/todesk/bin`
|
||||
- `GDK_BACKEND=x11`
|
||||
- Confirmed Ubuntu crash dialog process.
|
||||
- `apport-gtk` and `update-notifier-crash` were running.
|
||||
- Attempted a combined cleanup/start command.
|
||||
- The `pkill -f '/usr/share/apport/apport-gtk'` pattern also matched the active shell command, so that combined command exited early with code 143 before moving the crash file or relaunching ToDesk.
|
||||
- Rechecked state afterward to avoid assuming success.
|
||||
- Closed the Ubuntu crash dialog process.
|
||||
- After the earlier `pkill`, `apport-gtk` was no longer running.
|
||||
- Moved the ToDesk crash report out of `/var/crash`.
|
||||
- Created `/home/meswork/.local/share/todesk/crash-backup`.
|
||||
- Moved `_opt_todesk_bin_ToDesk.1000.crash` there with a timestamped filename.
|
||||
- This prevents the same Ubuntu crash report dialog from reappearing for that crash.
|
||||
- Relaunched ToDesk foreground GUI without restarting the daemon:
|
||||
- `setsid env LIBVA_DRIVER_NAME=iHD LIBVA_DRIVERS_PATH=/opt/todesk/bin GDK_BACKEND=x11 DISPLAY=:0 XDG_RUNTIME_DIR=/run/user/1000 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus /opt/todesk/bin/ToDesk > /tmp/todesk-launch.log 2>&1 < /dev/null &`
|
||||
- Observed relaunch.
|
||||
- `/opt/todesk/bin/ToDesk` appeared as user `meswork`.
|
||||
- `/opt/todesk/bin/ToDesk_Service` remained running as root.
|
||||
- `/var/crash` no longer contained a ToDesk crash file.
|
||||
- Launch log showed ToDesk extracting icon/image resources and then only `mkdir: cannot create directory '/tmp/fuse': File exists`; no fatal error appeared.
|
||||
- Waited and rechecked stability.
|
||||
- After about 20 seconds, both `ToDesk` and `ToDesk_Service` were still running.
|
||||
- `todeskd.service` remained `active/running` with `NRestarts=0`.
|
||||
- No new ToDesk crash file appeared in `/var/crash`.
|
||||
- `apport-gtk` and `update-notifier-crash` were no longer running.
|
||||
|
||||
Outcome:
|
||||
- The Ubuntu crash report dialog was closed.
|
||||
- The stale ToDesk crash report was moved out of `/var/crash`.
|
||||
- ToDesk foreground GUI was relaunched successfully.
|
||||
- ToDesk daemon was not restarted, reducing risk of disrupting the active remote session.
|
||||
- Final observed state:
|
||||
- `root ... /opt/todesk/bin/ToDesk_Service`
|
||||
- `meswork ... /opt/todesk/bin/ToDesk`
|
||||
- `/var/crash` contained no ToDesk crash report.
|
||||
|
||||
## 2026-06-26 20:17 EDT - 将 GPT/Codex 过程日志语言规则写入 AGENTS.md
|
||||
|
||||
用户请求:
|
||||
- `web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md` 这个文件使用中文记录。
|
||||
- 将该要求写入 `AGENTS.md`。
|
||||
|
||||
执行过程:
|
||||
- 读取 `/home/meswork/cnc_wams/AGENTS.md`,确认当前已有工作区范围和日志路径规则:
|
||||
- 每次 GPT/Codex 执行完成后,将完整执行过程日志追加到 `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`。
|
||||
- 检查目标日志文件和 `AGENTS.md` 文件存在:
|
||||
- `/home/meswork/cnc_wams/AGENTS.md`
|
||||
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
|
||||
- 修改 `/home/meswork/cnc_wams/AGENTS.md`,在日志规则下追加:
|
||||
- `The log content written to this file must be recorded in Chinese.`
|
||||
- 按新的日志语言要求,将本次执行过程用中文追加到 `gpdlog.md`。
|
||||
|
||||
结果:
|
||||
- 已将 `gpdlog.md` 使用中文记录的要求写入 `AGENTS.md`。
|
||||
- 从本次记录开始,日志内容按中文记录。
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-26 R4 - working5 continuation: gmoccapy HAL hard-button pin mapping
|
||||
|
||||
User request:
|
||||
- Continue from `/home/meswork/cnc_wams/work/working5`.
|
||||
|
||||
Context gathered:
|
||||
- Read `work/working5/README.md`, `01-项目功能内容.md`, `02-项目程序开发详细步骤.md`, `03-推进台账.md`, `04-任务矩阵.md`, `05-验收证据.md`, and `06-决策记录.md`.
|
||||
- Confirmed previous completed work through R3: mode gate fixes and XYZAB POSTGUI tool-change loopback semantics.
|
||||
- Inspected LinuxCNC native references:
|
||||
- `linuxcnc/src/emc/usr_intf/gmoccapy/gmoccapy.py` `_make_hal_pins()`, `_button_pin_changed()`, `_get_child_button()`.
|
||||
- `linuxcnc/share/gmoccapy/gmoccapy.glade` `vbtb_main` order.
|
||||
- `linuxcnc/configs/sim/gmoccapy/h_buttonlist.hal`, `v_buttonlist.hal`, and related glade button list examples.
|
||||
- Inspected Web implementation and tests:
|
||||
- `app/src/profiles/gmoccapy-xyzab.js`
|
||||
- `app/src/runtime/gmoccapy-hal-model.js`
|
||||
- `app/src/runtime/gmoccapy-communication-model.js`
|
||||
- `app/src/state/store.js`
|
||||
- `app/src/ui/gmoccapy-shell.js`
|
||||
- `tests/node/verify_gmoccapy_hal_model.mjs`
|
||||
- `tests/node/verify_gmoccapy_communication_model.mjs`
|
||||
- `tests/node/verify_gmoccapy_xyzab_profile.mjs`
|
||||
- `tests/node/verify_gmoccapy_xyzab_gates.mjs`
|
||||
- `tests/browser/gmoccapy_shell_smoke.html`
|
||||
|
||||
Findings:
|
||||
- Native gmoccapy hard-button pins are created as `gmoccapy.h-button.button-0..9` and `gmoccapy.v-button.button-0..6`.
|
||||
- `_button_pin_changed()` ignores falling edges and only handles `pin.get() == True`.
|
||||
- `_get_child_button()` maps button numbers to current visible non-label GTK children, and ignores insensitive targets.
|
||||
- Native `vbtb_main` order is `tbtn_estop`, `tbtn_on`, `rbt_manual`, `rbt_mdi`, `rbt_auto`, `tbtn_user_tabs`, `tbtn_setup`.
|
||||
- Existing Web profile panel schema incorrectly listed Estop/Power as h-button pins and shifted Manual/MDI/Auto v-button indexes.
|
||||
|
||||
Implementation changes:
|
||||
- Updated `web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js`:
|
||||
- corrected task/mode panel schema pin order to `gmoccapy.v-button.button-0..4` for Estop, Power, Manual, MDI, Auto.
|
||||
- Updated `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js`:
|
||||
- added structured `hardwareButtons` metadata.
|
||||
- recorded native source methods `_button_pin_changed`, `_get_child_button`, `_make_hal_pins`.
|
||||
- recorded rising-edge-only behavior, current visible child mapping, hidden-label skip behavior, and insensitive-target ignored behavior.
|
||||
- mapped right-side v-button pins and selected bottom h-button references.
|
||||
- added `resolveGmoccapyHardwareButton()`.
|
||||
- extended `createGmoccapyHalSummary()` with hard-button counts and behavior fields.
|
||||
- Updated `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-communication-model.js`:
|
||||
- added hardware-button HAL path through `_button_pin_changed`.
|
||||
- added `hardware-button` action mapping.
|
||||
- added summary flag `hasNativeHardwareButtonPath`.
|
||||
- Updated `web-rtcp-5axis-sim-plan/app/src/state/store.js`:
|
||||
- added `GMOCAPY_HARDWARE_BUTTON` action.
|
||||
- falling edges are ignored.
|
||||
- mapped pins dispatch existing Web actions and reuse existing task policy gates.
|
||||
- unmapped and diagnostic-only pins produce explicit operator messages.
|
||||
- Updated `web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js`:
|
||||
- added `data-gmoccapy-hal-pin`, `data-gmoccapy-native-panel`, and `data-gmoccapy-native-button-index` to mapped Web buttons.
|
||||
- added `Hard buttons` gmoccapy HAL diagnostic row.
|
||||
- Updated tests:
|
||||
- `tests/node/verify_gmoccapy_hal_model.mjs` validates hard-button model and resolver.
|
||||
- `tests/node/verify_gmoccapy_communication_model.mjs` validates hardware-button native path/action/summary.
|
||||
- `tests/node/verify_gmoccapy_xyzab_profile.mjs` validates corrected profile panel pin order.
|
||||
- `tests/node/verify_gmoccapy_xyzab_gates.mjs` validates `GMOCAPY_HARDWARE_BUTTON` falling edge, rising edge, gate, diagnostic-only, and unmapped behavior.
|
||||
- `tests/browser/gmoccapy_shell_smoke.html` validates DOM pin attributes and hard-button diagnostic text.
|
||||
- Updated working5 records:
|
||||
- `work/working5/03-推进台账.md`
|
||||
- `work/working5/04-任务矩阵.md`
|
||||
- `work/working5/05-验收证据.md`
|
||||
- `work/working5/06-决策记录.md`
|
||||
|
||||
Validation commands and results:
|
||||
- Targeted Node tests:
|
||||
- command:
|
||||
- `cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app`
|
||||
- `node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs && node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs`
|
||||
- result:
|
||||
- `gmoccapy_hal_model_smoke=ok`
|
||||
- `gmoccapy_communication_model_smoke=ok`
|
||||
- `gmoccapy_xyzab_profile_smoke=ok`
|
||||
- `gmoccapy_xyzab_gates_smoke=ok`
|
||||
- Full Node smoke:
|
||||
- command:
|
||||
- `npm run smoke:node`
|
||||
- result:
|
||||
- passed.
|
||||
- included `gmoccapy_xyzab_profile_smoke=ok`, `gmoccapy_communication_model_smoke=ok`, `gmoccapy_hal_model_smoke=ok`, `gmoccapy_xyzab_gates_smoke=ok`, and `linear_unit_conversion_smoke=ok`.
|
||||
- Build and browser smoke:
|
||||
- command:
|
||||
- `npm run build && npm run smoke`
|
||||
- result:
|
||||
- `gmoccapy_static_build=ok`
|
||||
- `gmoccapy_shell_smoke=ok`
|
||||
- `gmoccapy_dist_smoke=ok`
|
||||
- Diff check:
|
||||
- command:
|
||||
- `git diff --check -- web-rtcp-5axis-sim-plan work/working5`
|
||||
- result:
|
||||
- passed with no output.
|
||||
|
||||
Working tree notes:
|
||||
- Modified intended R4 files:
|
||||
- `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-communication-model.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/state/store.js`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
|
||||
- `work/working5/03-推进台账.md`
|
||||
- `work/working5/04-任务矩阵.md`
|
||||
- `work/working5/05-验收证据.md`
|
||||
- `work/working5/06-决策记录.md`
|
||||
- `web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
|
||||
- Also present from earlier R3 or pre-existing work:
|
||||
- `web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js` includes both R3 tool-change metadata and R4 corrected v-button pin order.
|
||||
- `web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js` includes both R3 tool-change diagnostics and R4 hard-button DOM/diagnostics.
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_profile_boundary.mjs` contains R3 tool-change boundary assertions.
|
||||
- `D linuxcnc.zip` remains an unrelated pre-existing deletion and was not touched.
|
||||
|
||||
Decision recorded:
|
||||
- `DR-W5-004`: external HAL hard-button pins are represented through explicit pin-to-action mappings and `GMOCAPY_HARDWARE_BUTTON`, not by relying on Web DOM order. Native-only buttons not implemented in Web are diagnostic-only.
|
||||
|
||||
Outcome:
|
||||
- W5-170 added and marked complete.
|
||||
- gmoccapy XYZAB external HAL hard-button pin behavior is now modeled, testable, visible in UI diagnostics, and covered by Node/build/browser smoke.
|
||||
- No commit or push was requested or performed.
|
||||
|
||||
## 2026-06-26 20:26 EDT - 取消旧日志中文转换
|
||||
|
||||
用户请求:
|
||||
- 先要求将 `web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md` 以前的英文记录也转成中文。
|
||||
- 随后用户明确说明“不用转了”。
|
||||
|
||||
执行过程:
|
||||
- 检查了 `gpdlog.md` 的规模和内容结构,确认文件约 5431 行,包含大量英文过程记录、命令、路径、测试输出和已存在的中文记录。
|
||||
- 原计划是保护命令、路径、代码块、URL 和测试输出,只转换叙述性日志文本。
|
||||
- 曾尝试安装本地离线翻译工具 `argostranslate`,第一次因下载超时失败;第二次安装进程因用户中断仍在后台运行。
|
||||
- 收到“不用转了”后,停止继续转换旧日志。
|
||||
- 检查后台进程,发现 `python3 -m pip install --user --timeout 120 --retries 5 --quiet argostranslate` 仍在运行。
|
||||
- 终止该后台安装进程,并确认没有剩余 `pip install` / `argostranslate` 相关进程。
|
||||
|
||||
结果:
|
||||
- 未转换旧的 `gpdlog.md` 内容。
|
||||
- 未批量修改历史日志正文。
|
||||
- 已停止残留的离线翻译工具安装进程。
|
||||
- 仅按当前 `AGENTS.md` 规则,用中文追加本次取消转换的执行过程记录。
|
||||
|
||||
## 2026-06-27 - working5 R5:gmoccapy HAL 输入 pin 与倍率 pin 语义补齐
|
||||
|
||||
用户请求:
|
||||
- 用户要求按 `/home/meswork/cnc_wams/work/working5` 开始工作。
|
||||
|
||||
执行过程:
|
||||
- 读取 `/home/meswork/cnc_wams/AGENTS.md`,确认每轮执行结束后需要将完整过程日志用中文追加到 `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`。
|
||||
- 读取 `work/working5/README.md`、`01-项目功能内容.md`、`02-项目程序开发详细步骤.md`、`03-推进台账.md`、`04-任务矩阵.md`、`05-验收证据.md`、`06-决策记录.md`。
|
||||
- 确认 working5 已完成 R1 到 R4,下一步明确指向 `gmoccapy.ignore-limits`、`gmoccapy.optional-stop`、`gmoccapy.blockdelete`、override analog/count/reset pins 与 Web 状态的交叉行为。
|
||||
- 检查工作树状态,发现已有未提交改动和无关的 `linuxcnc.zip` 删除;按规则没有回退任何既有改动。
|
||||
- 使用 `rg` 搜索 Web 项目和 LinuxCNC 源码中与 `optional`、`blockdelete`、`ignore-limits`、`override`、`feed`、`rapid`、`spindle` 相关的实现。
|
||||
- 读取 `app/src/state/store.js`、`app/src/profiles/gmoccapy-xyzab.js`、`app/src/runtime/gmoccapy-hal-model.js`、`app/src/runtime/gmoccapy-communication-model.js`、`app/src/ui/gmoccapy-shell.js`、相关 Node/browser 测试。
|
||||
- 对照 `/home/meswork/cnc_wams/linuxcnc/src/emc/usr_intf/gmoccapy/gmoccapy.py`,确认:
|
||||
- `_ignore_limits()` 由 `gmoccapy.ignore-limits` 驱动 `chk_ignore_limits`,active 时通过 `on_chk_ignore_limits_toggled()` 调用 `command.override_limits()`。
|
||||
- `gmoccapy.optional-stop` 连接 `_optional_blocks()`,实际驱动 `tbtn_optional_blocks`,再调用 `command.set_block_delete()`。
|
||||
- `gmoccapy.blockdelete` 连接 `_blockdelete()`,实际调用 `command.set_optional_stop()`。
|
||||
- `_on_counts_changed()` 只有对应 `*.count-enable` 为 true 时才调整 feed/rapid/spindle/jog velocity 滑块,否则只同步 counts 基线。
|
||||
- `_on_analog_value_changed()` 只有对应 `*.analog-enable` 为 true 时才接受 `*.direct-value`。
|
||||
- `_reset_override()` 只在 pin 为 true 时复位 feed/rapid/spindle override。
|
||||
- 对照 `/home/meswork/cnc_wams/linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.pref`,确认本配置默认 scale:`scale_feed_override = 1`、`scale_rapid_override = 1`、`scale_spindle_override = 1`、`scale_jog_vel = 140.4`。
|
||||
|
||||
实现修改:
|
||||
- 修改 `app/src/state/store.js`:
|
||||
- 引入 `gmoccapyHalModel`。
|
||||
- 新增 `gmoccapyGui` 状态,记录 `ignoreLimits`、`optionalBlocks`、`optionalStop`、override counts/enable/analog-enable、`jogVelocity` 和最后一次 HAL pin 效果。
|
||||
- 新增 `GMOCAPY_HAL_PIN` action。
|
||||
- 新增 HAL pin 解析、已知 pin 校验、operator input patch、override counts/direct-value/reset patch、100% reset 等 helper。
|
||||
- 实现 `ignore-limits`、`optional-stop -> block delete`、`blockdelete -> optional stop`、override count-enable、analog-enable、direct-value、reset rising-edge 语义。
|
||||
- 新增 `RESET_OVERRIDE`、`SET_BLOCK_DELETE`、`SET_OPTIONAL_STOP`、`SET_IGNORE_LIMITS` 等 Web action。
|
||||
- 修改 `app/src/profiles/gmoccapy-xyzab.js`:
|
||||
- 在 `halPins` 中补充 feed/rapid/spindle/jog override counts、count-enable、analog-enable、direct-value、reset pins。
|
||||
- 补充 `gmoccapy.ignore-limits`、`gmoccapy.optional-stop`、`gmoccapy.blockdelete`。
|
||||
- 修改 `app/src/runtime/gmoccapy-hal-model.js`:
|
||||
- 扩展 `override` pin 组。
|
||||
- 新增 `operator-inputs` pin 组。
|
||||
- 新增 `halPinActions`,记录 `_ignore_limits`、`_optional_blocks`、`_blockdelete`、`_on_counts_changed`、`_on_analog_value_changed`、`_reset_override` 等源码方法与 Web 映射。
|
||||
- 在 summary 中新增 operator input 数量、override target 数量、optional/blockdelete 交叉标志、count/direct/reset enable 规则。
|
||||
- 修改 `app/src/runtime/gmoccapy-communication-model.js`:
|
||||
- 新增 `nativePaths.halPins`。
|
||||
- 新增 `hal-pin-input` action mapping,说明 `GMOCAPY_HAL_PIN` 与 gmoccapy HAL callback 的关系。
|
||||
- summary 新增 `hasNativeHalPinInputPath`。
|
||||
- 修改 `app/src/ui/gmoccapy-shell.js`:
|
||||
- 在 info diagnostics 中新增 `data-gmoccapy-hal="operator-inputs"` 和 `data-gmoccapy-hal="override-inputs"` 行。
|
||||
- 在 override 面板新增 ignore limits、block delete、optional stop 和最后一次 HAL input 状态显示。
|
||||
- 为 feed/rapid/spindle override 增加 100% reset 控件。
|
||||
- 新增 HAL input/override 格式化函数。
|
||||
- 修改 `app/src/styles/gmoccapy.css`:
|
||||
- 将 override 面板调整为 4 行。
|
||||
- 将 `.stepper` 扩展为 4 列以容纳 100% reset 按钮。
|
||||
- 新增 `.toggle-row` 和 `.status-chip` 样式,避免新增文本挤压或溢出。
|
||||
- 修改 Node 测试:
|
||||
- `verify_gmoccapy_xyzab_gates.mjs` 覆盖 `GMOCAPY_HAL_PIN` 的 ignore-limits、optional-stop/blockdelete 交叉、counts/direct-value enable、reset rising-edge、jog velocity scale、unknown pin。
|
||||
- `verify_gmoccapy_hal_model.mjs` 覆盖 operator input 组、override pin 组和 summary 字段。
|
||||
- `verify_gmoccapy_communication_model.mjs` 覆盖 `halPins` path 和 `hal-pin-input` action mapping。
|
||||
- `verify_gmoccapy_xyzab_profile.mjs` 覆盖新增 profile halPins。
|
||||
- 修改浏览器测试 `tests/browser/gmoccapy_shell_smoke.html`:
|
||||
- 覆盖 operator input/override diagnostic 文本。
|
||||
- 覆盖 feed/spindle 100% reset 按钮。
|
||||
- 覆盖 ignore limits、block delete、optional stop Web 控件状态。
|
||||
- 通过 `window.webRtcp5AxisSimulation.dispatch({ type: "GMOCAPY_HAL_PIN", ... })` 覆盖 optional/blockdelete 交叉 pin。
|
||||
- 更新 working5 文档:
|
||||
- `03-推进台账.md` 追加 R5。
|
||||
- `04-任务矩阵.md` 新增并完成 W5-180。
|
||||
- `05-验收证据.md` 新增 EV-W5-180、EV-W5-181 和 R5 命令/断言摘要。
|
||||
- `06-决策记录.md` 新增 DR-W5-005。
|
||||
|
||||
验证命令与结果:
|
||||
- 最小 Node 与浏览器回归:
|
||||
- 命令:
|
||||
- `cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app`
|
||||
- `node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs && node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs && bash ../tests/browser/verify_gmoccapy_shell_browser.sh`
|
||||
- 结果:
|
||||
- `gmoccapy_hal_model_smoke=ok`
|
||||
- `gmoccapy_communication_model_smoke=ok`
|
||||
- `gmoccapy_xyzab_profile_smoke=ok`
|
||||
- `gmoccapy_xyzab_gates_smoke=ok`
|
||||
- `gmoccapy_shell_smoke=ok`
|
||||
- 完整 Node smoke:
|
||||
- 命令:
|
||||
- `npm run smoke:node`
|
||||
- 结果:
|
||||
- 通过。
|
||||
- 关键输出包含 `gmoccapy_xyzab_profile_smoke=ok`、`gmoccapy_communication_model_smoke=ok`、`gmoccapy_hal_model_smoke=ok`、`gmoccapy_xyzab_gates_smoke=ok`、`linear_unit_conversion_smoke=ok`。
|
||||
- 构建与浏览器 smoke:
|
||||
- 命令:
|
||||
- `npm run build && npm run smoke`
|
||||
- 结果:
|
||||
- `gmoccapy_static_build=ok`
|
||||
- `gmoccapy_shell_smoke=ok`
|
||||
- `gmoccapy_dist_smoke=ok`
|
||||
- 空白检查:
|
||||
- 命令:
|
||||
- `git diff --check -- web-rtcp-5axis-sim-plan work/working5`
|
||||
- 结果:
|
||||
- 通过,无输出。
|
||||
|
||||
工作树备注:
|
||||
- 本轮直接修改的实现和测试文件:
|
||||
- `web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-communication-model.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/state/store.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/styles/gmoccapy.css`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js`
|
||||
- `web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs`
|
||||
- 本轮更新的工作记录文件:
|
||||
- `work/working5/03-推进台账.md`
|
||||
- `work/working5/04-任务矩阵.md`
|
||||
- `work/working5/05-验收证据.md`
|
||||
- `work/working5/06-决策记录.md`
|
||||
- `web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
|
||||
- 工作树中仍有先前存在或其他轮次留下的改动,例如 `AGENTS.md`、`linuxcnc.zip` 删除、`verify_profile_boundary.mjs` 等;本轮没有回退这些改动。
|
||||
|
||||
结果:
|
||||
- W5-180 已完成。
|
||||
- Web 项目现在能按 gmoccapy 源码语义模拟 `ignore-limits`、`optional-stop`、`blockdelete` 和 override counts/direct-value/reset HAL input pins。
|
||||
- 新增行为已在 profile、HAL model、communication model、store、UI 和 Node/browser 测试中形成可追踪证据。
|
||||
- 没有执行 commit 或 push。
|
||||
|
||||
## 2026-06-27 R6 过程日志:继续完成 working5 jog 与消息 HAL pin 对标
|
||||
|
||||
用户请求:
|
||||
- 接续上一轮,继续完成 `/home/meswork/cnc_wams/work/working5` 的工作。
|
||||
|
||||
现场恢复:
|
||||
- 查看 `work/working5` 的 README、推进台账、任务矩阵、验收证据和决策记录。
|
||||
- 确认 R5 已完成 `ignore-limits`、`optional-stop`、`blockdelete` 与 override HAL input pin 语义。
|
||||
- 确认下一步为 `gmoccapy.jog.axis.*`、`gmoccapy.jog.jog-inc-*`、`gmoccapy.delete-message`、`gmoccapy.warning-confirm` 等剩余 HAL pin 与 Web 状态/消息系统的映射。
|
||||
- 查看工作树,注意到已有未提交改动包括 `AGENTS.md`、`linuxcnc.zip` 删除、`web-rtcp-5axis-sim-plan` 多个源码/测试文件和 `working5` 文档;本轮未回退这些已有改动。
|
||||
|
||||
源码对标:
|
||||
- 读取 `linuxcnc/src/emc/usr_intf/gmoccapy/gmoccapy.py` 中 `_make_hal_pins()`、`_on_pin_jog_changed()`、`_on_pin_incr_changed()`、`_on_pin_turtle_jog()`、`_del_message_changed()` 等实现。
|
||||
- 读取 `linuxcnc/src/emc/usr_intf/gmoccapy/dialogs.py` 中 `warning_dialog()`,确认其每 100ms 轮询 `warning-confirm` confirm pin。
|
||||
- 读取 `linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini`,确认 `[DISPLAY] INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 in`。
|
||||
- 确认 gmoccapy 会在 INI 增量前插入 continuous `rbt_0`,因此 XYZAB 的 jog increment HAL input 应覆盖 `jog-inc-0..5`,其中 `jog-inc-0` 为连续点动、距离 0,`jog-inc-5` 的 `1.2345 in` 在 mm 机床下为 31.3563 mm。
|
||||
- 确认 jog axis pin 与 hard-button pin 不同:hard-button 是 rising-edge-only,jog axis pin 是 true press、false release 的 level 行为。
|
||||
|
||||
实现修改:
|
||||
- 修改 `app/src/profiles/gmoccapy-xyzab.js`:
|
||||
- 新增 `gmoccapyXyzabJogAxisPins` 和 `gmoccapyXyzabJogIncrementPins`。
|
||||
- profile `halPins` 补齐 10 个 XYZAB axis jog pins、6 个 jog increment pins、`gmoccapy.jog.jog-increment`、`gmoccapy.jog.turtle-jog`、`gmoccapy.delete-message`、`gmoccapy.warning-confirm`。
|
||||
- 修改 `app/src/runtime/gmoccapy-hal-model.js`:
|
||||
- jog pin group 增加 `jog-inc-1..5` 和 `jog.turtle-jog`。
|
||||
- `halPinActions.source.methods` 增加 `_on_pin_jog_changed`、`_on_pin_incr_changed`、`_del_message_changed`。
|
||||
- 新增 `jogPins` 结构,记录 5 个轴、10 个 axis jog pins、6 个增量 pin、output pin、turtle pin 和 native callback 语义。
|
||||
- 新增 `messagePins` 结构,记录 `delete-message`、`warning-confirm`、`error` 的 native callback 和 Web 状态。
|
||||
- summary 增加 `jogAxisPinCount`、`jogIncrementPinCount`、`messageInputPinCount`、`jogAxisPinsPressRelease`、`jogIncrementPinsRisingEdgeOnly`、`jogIncrementZeroIsContinuous`、`turtleJogLevelDriven`、`deleteMessageRisingEdgeOnly`、`warningConfirmLevelPolled`。
|
||||
- 修改 `app/src/runtime/gmoccapy-communication-model.js`:
|
||||
- HAL input path 说明扩展到 jog、jog increment、message pins。
|
||||
- `hal-pin-input` action mapping 加入 `_del_message_changed` 和 delete-message rising-edge 规则。
|
||||
- 新增 `hal-jog-pin` action mapping,对应 `_on_pin_jog_changed/_on_pin_incr_changed`。
|
||||
- 新增 `hal-warning-confirm` action mapping,对应 `dialogs.warning_dialog` confirm pin polling。
|
||||
- 修改 `app/src/state/store.js`:
|
||||
- `gmoccapyGui` 新增 `jogIncrementIndex`、`jogIncrementLabel`、`jogIncrementOutput`、`turtleJog`、`activeJogPin`、`warningConfirm`、`error`、`deletedMessageCount`。
|
||||
- 扩展 `GMOCAPY_HAL_PIN` 分发,处理 jog axis press/release、jog increment rising-edge、turtle jog level、delete-message true/falling edge、warning-confirm level。
|
||||
- 新增解析函数 `resolveGmoccapyJogAxisPin()`、`resolveGmoccapyJogIncrementPin()`。
|
||||
- 新增 `applyGmoccapyJogAxisHalPatch()` 和 `applyGmoccapyJogIncrementHalPatch()`。
|
||||
- jog axis HAL pin 使用 `gmoccapyGui.jogIncrementOutput` 作为 gmoccapy 的当前增量输出,避免把 Web 普通按钮默认 1mm 点动误用于 HAL continuous 默认状态。
|
||||
- 修改 `app/src/ui/gmoccapy-shell.js`:
|
||||
- info diagnostics 新增 `data-gmoccapy-hal="jog-inputs"` 和 `data-gmoccapy-hal="message-inputs"`。
|
||||
- 新增 `formatGmoccapyJogInputs()` 和 `formatGmoccapyMessageInputs()`,显示 axis jog pin 数量、jog-inc 数量、press/release level、rising-edge-only、continuous、turtle、delete-message、warning-confirm 等语义。
|
||||
|
||||
测试修改:
|
||||
- 修改 `tests/node/verify_gmoccapy_hal_model.mjs`:
|
||||
- 覆盖 jog pin group、jogPins 结构、messagePins 结构和 summary 新字段。
|
||||
- 修改 `tests/node/verify_gmoccapy_xyzab_profile.mjs`:
|
||||
- 覆盖新增 profile halPins:axis jog、jog-inc、jog-increment、turtle-jog、delete-message、warning-confirm。
|
||||
- 修改 `tests/node/verify_gmoccapy_communication_model.mjs`:
|
||||
- 覆盖新增 `hal-jog-pin`、`hal-warning-confirm` action mappings。
|
||||
- summary action count 更新为 19。
|
||||
- 修改 `tests/node/verify_gmoccapy_xyzab_gates.mjs`:
|
||||
- 覆盖 HAL jog 未上电 gate、continuous jog press/release、`jog-inc-2` falling edge 忽略和 rising edge 选择、`jog-inc-5` 英寸换算、turtle jog level。
|
||||
- 覆盖 `delete-message` falling edge 忽略、true 删除 alert/消息、`warning-confirm` true/false 状态。
|
||||
- 修改 `tests/browser/gmoccapy_shell_smoke.html`:
|
||||
- 覆盖 `data-gmoccapy-hal="jog-inputs"` 和 `data-gmoccapy-hal="message-inputs"` 文本。
|
||||
- 通过公开 `window.webRtcp5AxisSimulation.dispatch({ type: "GMOCAPY_HAL_PIN", ... })` 验证浏览器内 jog-inc、axis jog press/release、turtle jog、delete-message、warning-confirm。
|
||||
- 在相关测试段显式 RESET 后重新 POWER 并切回 Manual,避免依赖前序状态。
|
||||
|
||||
工作文档更新:
|
||||
- 修改 `work/working5/04-任务矩阵.md`:新增并完成 W5-190。
|
||||
- 修改 `work/working5/03-推进台账.md`:追加 2026-06-27 R6 记录。
|
||||
- 修改 `work/working5/05-验收证据.md`:新增 EV-W5-190、EV-W5-191 和 R6 命令/断言摘要。
|
||||
- 修改 `work/working5/06-决策记录.md`:新增 DR-W5-006,记录 jog/message HAL pin 按 gmoccapy 回调边界建模的原因和影响。
|
||||
|
||||
验证命令与结果:
|
||||
- 最小模型/通信测试:
|
||||
- 命令:`cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app && node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs`
|
||||
- 结果:通过,输出 `gmoccapy_hal_model_smoke=ok`、`gmoccapy_communication_model_smoke=ok`。
|
||||
- profile/store 行为测试:
|
||||
- 命令:`cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app && node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs`
|
||||
- 结果:通过,输出 `gmoccapy_xyzab_profile_smoke=ok`、`gmoccapy_xyzab_gates_smoke=ok`。
|
||||
- 浏览器 shell smoke:
|
||||
- 命令:`cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app && bash ../tests/browser/verify_gmoccapy_shell_browser.sh`
|
||||
- 结果:通过,输出 `gmoccapy_shell_smoke=ok`。
|
||||
- 完整 Node smoke:
|
||||
- 命令:`cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app && npm run smoke:node`
|
||||
- 结果:通过,关键输出包含 `gmoccapy_xyzab_profile_smoke=ok`、`gmoccapy_communication_model_smoke=ok`、`gmoccapy_hal_model_smoke=ok`、`gmoccapy_xyzab_gates_smoke=ok`、`linear_unit_conversion_smoke=ok`。
|
||||
- 构建和浏览器/dist smoke:
|
||||
- 命令:`cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app && npm run build && npm run smoke`
|
||||
- 结果:通过,输出 `gmoccapy_static_build=ok`、`gmoccapy_shell_smoke=ok`、`gmoccapy_dist_smoke=ok`。
|
||||
- 空白检查:
|
||||
- 命令:`git diff --check -- web-rtcp-5axis-sim-plan work/working5`
|
||||
- 结果:通过,无输出。
|
||||
|
||||
工作树备注:
|
||||
- 本轮直接修改的实现/测试文件:
|
||||
- `web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-communication-model.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/state/store.js`
|
||||
- `web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js`
|
||||
- `web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs`
|
||||
- `web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs`
|
||||
- 本轮更新的 working5 文档:
|
||||
- `work/working5/03-推进台账.md`
|
||||
- `work/working5/04-任务矩阵.md`
|
||||
- `work/working5/05-验收证据.md`
|
||||
- `work/working5/06-决策记录.md`
|
||||
- 工作树中仍有此前存在或其他轮次留下的改动,例如 `AGENTS.md`、`linuxcnc.zip` 删除、`web-rtcp-5axis-sim-plan/app/src/styles/gmoccapy.css`、`verify_profile_boundary.mjs`、`备忘/备忘3.txt` 等;本轮没有回退这些改动。
|
||||
|
||||
结果:
|
||||
- W5-190 已完成。
|
||||
- Web 项目现在能按 gmoccapy 源码语义模拟 jog axis、jog increment、turtle jog、delete-message 和 warning-confirm HAL input pins。
|
||||
- 新增行为已在 profile、HAL model、communication model、store、UI 和 Node/browser 测试中形成可追踪证据。
|
||||
- 没有执行 commit 或 push。
|
||||
|
||||
Reference in New Issue
Block a user