3 * Class to compute moving average speed
5 * Created by Arno Bakker
6 * Copyright 2009 Delft University of Technology. All rights reserved.
11 using namespace swift;
13 MovingAverageSpeed::MovingAverageSpeed(tint speed_interval, tint fudge)
15 speed_interval_ = speed_interval;
17 t_start_ = usec_time() - fudge_;
24 void MovingAverageSpeed::AddPoint(uint64_t amount)
26 // Arno, 2012-01-04: Resetting this measurement includes not adding
27 // points for a few seconds after the reset, to accomodate the case
28 // of going from high speed to low speed and content still coming in.
31 if ((t_start_ + speed_interval_/2) > usec_time()) {
38 speed_ = (speed_ * ((double)(t_end_ - t_start_)/((double)TINT_SEC)) + (double)amount) / ((t - t_start_)/((double)TINT_SEC) + 0.0001);
40 if (t_start_ < t - speed_interval_)
41 t_start_ = t - speed_interval_;
45 double MovingAverageSpeed::GetSpeed()
52 double MovingAverageSpeed::GetSpeedNeutral()
58 void MovingAverageSpeed::Reset()
61 t_start_ = usec_time() - fudge_;