diff --git a/web/app.js b/web/app.js index ecccef3..f451723 100644 --- a/web/app.js +++ b/web/app.js @@ -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 —'; }