完善五轴 RTCP 仿真与验证资料
This commit is contained in:
@@ -186,7 +186,7 @@ plannerRuntimeReady=false
|
||||
fullLinuxCncProgramExecutionReady=false
|
||||
```
|
||||
|
||||
这只提升普通 G-code canonical execution source,不代表 Python remap、tool DB、external user-M process 或完整 planner 已 promoted。
|
||||
这只提升普通 G-code canonical execution source,不代表任意 Python remap、host tool DB process、host external user-M process 或完整 planner 已 promoted。`tool.tbl` 读取/编辑/保存使用 Web/WASM tool DB 仿真边界:按 LinuxCNC `CANON_TOOL_TABLE` 字段、非随机刀库内部 `idx` 与真实 `pocketno`、spindle pocket `idx=0`、`Tn/M6/G43/M61` 和 `read_tool_inputs()` 语义运行;白名单 user-M 行为同样只能在 `web_simulation_only` 边界内声明 ready。
|
||||
|
||||
### Step 3:gmoccapy UI 组件
|
||||
|
||||
@@ -493,7 +493,8 @@ readiness
|
||||
HAL runtime、HAL sync 和 task/HAL comparison artifact 都通过时,才允许在 Web
|
||||
simulation boundary 内标记 `nativeTaskReady=true`、`nativeHalSyncReady=true` 和
|
||||
`fullLinuxCncProgramExecutionReady=true`。该提升仍不代表 hardware drive、host realtime
|
||||
kernel、external user-M process 或 tool DB process ready。
|
||||
kernel、host external user-M process 或 host tool DB process ready;受控 user-M 和
|
||||
tool DB 只能以 `web_simulation_only` 进入 full boundary。
|
||||
|
||||
当前边界:
|
||||
|
||||
@@ -507,7 +508,11 @@ nativeHalSyncReady=true for Web simulation boundary
|
||||
fullLinuxCncProgramExecutionReady=true when machine-file remap and task/HAL gates also pass
|
||||
hardwareDrive=false
|
||||
hostRealtimeKernel=false
|
||||
externalUserMProcessReady=false
|
||||
externalUserMProcessReady=true for web_simulation_only
|
||||
toolDbProcessReady=true for web_simulation_only
|
||||
hostExternalUserMProcessReady=false
|
||||
hostToolDbProcessReady=false
|
||||
arbitraryUserMExecution=false
|
||||
```
|
||||
|
||||
### Step 10:Native task/HAL readiness artifact
|
||||
@@ -539,6 +544,8 @@ nativeHostAndHardware.hardwareDrive=false
|
||||
nativeHostAndHardware.hostRealtimeKernel=false
|
||||
nativeHostAndHardware.externalUserMProcessReady=false
|
||||
nativeHostAndHardware.toolDbProcessReady=false
|
||||
toolUserWebSimulation.externalUserMProcessReady=true
|
||||
toolUserWebSimulation.toolDbProcessReady=true
|
||||
gates.promotion_scope=web_simulation_only
|
||||
```
|
||||
|
||||
@@ -550,8 +557,10 @@ task_hal_web_simulation_boundary_consistent=1
|
||||
native_task_hal_host_probe_status=passed_or_ready_disabled_by_default_or_skipped_missing_host_runtime
|
||||
hardware_drive=0
|
||||
host_realtime_kernel=0
|
||||
external_user_m_process_ready=0
|
||||
tool_db_process_ready=0
|
||||
external_user_m_process_ready=1
|
||||
tool_db_process_ready=1
|
||||
host_external_user_m_process_ready=0
|
||||
host_tool_db_process_ready=0
|
||||
promotion_scope=web_simulation_only
|
||||
```
|
||||
|
||||
@@ -612,20 +621,23 @@ real_linuxcnc_5axis_program_cases_smoke=ok
|
||||
- 不在 JavaScript 中实现 G-code 解释器。
|
||||
- 不在 JavaScript 中实现 LinuxCNC 五轴运动学公式作为最终语义源。
|
||||
- 不把 gmoccapy Python/GTK runtime 移植进浏览器。
|
||||
- 不把 Python remap/tool DB/external user-M process 伪装成已支持。
|
||||
- 不把任意 Python remap、host tool DB process、host external user-M process 伪装成已支持;只允许 staged `tool.tbl` 和白名单 user-M 在 Web/WASM 仿真边界内声明 ready。
|
||||
- 不用 UI fixture 结果冒充 LinuxCNC runtime proof。
|
||||
- 用于 5 轴 machine-file backed run 的 G-code 必须来自 LinuxCNC 源程序目录
|
||||
`configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/*.ngc`;
|
||||
- 用于 5 轴 machine-file backed run 的 G-code 必须来自当前 profile 对应的 LinuxCNC 源程序目录:
|
||||
`configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/*.ngc` 或
|
||||
`configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/*.ngc`;
|
||||
用户上传或手写的 G-code 只能作为 operator file/普通 interpreter 输入,不得标记为
|
||||
`linuxcnc-vendored-5axis-gcode` 或用于 5 轴源程序边界证明。
|
||||
|
||||
## 6. 开工建议
|
||||
|
||||
当前已完成 Step 1 到 Step 9 的 Node/browser LinuxCNC kinematics proof、浏览器 Worker kinematics 隔离、浏览器 Worker interpreter canonical execution source、`xyzac-trt`/`xyzbc-trt` profile 切换、OPFS 五轴会话保存/恢复、OPFS machine-file staging、machine-file backed `fiveAxisRemap` C ABI run、程序级 `M428/M429` switchkins RTCP 自动切换、LinuxCNC TP queue timing runtime、full execution boundary audit,以及真实 LinuxCNC TRT 5 轴 `.ngc` 源程序 staging/选择/运行路径。native task/HAL 执行文档的 Phase 0-8 已建立 Web simulation boundary:source manifest、默认禁用的 native TRT probe、HAL registry/thread scheduler、minimal motion/HAL servo-cycle C ABI、`lctask_*` task shim、SDK wrapper、machine-file session、store/UI diagnostics 和 full boundary gate。`M428/M429/M430` 当前既可作为 Web runtime switchkins 事件驱动 `lckins_switch()`,也可在 staged machine-file run 中交给 vendored LinuxCNC five-axis remap C ABI 验证,还可通过 task/HAL runtime 的 MDI path 写入 `motion.switchkins-type` HAL snapshot;只有 LinuxCNC source manifest 中的 `configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/*.ngc` 可作为 `linuxcnc-vendored-5axis-gcode` 进入 UI 和 machine-file run。`web-rtcp-5axis-full-linuxcnc-execution-boundary` 可以在 kinematics/interpreter/machine-file-remap/TP/task-HAL gates 同时通过时报告 `promotionAllowed=true`,但该提升仅限 Web simulation boundary,仍必须显示 `hardwareDrive=false`、`hostRealtimeKernel=false`、`externalUserMProcessReady=false` 和 `toolDbProcessReady=false`。
|
||||
当前已完成 Step 1 到 Step 10 的 Node/browser LinuxCNC kinematics proof、浏览器 Worker kinematics 隔离、浏览器 Worker interpreter canonical execution source、`xyzac-trt`/`xyzbc-trt`/`gmoccapy-xyzac-trt` profile 切换、OPFS 五轴会话保存/恢复、OPFS machine-file staging、machine-file backed `fiveAxisRemap` C ABI run、程序级 `M428/M429` switchkins RTCP 自动切换、LinuxCNC TP queue timing runtime、full execution boundary audit、受控 tool DB/user-M Web 仿真,以及真实 LinuxCNC TRT 5 轴 `.ngc` 源程序 staging/选择/运行路径。native task/HAL 执行文档的 Phase 0-8 已建立 Web simulation boundary:source manifest、默认禁用的 native TRT probe、HAL registry/thread scheduler、minimal motion/HAL servo-cycle C ABI、`lctask_*` task shim、SDK wrapper、machine-file session、store/UI diagnostics 和 full boundary gate。`M428/M429/M430` 当前既可作为 Web runtime switchkins 事件驱动 `lckins_switch()`,也可在 staged machine-file run 中交给 vendored LinuxCNC five-axis remap C ABI 验证,还可通过受控 user-M Web 仿真输出可追溯 HAL/state patch。staged `tool.tbl` 当前可被 Web tool DB 读取、编辑、保存到 OPFS/memory fallback,并按 LinuxCNC `CANON_TOOL_TABLE`、非随机刀库 `idx/pocketno`、spindle pocket `idx=0`、`Tn/M6/G43/M61`、`read_tool_inputs()` 和 #5400/#5401-#5413 语义更新仿真状态;store/browser API 暴露 `queryToolDb()`、`editToolDb()`、`saveToolDb()` 供查询、编辑和保存。只有 LinuxCNC source manifest 中当前 profile 对应的 `configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/*.ngc` 或 `configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/*.ngc` 可作为 `linuxcnc-vendored-5axis-gcode` 进入 UI 和 machine-file run。`web-rtcp-5axis-full-linuxcnc-execution-boundary` 可以在 kinematics/interpreter/machine-file-remap/TP/task-HAL/tool-DB/user-M gates 同时通过时报告 `promotionAllowed=true`,但该提升仅限 Web simulation boundary,仍必须显示 `hardwareDrive=false`、`hostRealtimeKernel=false`、`hostExternalUserMProcessReady=false`、`hostToolDbProcessReady=false` 和 `arbitraryUserMExecution=false`。
|
||||
|
||||
M24 已把 LinuxCNC kinematics runtime Node direct proof 从 `xyzac-trt` 扩展到 `xyzbc-trt`,并以 `switchkinsType=1` 验证两个 TRT WASM 模块的正解/逆解闭环。`rtcpFrame.tcpPose` 和 Three.js `data-three-tcp-pose` 现在同时输出 `a/b/c`,其中 XYZBC 的 B 轴姿态可被 store smoke 和浏览器诊断链路追溯,不再只依赖 C 轴或默认 A 轴字段。
|
||||
|
||||
OPFS session 和 machine-file staging 当前具备 capability 检测。安全上下文且 `navigator.storage.getDirectory()` 可用时使用 OPFS;公网 HTTP/IP 或浏览器禁用 OPFS 时切换到 memory fallback。memory fallback 只保证当前页面生命周期内的保存、恢复、staging 和 full boundary audit 可继续运行,不声明跨刷新持久化。UI diagnostics 必须显示 storage mode、OPFS unavailable 状态和原因,公共 HTTP smoke 必须验证无 uncaught exception,且不依赖 OPFS 的预览、DRO、G-code 加载、运行和 Three.js 显示继续通过。
|
||||
|
||||
gmoccapy info tabs 当前还必须显示 Host/native boundary:`hardwareDrive=false`、`hostRealtimeKernel=false`、`externalUserMProcessReady=false`、`toolDbProcessReady=false`。browser smoke 需要同时检查 DOM 和 `fullExecutionBoundary` state,避免把 Web simulation promoted 误读为 host-native 或硬件能力 ready。
|
||||
gmoccapy info tabs 当前还必须显示 Host/native boundary:`hardwareDrive=false`、`hostRealtimeKernel=false`、`externalUserMProcessReady=true for web_simulation_only`、`toolDbProcessReady=true for web_simulation_only`、`hostExternalUserMProcessReady=false`、`hostToolDbProcessReady=false`、`arbitraryUserMExecution=false`。browser smoke 需要同时检查 DOM 和 `fullExecutionBoundary` state,避免把 Web simulation promoted 误读为 host-native 或硬件能力 ready。
|
||||
|
||||
注意:`wasm-port/tests/wasm/node/verify_hal_runtime.sh`、`wasm-port/tests/wasm/node/verify_motion_hal_sync.sh`、`wasm-port/tests/wasm/node/verify_task_hal_wasm.sh` 和 `wasm-port/tests/wasm/node/verify_task_hal_sdk.sh` 会写同一个 `build/wasm/task-hal/linuxcnc_task_hal.*` 输出,验证时应串行运行,避免并发构建竞争造成无效 WASM 产物。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user