接入虚拟HAL宏加载非主程序证据
This commit is contained in:
@@ -148,6 +148,26 @@ const REQUIRED_PROMOTION_CANDIDATES = [
|
||||
},
|
||||
];
|
||||
|
||||
const REQUIRED_MACRO_LOAD_FIXTURES = [
|
||||
{
|
||||
id: "rose-engine-rcone-macro-load",
|
||||
fixturePath: "linuxcnc/configs/sim/axis/rose_engine/rcone.ngc",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini",
|
||||
"linuxcnc/configs/sim/axis/rose_engine/rcone.ngc",
|
||||
"linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "external-offsets-queuebuster-macro-load",
|
||||
fixturePath: "linuxcnc/configs/sim/axis/external_offsets/queuebuster.ngc",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini",
|
||||
"linuxcnc/configs/sim/axis/external_offsets/eoffsets.ngc",
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
function isVirtualHalSimConfigSourceCoverageReady(report) {
|
||||
const coverage = objectOrEmpty(report);
|
||||
return coverage.apiName === "linuxcnc-wasm-virtual-hal-sim-config-source-coverage-report" &&
|
||||
@@ -176,6 +196,29 @@ function hasRequiredPromotionCandidates(rows) {
|
||||
);
|
||||
}
|
||||
|
||||
function isVirtualHalSimConfigMacroLoadFixtureReportReady(report) {
|
||||
const fixtureReport = objectOrEmpty(report);
|
||||
const rows = arrayOrEmpty(fixtureReport.rows);
|
||||
return fixtureReport.apiName === "linuxcnc-wasm-virtual-hal-sim-config-macro-load-fixture-report" &&
|
||||
fixtureReport.complete === true &&
|
||||
fixtureReport.webSimulationSatisfied === true &&
|
||||
fixtureReport.inventoryBaselineUnchanged === true &&
|
||||
arrayOrEmpty(fixtureReport.missingFixtures).length === 0 &&
|
||||
arrayOrEmpty(fixtureReport.blockedFixtureIds).length === 0 &&
|
||||
arrayOrEmpty(fixtureReport.standaloneMainViolations).length === 0 &&
|
||||
arrayOrEmpty(fixtureReport.missingManifestFiles).length === 0 &&
|
||||
REQUIRED_MACRO_LOAD_FIXTURES.every((fixture) =>
|
||||
rows.some((row) =>
|
||||
row.id === fixture.id &&
|
||||
row.complete === true &&
|
||||
row.nonMainFixture === true &&
|
||||
row.targetBrowserEvidence === "non-main-fixture-diagnostics" &&
|
||||
row.fixturePath === fixture.fixturePath &&
|
||||
fixture.sourceFiles.every((file) => arrayOrEmpty(row.sourceFiles).includes(file))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
function isVirtualHalMotionControllerMatrixReady(report) {
|
||||
const matrix = objectOrEmpty(report);
|
||||
return matrix.apiName === "linuxcnc-wasm-virtual-hal-motion-controller-matrix-report" &&
|
||||
@@ -218,6 +261,7 @@ export function createProjectReleaseBrowserDiagnosticsArtifactValidation(artifac
|
||||
const commandScriptFixtures = objectOrEmpty(artifactObject.virtualHalCommandScriptFixtures);
|
||||
const motionControllerMatrix = objectOrEmpty(artifactObject.virtualHalMotionControllerMatrix);
|
||||
const promotionCandidates = objectOrEmpty(artifactObject.virtualHalSimConfigPromotionCandidates);
|
||||
const macroLoadFixtures = objectOrEmpty(artifactObject.virtualHalSimConfigMacroLoadFixtures);
|
||||
const sessionDiagnostics = objectOrEmpty(artifactObject.virtualHalSessionDiagnostics);
|
||||
const replacement = objectOrEmpty(artifactObject.virtualHalSimulationReplacement);
|
||||
const virtualHal = objectOrEmpty(artifactObject.virtualHal);
|
||||
@@ -234,6 +278,9 @@ export function createProjectReleaseBrowserDiagnosticsArtifactValidation(artifac
|
||||
const hasPromotionCandidates = artifactObject.virtualHalSimConfigPromotionCandidates !== undefined;
|
||||
const promotionCandidatesReady = !hasPromotionCandidates ||
|
||||
isVirtualHalSimConfigPromotionCandidateReportReady(promotionCandidates);
|
||||
const hasMacroLoadFixtures = artifactObject.virtualHalSimConfigMacroLoadFixtures !== undefined;
|
||||
const macroLoadFixturesReady = hasMacroLoadFixtures &&
|
||||
isVirtualHalSimConfigMacroLoadFixtureReportReady(macroLoadFixtures);
|
||||
const replacementReady = replacement.ready === true &&
|
||||
replacement.replacesHostRuntimeForSimulation === true &&
|
||||
objectOrEmpty(replacement.sourceCompliance).webSimulationSatisfied === true &&
|
||||
@@ -256,6 +303,7 @@ export function createProjectReleaseBrowserDiagnosticsArtifactValidation(artifac
|
||||
...(sourceComplianceReady ? [] : ["virtualHalSourceCompliance"]),
|
||||
...(simConfigSourceCoverageReady ? [] : ["virtualHalSimConfigSourceCoverage"]),
|
||||
...(promotionCandidatesReady ? [] : ["virtualHalSimConfigPromotionCandidates"]),
|
||||
...(macroLoadFixturesReady ? [] : ["virtualHalSimConfigMacroLoadFixtures"]),
|
||||
...(commandScriptFixturesReady ? [] : ["virtualHalCommandScriptFixtures"]),
|
||||
...(motionControllerMatrixReady ? [] : ["virtualHalMotionControllerMatrix"]),
|
||||
...(sessionDiagnosticsReady ? [] : ["virtualHalSessionDiagnostics"]),
|
||||
@@ -273,6 +321,8 @@ export function createProjectReleaseBrowserDiagnosticsArtifactValidation(artifac
|
||||
simConfigSourceCoverageReady,
|
||||
promotionCandidatesReady,
|
||||
hasPromotionCandidates,
|
||||
macroLoadFixturesReady,
|
||||
hasMacroLoadFixtures,
|
||||
commandScriptFixturesReady,
|
||||
motionControllerMatrixReady,
|
||||
sessionDiagnosticsReady,
|
||||
@@ -281,6 +331,7 @@ export function createProjectReleaseBrowserDiagnosticsArtifactValidation(artifac
|
||||
...arrayOrEmpty(sourceCompliance.sourceFiles),
|
||||
...arrayOrEmpty(simConfigSourceCoverage.sourceFiles),
|
||||
...arrayOrEmpty(promotionCandidates.sourceFiles),
|
||||
...arrayOrEmpty(macroLoadFixtures.sourceFiles),
|
||||
...arrayOrEmpty(commandScriptFixtures.sourceFiles),
|
||||
...arrayOrEmpty(motionControllerMatrix.sourceFiles),
|
||||
...arrayOrEmpty(motionControllerMatrix.simConfigSourceFiles),
|
||||
@@ -311,6 +362,11 @@ export function createProjectReleaseBrowserDiagnosticsArtifactValidation(artifac
|
||||
label: "Virtual HAL sim-config promotion candidates",
|
||||
value: hasPromotionCandidates ? (promotionCandidatesReady ? "ready" : "missing") : "not provided",
|
||||
},
|
||||
{
|
||||
id: "sim-config-macro-load-fixtures",
|
||||
label: "Virtual HAL sim-config macro/load fixtures",
|
||||
value: hasMacroLoadFixtures ? (macroLoadFixturesReady ? "ready" : "missing") : "not provided",
|
||||
},
|
||||
{
|
||||
id: "command-script-fixtures",
|
||||
label: "Virtual HAL command script fixtures",
|
||||
|
||||
Reference in New Issue
Block a user