接入 INI 面板只读 session readiness handoff
This commit is contained in:
@@ -5,6 +5,7 @@ export function createControlPageSessionLoadState({
|
||||
controlViewReady = false,
|
||||
stateBundle = null,
|
||||
workflowStatus = null,
|
||||
sessionReadiness = null,
|
||||
controlView = null,
|
||||
error = null,
|
||||
} = {}) {
|
||||
@@ -15,11 +16,19 @@ export function createControlPageSessionLoadState({
|
||||
controlViewReady,
|
||||
stateBundle,
|
||||
workflowStatus,
|
||||
sessionReadiness,
|
||||
controlView,
|
||||
error,
|
||||
};
|
||||
}
|
||||
|
||||
function getSessionReadiness(stateBundle, workflowStatus) {
|
||||
return workflowStatus?.sessionReadiness
|
||||
?? stateBundle?.workflowStatus?.sessionReadiness
|
||||
?? stateBundle?.report?.sessionReadiness
|
||||
?? null;
|
||||
}
|
||||
|
||||
export function loadMachineSessionForControlPageWorkflow({
|
||||
getPanelWindow,
|
||||
getPanelApi,
|
||||
@@ -63,22 +72,28 @@ export function loadMachineSessionForControlPageWorkflow({
|
||||
}
|
||||
|
||||
if (!controlView) {
|
||||
const stateBundle = panelApi.getMachineSessionStateBundle?.() ?? null;
|
||||
const workflowStatus = panelApi.getMachineSessionWorkflowStatus?.() ?? null;
|
||||
return createControlPageSessionLoadState({
|
||||
phase: "waiting-session",
|
||||
panelReady: true,
|
||||
apiReady: true,
|
||||
stateBundle: panelApi.getMachineSessionStateBundle?.() ?? null,
|
||||
workflowStatus: panelApi.getMachineSessionWorkflowStatus?.() ?? null,
|
||||
stateBundle,
|
||||
workflowStatus,
|
||||
sessionReadiness: getSessionReadiness(stateBundle, workflowStatus),
|
||||
});
|
||||
}
|
||||
|
||||
const stateBundle = panelApi.getMachineSessionStateBundle?.() ?? null;
|
||||
const workflowStatus = panelApi.getMachineSessionWorkflowStatus?.() ?? null;
|
||||
return createControlPageSessionLoadState({
|
||||
phase: "ready",
|
||||
panelReady: true,
|
||||
apiReady: true,
|
||||
controlViewReady: true,
|
||||
stateBundle: panelApi.getMachineSessionStateBundle?.() ?? null,
|
||||
workflowStatus: panelApi.getMachineSessionWorkflowStatus?.() ?? null,
|
||||
stateBundle,
|
||||
workflowStatus,
|
||||
sessionReadiness: getSessionReadiness(stateBundle, workflowStatus),
|
||||
controlView,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ export function createIniPanelStateSummary({
|
||||
machine = null,
|
||||
machineFiles = null,
|
||||
sessionSnapshot = null,
|
||||
sessionReadiness = null,
|
||||
sessionLoad = null,
|
||||
runReadiness = null,
|
||||
run = null,
|
||||
@@ -17,6 +18,7 @@ export function createIniPanelStateSummary({
|
||||
machine,
|
||||
machineFiles,
|
||||
sessionSnapshot,
|
||||
sessionReadiness,
|
||||
sessionLoad,
|
||||
runReadiness,
|
||||
run,
|
||||
@@ -29,6 +31,7 @@ export function createMachineSessionStateSnapshot({
|
||||
machine = null,
|
||||
machineFiles = null,
|
||||
sessionSnapshot = null,
|
||||
sessionReadiness = null,
|
||||
sessionLoad = null,
|
||||
runReadiness = null,
|
||||
selectedProgram = null,
|
||||
@@ -44,6 +47,7 @@ export function createMachineSessionStateSnapshot({
|
||||
machine,
|
||||
machineFiles,
|
||||
sessionSnapshot,
|
||||
sessionReadiness,
|
||||
sessionLoad,
|
||||
runReadiness,
|
||||
run,
|
||||
@@ -72,6 +76,7 @@ export function createMachineSessionStateReport(state = {}) {
|
||||
const badges = state.badges ?? {};
|
||||
const fields = state.fields ?? {};
|
||||
const sessionSnapshot = state.sessionSnapshot ?? {};
|
||||
const sessionReadiness = state.sessionReadiness ?? null;
|
||||
const sessionLoad = state.sessionLoad ?? {};
|
||||
const runReadiness = state.runReadiness ?? {};
|
||||
const selectedProgram = state.selectedProgram ?? {};
|
||||
@@ -90,6 +95,7 @@ export function createMachineSessionStateReport(state = {}) {
|
||||
toolTable: fields.sessionToolTable ?? sessionSnapshot.toolTableOpfsPath ?? sessionLoad.toolTableWasmPath ?? null,
|
||||
gcode: fields.sessionGcode ?? sessionSnapshot.gcodeOpfsPath ?? null,
|
||||
},
|
||||
sessionReadiness,
|
||||
loaded: {
|
||||
iniWasmPath: sessionLoad.iniWasmPath ?? null,
|
||||
parameterWasmPath: sessionLoad.parameterWasmPath ?? null,
|
||||
@@ -141,6 +147,7 @@ export function createMachineSessionWorkflowStatus(state = {}) {
|
||||
return {
|
||||
readiness: report.readiness,
|
||||
overview,
|
||||
sessionReadiness: report.sessionReadiness ?? null,
|
||||
runReadiness: report.runReadiness,
|
||||
lastAction: report.status.lastAction,
|
||||
error: report.status.error,
|
||||
|
||||
@@ -4,12 +4,17 @@ export function createMachineSessionReadonlyStatus({
|
||||
controlView = null,
|
||||
} = {}) {
|
||||
const overview = stateBundle?.overview ?? workflowStatus?.overview ?? null;
|
||||
const sessionReadiness = workflowStatus?.sessionReadiness
|
||||
?? stateBundle?.workflowStatus?.sessionReadiness
|
||||
?? stateBundle?.report?.sessionReadiness
|
||||
?? null;
|
||||
return {
|
||||
stateBundle,
|
||||
workflowStatus,
|
||||
overview,
|
||||
controlView,
|
||||
report: stateBundle?.report ?? null,
|
||||
sessionReadiness,
|
||||
runReadiness: workflowStatus?.runReadiness ?? stateBundle?.report?.runReadiness ?? null,
|
||||
run: workflowStatus?.run ?? stateBundle?.report?.run ?? null,
|
||||
session: workflowStatus?.session ?? stateBundle?.report?.session ?? null,
|
||||
@@ -42,6 +47,7 @@ export function createMachineSessionReadonlyStatusApiManifest() {
|
||||
"overview",
|
||||
"controlView",
|
||||
"report",
|
||||
"sessionReadiness",
|
||||
"runReadiness",
|
||||
"run",
|
||||
"session",
|
||||
|
||||
Reference in New Issue
Block a user