完善五轴 RTCP 仿真与验证资料
This commit is contained in:
@@ -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 evidence;Web 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 evidence;Web 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.
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user