完善五轴 RTCP 仿真与验证资料
This commit is contained in:
@@ -8,6 +8,8 @@ assert.equal(blocked.phase, "blocked");
|
||||
assert.equal(blocked.promotionAllowed, false);
|
||||
assert.equal(blocked.fullLinuxCncProgramExecutionReady, false);
|
||||
assert.equal(blocked.missing.includes("linuxcnc kinematics WASM frame"), true);
|
||||
assert.equal(blocked.missing.includes("tool DB Web/WASM simulation process"), true);
|
||||
assert.equal(blocked.missing.includes("controlled user-M Web/WASM simulation process"), true);
|
||||
assert.equal(blocked.blockers.some((blocker) => blocker.includes("LinuxCNC task runtime")), true);
|
||||
|
||||
const canonicalState = {
|
||||
@@ -105,6 +107,45 @@ assert.equal(remap.semanticBoundary, "linuxcnc_machine_file_remap_ready_planner_
|
||||
assert.equal(remap.satisfied.includes("fiveaxis-remap-machine-file-run"), true);
|
||||
assert.equal(remap.evidence.machineFileFlags.length, 3);
|
||||
|
||||
const gmoccapyMachineFile = createFullLinuxCncExecutionBoundary({
|
||||
...canonicalState,
|
||||
programExecution: {
|
||||
...canonicalState.programExecution,
|
||||
plannerTiming: {
|
||||
plannerRuntimeReady: true,
|
||||
semanticBoundary: "linuxcnc_tp_queue_runtime_timing_from_canonical_motion",
|
||||
},
|
||||
summary: {
|
||||
...canonicalState.programExecution.summary,
|
||||
plannerRuntimeReady: true,
|
||||
},
|
||||
},
|
||||
machineFileStaging: {
|
||||
status: "staged",
|
||||
fileCount: 18,
|
||||
},
|
||||
machineFileExecution: {
|
||||
sourceMode: "linuxcnc-machine-file-remap-wasm",
|
||||
summary: {
|
||||
machineFileExecutionReady: true,
|
||||
remapRuntimeReady: false,
|
||||
},
|
||||
resultText: [
|
||||
"fiveaxis_parse_remap_1=5",
|
||||
"fiveaxis_parse_remap_2=5",
|
||||
"fiveaxis_remaps_ready=0",
|
||||
"fiveaxis_file_reached_exit=1",
|
||||
"fiveaxis_linuxcnc_remap_file_execute=0",
|
||||
].join("\n"),
|
||||
},
|
||||
});
|
||||
|
||||
assert.equal(gmoccapyMachineFile.machineFileBackedRemapReady, true);
|
||||
assert.equal(gmoccapyMachineFile.remapRuntimeReady, false);
|
||||
assert.equal(gmoccapyMachineFile.semanticBoundary, "linuxcnc_machine_file_remap_ready_planner_task_hal_blocked");
|
||||
assert.equal(gmoccapyMachineFile.satisfied.includes("fiveaxis-remap-machine-file-run"), true);
|
||||
assert.equal(gmoccapyMachineFile.evidence.machineFileFlags.length, 1);
|
||||
|
||||
const taskHalPromoted = createFullLinuxCncExecutionBoundary({
|
||||
...canonicalState,
|
||||
programExecution: remap.programExecution || {
|
||||
@@ -153,6 +194,18 @@ const taskHalPromoted = createFullLinuxCncExecutionBoundary({
|
||||
halChangedPinCount: 4,
|
||||
},
|
||||
},
|
||||
toolDbReadiness: {
|
||||
toolDbProcessReady: true,
|
||||
toolDbProcessScope: "web_simulation_only",
|
||||
hostToolDbProcessReady: false,
|
||||
toolCount: 10,
|
||||
},
|
||||
controlledUserMReadiness: {
|
||||
externalUserMProcessReady: true,
|
||||
externalUserMProcessScope: "web_simulation_only",
|
||||
hostExternalUserMProcessReady: false,
|
||||
arbitraryUserMExecution: false,
|
||||
},
|
||||
});
|
||||
|
||||
assert.equal(taskHalPromoted.semanticBoundary, "linuxcnc_task_motion_hal_wasm_simulation_runtime");
|
||||
@@ -162,8 +215,15 @@ assert.equal(taskHalPromoted.fullLinuxCncProgramExecutionReady, true);
|
||||
assert.equal(taskHalPromoted.promotionAllowed, true);
|
||||
assert.equal(taskHalPromoted.hardwareDrive, false);
|
||||
assert.equal(taskHalPromoted.hostRealtimeKernel, false);
|
||||
assert.equal(taskHalPromoted.externalUserMProcessReady, false);
|
||||
assert.equal(taskHalPromoted.toolDbProcessReady, false);
|
||||
assert.equal(taskHalPromoted.externalUserMProcessReady, true);
|
||||
assert.equal(taskHalPromoted.externalUserMProcessScope, "web_simulation_only");
|
||||
assert.equal(taskHalPromoted.toolDbProcessReady, true);
|
||||
assert.equal(taskHalPromoted.toolDbProcessScope, "web_simulation_only");
|
||||
assert.equal(taskHalPromoted.hostExternalUserMProcessReady, false);
|
||||
assert.equal(taskHalPromoted.hostToolDbProcessReady, false);
|
||||
assert.equal(taskHalPromoted.arbitraryUserMExecution, false);
|
||||
assert.equal(taskHalPromoted.satisfied.includes("tool-db-web-simulation"), true);
|
||||
assert.equal(taskHalPromoted.satisfied.includes("controlled-user-m-web-simulation"), true);
|
||||
assert.equal(taskHalPromoted.evidence.taskCycle, 2);
|
||||
|
||||
console.log("full_execution_boundary_smoke=ok");
|
||||
|
||||
Reference in New Issue
Block a user