From: oppilas Date: Fri, 19 Mar 2010 10:37:06 +0000 (+0200) Subject: Added maximum speed property. X-Git-Tag: v0.1~19^2 X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=commitdiff_plain;h=04ca6dbc7aa8f12bb9f2f3c355dbc5861f98712e Added maximum speed property. --- diff --git a/Client/calculate.cpp b/Client/calculate.cpp index 85c22c7..f387061 100644 --- a/Client/calculate.cpp +++ b/Client/calculate.cpp @@ -40,13 +40,14 @@ void Calculate::reset() peakPower = 0; currentPower = 0; currentSpeed = 0; + maxSpeed = 0; distanceTraveled = 0; lastAcceleration = 0; lastDistance = 0; lastSpeed = 0; numOfIterations = 0; totalTime = 0; - //count = 0; + count = 0; speedCheckPoints.append(10); speedCheckPoints.append(20); @@ -78,6 +79,10 @@ void Calculate::calculateParameters(double currentAcceleration, double seconds) // First integration of acceleration provides speed currentSpeed = (lastSpeed + (((currentAcceleration + lastAcceleration) * seconds) / 2)); + // Update maximum speed + if (currentSpeed > maxSpeed) + maxSpeed = currentSpeed; + // Second integration: distance. distanceTraveled = (lastDistance + (((currentSpeed + lastSpeed) * seconds) / 2)); @@ -129,7 +134,7 @@ void Calculate::calculateParameters(double currentAcceleration, double seconds) } // Check for movement - //accelStoppedCheck(currentAcceleration); + accelStoppedCheck(currentAcceleration); lastSpeed = currentSpeed; lastAcceleration = currentAcceleration; @@ -141,10 +146,8 @@ void Calculate::calculateParameters(double currentAcceleration, double seconds) * a short period of time. Velocity is set to zero to avoid * distance errors. */ -/* void Calculate::accelStoppedCheck(double currentAcceleration) { - // counting number of acceleration samples that equals zero if (currentAcceleration==0) { count++; @@ -152,13 +155,13 @@ void Calculate::accelStoppedCheck(double currentAcceleration) count = 0; } - // if count exceeds 15, we assume that velocity is zero - if (count >= 15) + // if count exceeds 25, we assume that velocity is zero + if (count >= 25) { currentSpeed=0; } } -*/ + // Getters and setters double Calculate::getAverageSpeed() @@ -278,4 +281,13 @@ void Calculate::setAveragePower(double value) averagePower = value; } +double Calculate::getMaxSpeed() +{ + return maxSpeed; +} + +void Calculate::setMaxSpeed(double value) +{ + maxSpeed = value; +} diff --git a/Client/calculate.h b/Client/calculate.h index 55069d2..c1dddff 100644 --- a/Client/calculate.h +++ b/Client/calculate.h @@ -23,7 +23,7 @@ public: void reset(); void calculateParameters(double currentAcceleration, double seconds); - //void accelStoppedCheck(double currentAcceleration); + void accelStoppedCheck(double currentAcceleration); double getAverageSpeed(); void setAverageSpeed(double value); @@ -61,9 +61,13 @@ public: double getAveragePower(); void setAveragePower(double value); + double getMaxSpeed(); + void setMaxSpeed(double value); + private: double averageSpeed; double currentSpeed; + double maxSpeed; double distanceTraveled; double lastAcceleration; double lastCheckpoint; @@ -71,7 +75,7 @@ private: double lastSpeed; long numOfIterations; double totalTime; - //int count; + int count; double peakPower; double currentPower; double averagePower;