Added maximum speed property.
authoroppilas <oppilas@oppilas-laptop.(none)>
Fri, 19 Mar 2010 10:37:06 +0000 (12:37 +0200)
committeroppilas <oppilas@oppilas-laptop.(none)>
Fri, 19 Mar 2010 10:37:06 +0000 (12:37 +0200)
Client/calculate.cpp
Client/calculate.h

index 85c22c7..f387061 100644 (file)
@@ -40,13 +40,14 @@ void Calculate::reset()
     peakPower = 0;
     currentPower = 0;
     currentSpeed = 0;
     peakPower = 0;
     currentPower = 0;
     currentSpeed = 0;
+    maxSpeed = 0;
     distanceTraveled = 0;
     lastAcceleration = 0;
     lastDistance = 0;
     lastSpeed = 0;
     numOfIterations = 0;
     totalTime = 0;
     distanceTraveled = 0;
     lastAcceleration = 0;
     lastDistance = 0;
     lastSpeed = 0;
     numOfIterations = 0;
     totalTime = 0;
-    //count = 0;
+    count = 0;
 
     speedCheckPoints.append(10);
     speedCheckPoints.append(20);
 
     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));
 
     // 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));
 
     // Second integration: distance.
     distanceTraveled = (lastDistance + (((currentSpeed + lastSpeed) * seconds) / 2));
 
@@ -129,7 +134,7 @@ void Calculate::calculateParameters(double currentAcceleration, double seconds)
     }
 
     // Check for movement
     }
 
     // Check for movement
-    //accelStoppedCheck(currentAcceleration);
+    accelStoppedCheck(currentAcceleration);
 
     lastSpeed = currentSpeed;
     lastAcceleration = 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.
   */
   * a short period of time. Velocity is set to zero to avoid
   * distance errors.
   */
-/*
 void Calculate::accelStoppedCheck(double currentAcceleration)
 {
 void Calculate::accelStoppedCheck(double currentAcceleration)
 {
-
     // counting number of acceleration samples that equals zero
     if (currentAcceleration==0) {
         count++;
     // counting number of acceleration samples that equals zero
     if (currentAcceleration==0) {
         count++;
@@ -152,13 +155,13 @@ void Calculate::accelStoppedCheck(double currentAcceleration)
         count = 0;
     }
 
         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;
     }
 }
     {
         currentSpeed=0;
     }
 }
-*/
+
 // Getters and setters
 
 double Calculate::getAverageSpeed()
 // Getters and setters
 
 double Calculate::getAverageSpeed()
@@ -278,4 +281,13 @@ void Calculate::setAveragePower(double value)
     averagePower = value;
 }
 
     averagePower = value;
 }
 
+double Calculate::getMaxSpeed()
+{
+    return maxSpeed;
+}
+
+void Calculate::setMaxSpeed(double value)
+{
+    maxSpeed = value;
+}
 
 
index 55069d2..c1dddff 100644 (file)
@@ -23,7 +23,7 @@ public:
 
     void reset();
     void calculateParameters(double currentAcceleration, double seconds);
 
     void reset();
     void calculateParameters(double currentAcceleration, double seconds);
-    //void accelStoppedCheck(double currentAcceleration);
+    void accelStoppedCheck(double currentAcceleration);
 
     double getAverageSpeed();
     void setAverageSpeed(double value);
 
     double getAverageSpeed();
     void setAverageSpeed(double value);
@@ -61,9 +61,13 @@ public:
     double getAveragePower();
     void setAveragePower(double value);
 
     double getAveragePower();
     void setAveragePower(double value);
 
+    double getMaxSpeed();
+    void setMaxSpeed(double value);
+
 private:
     double averageSpeed;
     double currentSpeed;
 private:
     double averageSpeed;
     double currentSpeed;
+    double maxSpeed;
     double distanceTraveled;
     double lastAcceleration;
     double lastCheckpoint;
     double distanceTraveled;
     double lastAcceleration;
     double lastCheckpoint;
@@ -71,7 +75,7 @@ private:
     double lastSpeed;
     long numOfIterations;
     double totalTime;
     double lastSpeed;
     long numOfIterations;
     double totalTime;
-    //int count;
+    int count;
     double peakPower;
     double currentPower;
     double averagePower;
     double peakPower;
     double currentPower;
     double averagePower;