void Thermocycler::UpdateEta() { if (iProgramState == ERunning) { double fastSecondPerDegree; if (iElapsedFastRampDegrees == 0 || !iHasCooled) fastSecondPerDegree = 1.0; else fastSecondPerDegree = iTotalElapsedFastRampDurationMs / 1000 / iElapsedFastRampDegrees; unsigned long estimatedDurationS = iProgramHoldDurationS + iProgramControlledRampDurationS + iProgramFastRampDegrees * fastSecondPerDegree; unsigned long elapsedTimeS = GetElapsedTimeS(); iEstimatedTimeRemainingS = estimatedDurationS > elapsedTimeS ? estimatedDurationS - elapsedTimeS : 0; } }
void Thermocycler::UpdateEta() { if (m_program_state == ERunning) { double fastSecondPerDegree; if (m_elapsed_fast_ramp_degrees == 0 || !m_has_cooled) fastSecondPerDegree = 1.0; else fastSecondPerDegree = m_total_elapsed_fast_ramp_duration_ms / 1000 / m_elapsed_fast_ramp_degrees; unsigned long estimatedDurationS = m_program_hold_duration_sec + m_program_controlled_ramp_duration_sec + m_program_fast_ramp_degrees * fastSecondPerDegree; unsigned long elapsedTimeS = GetElapsedTimeS(); m_estimated_time_remaining_sec = estimatedDurationS > elapsedTimeS ? estimatedDurationS - elapsedTimeS : 0; } }