完善五轴 RTCP 仿真与验证资料

This commit is contained in:
2026-07-01 21:49:58 -04:00
parent ac4e855b2b
commit d0d58998ac
159 changed files with 6771594 additions and 339 deletions

View File

@@ -140,12 +140,12 @@ src/emc/kinematics/kins_util.c
| RTCP frame UI plumbing | implemented_fixture_and_kinematics_wasm | fixture fallback 仍为 `linuxCncKinematicsReady=false`browser/node kinematics proof 为 `source-derived-kinematics-wasm` / `linuxcnc_kinematics_wasm_c_abi` |
| Operator workflow | implemented_linuxcnc_task_policy_with_canonical_motion | 上电/急停/复位/模式/JOG/MDI/RUN/PAUSE/RESUME/STOP/HOME 通过 `linuxcnc_task_state_mode_command_gate`;普通程序执行来自 LinuxCNC canonical motion |
| LinuxCNC boundary adapter | kinematics_and_interpreter_connected | `web-rtcp-5axis-linuxcnc-boundary-adapter` 可区分 kinematics-only ready 与 interpreter/remap missing |
| Full execution boundary audit | implemented_task_motion_hal_simulation_runtime | `web-rtcp-5axis-full-linuxcnc-execution-boundary` 汇总 kinematics/interpreter/machine-file-remap/TP/task-HAL evidenceWeb simulation boundary 可提升,仍明确 `hardwareDrive=false``hostRealtimeKernel=false``externalUserMProcessReady=false``toolDbProcessReady=false` |
| Full execution boundary audit | implemented_task_motion_hal_simulation_runtime | `web-rtcp-5axis-full-linuxcnc-execution-boundary` 汇总 kinematics/interpreter/machine-file-remap/TP/task-HAL/tool-DB/user-M evidenceWeb simulation boundary 可提升,仍明确 `hardwareDrive=false``hostRealtimeKernel=false``hostExternalUserMProcessReady=false``hostToolDbProcessReady=false``arbitraryUserMExecution=false` |
| PyVCP/HAL panel schema | implemented_reference_only | `xyzac-trt-switchkins-pyvcp` 已整理 SWITCHKINS 控件与 HAL nets不执行 native HAL |
| Python GUI runtime | not_ported | 只参考,不运行 |
| Python remap runtime | blocked | 不在第一版实现 |
| tool DB runtime | blocked | 不在第一版实现 |
| external user-M process | blocked | 不在第一版实现 |
| tool DB runtime | web_simulation_only | 读取 staged `tool.tbl`,支持查询/编辑/保存刀具号、刀长、刀径、刀袋,并接入 `Tn/M6/G43/M61` 仿真状态host tool DB process 仍为 false |
| external user-M process | controlled_web_simulation_only | 只允许白名单 `M128/M129/M428/M429/M430` 输出 HAL/state 事件;任意 host user-M 脚本和系统进程执行仍为 false |
| native hard realtime | out_of_scope | Web 仿真不实现 |
## 5. 每批开发追溯记录模板
@@ -1456,5 +1456,216 @@ Remaining risk:
realtime kernel, hardware IO, external user-M process, or native tool DB
process support.
Next:
none_from_development_continuation
M23 adds controlled tool DB and user-M Web simulation while keeping host
external process readiness false.
```
## 26. M23 受控 tool DB / user-M Web 仿真追溯记录
```text
Batch: M23-controlled-tool-db-user-m-web-simulation
Date: 2026-07-01 CST
Files changed:
app/src/runtime/tool-db-simulation.js
app/src/runtime/controlled-user-m-simulation.js
app/src/runtime/full-execution-boundary.js
app/src/runtime/native-task-hal-audit.js
app/src/state/store.js
app/src/main.js
app/src/ui/gmoccapy-shell.js
app/package.json
tests/node/verify_tool_db_web_simulation.mjs
tests/node/verify_tool_db_user_m_simulation.mjs
tests/node/verify_full_execution_boundary.mjs
tests/node/verify_machine_file_staging.mjs
tests/node/verify_native_task_hal_audit.mjs
tests/browser/gmoccapy_shell_smoke.html
Feature:
Implements the previously excluded red-box external user-M/tool DB capability
as a controlled Web/WASM simulation boundary. The runtime reads staged
LinuxCNC tool tables, models CANON_TOOL_TABLE fields, preserves LinuxCNC
non-random changer idx versus pocketno semantics, keeps idx=0 as the spindle
pocket, simulates tool prepare/load/read_tool_inputs/offset state, saves edits
through OPFS or memory fallback, and converts whitelisted user-M/remap actions
into traceable HAL/state events without executing arbitrary host scripts.
LinuxCNC references:
linuxcnc/src/emc/task/taskclass.cc:281
linuxcnc/src/emc/task/taskclass.cc:425
linuxcnc/src/emc/task/taskclass.cc:482
linuxcnc/src/emc/task/taskclass.cc:527
linuxcnc/src/emc/task/taskclass.cc:572
linuxcnc/src/emc/task/taskclass.cc:614
linuxcnc/src/emc/task/taskclass.hh
linuxcnc/src/emc/tooldata/tooldata_common.cc:70
linuxcnc/src/emc/tooldata/tooldata_common.cc:365
linuxcnc/src/emc/nml_intf/emctool.h:29
linuxcnc/src/emc/nml_intf/emc.hh
linuxcnc/src/emc/rs274ngc/interp_convert.cc:6236
linuxcnc/src/emc/rs274ngc/interp_find.cc:716
linuxcnc/src/emc/task/emctask.cc
linuxcnc/src/emc/task/emccanon.cc
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc
Boundary:
toolDbProcessReady=true for web_simulation_only
externalUserMProcessReady=true for web_simulation_only
toolDbProcessScope=web_simulation_only
externalUserMProcessScope=web_simulation_only
hostToolDbProcessReady=false
hostExternalUserMProcessReady=false
arbitraryUserMExecution=false
hostProcessExecution=false
Tests:
node web-rtcp-5axis-sim-plan/tests/node/verify_tool_db_web_simulation.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_tool_db_user_m_simulation.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_full_execution_boundary.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_machine_file_staging.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_native_task_hal_audit.mjs
Result:
tool_db_web_simulation_smoke=ok
staged_tool_tbl_loaded=1
tool_db_query_edit_save=1
tool_db_t_m6_g43_state=1
tool_db_memory_fallback_save=1
host_tool_db_process=0
tool_db_user_m_simulation_smoke=ok
tool_db_process_ready_web_simulation_only=1
external_user_m_process_ready_web_simulation_only=1
arbitrary_user_m_blocked=1
host_process_execution=0
Remaining risk:
This does not implement LinuxCNC DB_PROGRAM, random changer semantics, native
host tool DB services, arbitrary user-M script execution, or hardware IO.
Next:
Keep whitelist entries and tool-table fields traceable to staged LinuxCNC
source assets when new machine profiles are added.
```
## 27. M24 XYZBC TRT kinematics parity proof 追溯记录
```text
Batch: M24-xyzbc-trt-kinematics-parity
Date: 2026-07-01 CST
Files changed:
app/src/runtime/rtcp-frame.js
app/src/visualization/five-axis-scene.js
tests/node/verify_linuxcnc_kinematics_runtime.mjs
tests/node/verify_rtcp_store.mjs
docs/development-continuation.md
docs/linuxcnc-parity-matrix.md
docs/program-implementation-guide.md
Feature:
Completes the next five-axis parity step for the XYZBC table rotary tilting
profile. The Web RTCP frame now preserves B in tcpPose for both fixture and
LinuxCNC kinematics frames, the Three.js diagnostic dataset exposes the same
B-axis TCP pose, and the runtime smoke proves both XYZAC and XYZBC TRT WASM
modules in switchkins TCP mode.
LinuxCNC references:
linuxcnc/src/emc/kinematics/xyzac-trt-kins.c
linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c
linuxcnc/src/emc/kinematics/trtfuncs.c
linuxcnc/src/emc/kinematics/switchkins.c
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini
Boundary:
semanticBoundary=linuxcnc_kinematics_wasm_c_abi
scope=node_direct_web_runtime_proof
hardwareDrive=false
hostRealtimeKernel=false
Tests:
node --check app/src/runtime/rtcp-frame.js
node --check app/src/visualization/five-axis-scene.js
node tests/node/verify_linuxcnc_kinematics_runtime.mjs
node tests/node/verify_rtcp_store.mjs
Result:
xyzac_trt_kinematics_runtime=ok
xyzbc_trt_kinematics_runtime=ok
linuxcnc_kinematics_runtime_smoke=ok
xyzbc_b_axis_tcp_pose_preserved=1
rtcp_store_smoke=ok
Remaining risk:
This is still browser/Web runtime parity. It does not promote hardware IO,
host realtime kernel execution, or native LinuxCNC task/HAL processes.
Next:
Keep XYZBC browser smoke evidence aligned with B-axis tcpPose when expanding
UI diagnostics or adding additional TRT machine profiles.
```
## 28. M25 gmoccapy XYZAC TRT RTCP 页面对标追溯记录
```text
Batch: M25-gmoccapy-xyzac-trt-rtcp-parity
Date: 2026-07-01 CST
Files changed:
app/src/profiles/gmoccapy-xyzac-trt.js
app/src/profiles/index.js
app/src/profiles/source-reference-map.js
app/src/profiles/xyzac-trt.js
app/src/runtime/linuxcnc-machine-file-staging.js
app/src/runtime/linuxcnc-ini-runtime.js
app/src/state/store.js
app/src/main.js
app/scripts/build-static.mjs
app/package.json
tests/node/verify_gmoccapy_xyzac_trt_parity.mjs
tests/browser/gmoccapy_shell_smoke.html
docs/gmoccapy-xyzac-trt-rtcp-verification-evaluation.md
docs/linuxcnc-parity-matrix.md
docs/program-implementation-guide.md
docs/development-continuation.md
wasm-port/tools/source-manifest.txt
wasm-port/vendor/linuxcnc/configs/sim/gmoccapy/...
Feature:
Adds a gmoccapy-specific XYZAC table-rotary-tilting profile that maps the
LinuxCNC gmoccapy non-trivial kinematics sample into the Web page. The profile
preserves DISPLAY=gmoccapy, OPEN_FILE examples/impeller-7bl-xyzac.ngc,
JOG_AXES=XYZC, M6/M61 gmoccapy remaps, POSTGUI tool/spindle HAL pins, gmoccapy
macros, tool table, and fixed TRT default TCP semantics.
LinuxCNC references:
linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini
linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal
linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl
linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt_cmds.hal
linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/*.ngc
linuxcnc/configs/sim/gmoccapy/macros/change_g43.ngc
linuxcnc/configs/sim/gmoccapy/macros/settool_g43.ngc
linuxcnc/src/emc/kinematics/xyzac-trt-kins.c
linuxcnc/src/emc/kinematics/trtfuncs.c
linuxcnc/src/emc/kinematics/switchkins.c
Boundary:
profileId=gmoccapy-xyzac-trt
semanticBoundary=linuxcnc_gmoccapy_nontrivial_xyzac_trt_profile_source_map
fixedTrtDefault=true
defaultKinsType=tcp-xyzac
rtcpState=on
sourceGuard=profile_specific_linuxcnc_gmoccapy_examples_only
hardwareDrive=false
hostRealtimeKernel=false
nativeGtkGmoccapy=false
Tests:
node tests/node/verify_gmoccapy_xyzac_trt_parity.mjs
node tests/node/verify_machine_file_staging.mjs
node tests/node/verify_linuxcnc_ini_runtime.mjs
node tests/node/verify_linuxcnc_parity_matrix.mjs
npm --prefix app run smoke:node
npm --prefix app run smoke
npm --prefix app run build
Result:
gmoccapy_xyzac_trt_parity_smoke=ok
machine_file_staging_smoke=ok
linuxcnc_ini_runtime_smoke=ok
linuxcnc_parity_matrix_smoke=ok
gmoccapy_shell_smoke=ok
gmoccapy_dist_smoke=ok
gmoccapy_static_build=ok
Remaining risk:
This proves the Web page and Web/WASM simulation boundary. It does not port
native GTK gmoccapy, host HAL shared memory, hardware IO, host realtime kernel,
arbitrary host user-M scripts, or native host tool DB processes.
Next:
If native gmoccapy or host realtime capability is required, add a separate
host/native validation layer rather than promoting this Web simulation proof.
```