Implement configuration, runtime, frontend, and task governance closure
This commit is contained in:
10
web/app/device-panel.mjs
Normal file
10
web/app/device-panel.mjs
Normal file
@@ -0,0 +1,10 @@
|
||||
export function renderDevicePanel(document, { controller, snapshot = {} } = {}) {
|
||||
const section = document.createElement("section"); section.className = "panel device-panel";
|
||||
const title = document.createElement("h2"); title.className = "panel-title"; title.textContent = "Devices and faults"; section.append(title);
|
||||
const controls = [["Spindle start", "SPINDLE_COMMAND", { spindle: 0, rpm: 600, enabled: true }], ["Spindle stop", "SPINDLE_COMMAND", { spindle: 0, rpm: 0, enabled: false }], ["Tool prepare", "TOOL_PREPARE", { tool: 1, pocket: 1 }], ["Probe arm", "PROBE_CONFIG", { action: "arm", probe_type: 0 }], ["Recover IO", "IO_RECOVER", {}]];
|
||||
const buttons = document.createElement("div"); buttons.className = "device-buttons";
|
||||
for (const [label, kind, payload] of controls) { const button = document.createElement("button"); button.type = "button"; button.className = "control-button"; button.textContent = label; button.addEventListener("click", () => controller.client.send(kind, payload, { operationId: `device-${kind}-${label.replaceAll(" ", "-")}` })); buttons.append(button); }
|
||||
section.append(buttons);
|
||||
const state = document.createElement("pre"); state.className = "state-view device-state"; state.textContent = JSON.stringify(snapshot, null, 2); section.append(state);
|
||||
return section;
|
||||
}
|
||||
Reference in New Issue
Block a user