From 208ac286f8ef50b7539565b8c9c04feca6e1bdd7 Mon Sep 17 00:00:00 2001 From: Andrew Wood Date: Fri, 4 Oct 2024 20:15:15 +0100 Subject: [PATCH] Calculate rate_min, rate_max, etc, regardless of whether show_stats is true, since the overhead is minimal and it will allow us to use that information for other options later. --- src/pv/calc.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/pv/calc.c b/src/pv/calc.c index cf86892..5272a25 100644 --- a/src/pv/calc.c +++ b/src/pv/calc.c @@ -101,27 +101,26 @@ void pv_calculate_transfer_rate(pvstate_t state, bool final) transfer_rate = state->calc.prev_rate; state->calc.prev_trans += bytes_since_last; } else { + long double measured_rate; + transfer_rate = ((long double) bytes_since_last + state->calc.prev_trans) / time_since_last; + measured_rate = transfer_rate; + state->calc.prev_elapsed_sec = state->transfer.elapsed_seconds; state->calc.prev_trans = 0; - /* Maintain information for statistics. */ - if (state->control.show_stats) { - long double measured_rate = transfer_rate; + if (state->control.bits) + measured_rate = 8.0 * measured_rate; - if (state->control.bits) - measured_rate = 8.0 * measured_rate; - - if ((state->calc.measurements_taken < 1) || (measured_rate < state->calc.rate_min)) { - state->calc.rate_min = measured_rate; - } - if (measured_rate > state->calc.rate_max) { - state->calc.rate_max = measured_rate; - } - state->calc.rate_sum += measured_rate; - state->calc.ratesquared_sum += (measured_rate * measured_rate); - state->calc.measurements_taken++; + if ((state->calc.measurements_taken < 1) || (measured_rate < state->calc.rate_min)) { + state->calc.rate_min = measured_rate; } + if (measured_rate > state->calc.rate_max) { + state->calc.rate_max = measured_rate; + } + state->calc.rate_sum += measured_rate; + state->calc.ratesquared_sum += (measured_rate * measured_rate); + state->calc.measurements_taken++; } state->calc.prev_rate = transfer_rate;