Progress panes: replace live actual temp with configured hold duration

Each step plate now shows the scheduled hold time ("Hold h:mm:ss") as a
static field instead of the live actual temperature. The value is set once
at plate-creation time from the step's hold.duration; steps without a hold
phase show "Hold —".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SH2D4LRuCnhLSzoYerAfJX
This commit is contained in:
2026-06-28 12:34:30 +02:00
co-authored by Claude Sonnet 4.6
parent fd4cede19b
commit e43d47252e
+3 -4
View File
@@ -183,6 +183,8 @@ function createStepPlate(index, step, resolvedTemp) {
masses.textContent = `Grain ${grain.toFixed(2)} kg / Water ${water.toFixed(2)} kg`;
rate.textContent = `Rate ${((step.ramp && step.ramp.rate) || 0).toFixed(2)} °/min`;
target.textContent = `Target ${resolvedTemp !== null ? resolvedTemp.toFixed(1) + ' °C' : '—'}`;
actual.textContent = (step.hold && step.hold.duration != null)
? `Hold ${formatDuration(step.hold.duration * 60)}` : 'Hold —';
// The hold phase's speed, not the ramp phase's, as the "configured"
// fallback shown for an inactive step - see StepPlate.set_step()'s
// own comment.
@@ -265,20 +267,17 @@ function updateStepPlates() {
}
if (sudStepIndex !== null && i === sudStepIndex) {
plate.actual.textContent = `Actual ${plotTempIst !== null ? plotTempIst.toFixed(1) + ' °C' : '—'}`;
plate.stirrer.textContent = `Stirrer ${stirrerSpeedIst.toFixed(0)} rpm`;
plate.energy.textContent = `Energy ${energyCurrent.toFixed(0)} Wh`;
// Active step: ramp prefix when ramping; bare hold time when holding
// Active step: Ramp prefix when ramping; Hold time when holding
// (reuses the same digit area). PAUSED/WAIT_USER keep the last phase.
if (sudStepType === 'hold') {
plate.remaining.textContent = 'Hold ' + formatDuration(Math.max(0, sudHoldRemaining));
}
} else if (i in stepActualFrozen) {
plate.actual.textContent = `Actual ${stepActualFrozen[i].toFixed(1)} °C`;
plate.stirrer.textContent = `Stirrer ${plate.configuredSpeed.toFixed(0)} rpm (cfg)`;
plate.energy.textContent = (i in energyByStep) ? `Energy ${energyByStep[i].toFixed(0)} Wh` : 'Energy —';
} else {
plate.actual.textContent = 'Actual —';
plate.stirrer.textContent = `Stirrer ${plate.configuredSpeed.toFixed(0)} rpm (cfg)`;
plate.energy.textContent = (i in energyByStep) ? `Energy ${energyByStep[i].toFixed(0)} Wh` : 'Energy —';
}