Calibrate dialog addition.
[speedfreak] / Client / calculate.cpp
index aa579ec..f387061 100644 (file)
@@ -36,7 +36,11 @@ Calculate::~Calculate()
 void Calculate::reset()
 {
     averageSpeed = 0;
+    averagePower = 0;
+    peakPower = 0;
+    currentPower = 0;
     currentSpeed = 0;
+    maxSpeed = 0;
     distanceTraveled = 0;
     lastAcceleration = 0;
     lastDistance = 0;
@@ -75,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));
 
@@ -117,10 +125,10 @@ void Calculate::calculateParameters(double currentAcceleration, double seconds)
     {
         foreach (double speed, speedCheckPoints)
         {
-            if ((lastCheckpoint != floor(speed)) && (floor(currentSpeed) == floor(speed)))
+            if ((lastCheckpoint != floor(speed)) && (floor(getCurrentSpeed()) == floor(speed)))
             {
-                emit checkPointReached(totalTime, currentSpeed);
-                lastCheckpoint = floor(currentSpeed);
+                emit checkPointReached(totalTime, getCurrentSpeed());
+                lastCheckpoint = floor(getCurrentSpeed());
             }
         }
     }
@@ -140,7 +148,6 @@ void Calculate::calculateParameters(double currentAcceleration, double seconds)
   */
 void Calculate::accelStoppedCheck(double currentAcceleration)
 {
-
     // counting number of acceleration samples that equals zero
     if (currentAcceleration==0) {
         count++;
@@ -148,8 +155,8 @@ 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;
     }
@@ -274,4 +281,13 @@ void Calculate::setAveragePower(double value)
     averagePower = value;
 }
 
+double Calculate::getMaxSpeed()
+{
+    return maxSpeed;
+}
+
+void Calculate::setMaxSpeed(double value)
+{
+    maxSpeed = value;
+}