* Calculate class to process accelerometer data
*
* @author Kai Rasilainen
+ * @author Jukka Kurttila <jukka.kurttila@fudeco.com>
* @copyright (c) 2010 Speed Freak team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
totalTime = 0;
count = 0;
- speedCheckPoints.append(10);
- speedCheckPoints.append(20);
- speedCheckPoints.append(30);
- speedCheckPoints.append(40);
+ if(speedCheckPoints.count() == 0)
+ {
+ speedCheckPoints.append(10);
+ speedCheckPoints.append(20);
+ speedCheckPoints.append(30);
+ speedCheckPoints.append(40);
+ speedCheckPoints.append(50);
+ speedCheckPoints.append(60);
+ speedCheckPoints.append(70);
+ speedCheckPoints.append(80);
+ speedCheckPoints.append(90);
+ speedCheckPoints.append(100);
+ }
+
+ checkPointCounter = 0;
+ checkPoint = speedCheckPoints[checkPointCounter];
}
numOfIterations--;
}
- // Checkpoints
- if ((lastSpeed == 0))
- {
- lastCheckpoint = 0;
- }
-
- // List of checkpoints
- if (!(speedCheckPoints.isEmpty()))
+ if( (checkPoint > 0) && (currentSpeed*3.6 > checkPoint) )
{
- foreach (double speed, speedCheckPoints)
+ //Update checkPoint
+ if( checkPointCounter <= speedCheckPoints.count() )
{
- if ((lastCheckpoint != floor(speed)) && (floor(getCurrentSpeed()) == floor(speed)))
+ //Save time
+ valuesMap.insert( checkPoint, totalTime );
+ if( checkPointCounter < speedCheckPoints.count() )
+ {
+ checkPoint = speedCheckPoints[checkPointCounter];
+ }
+ else
{
- emit checkPointReached(totalTime, getCurrentSpeed());
- lastCheckpoint = floor(getCurrentSpeed());
+ checkPoint = 0;
}
+ checkPointCounter++;
}
}
// Check for movement
- accelStoppedCheck(currentAcceleration);
+ //accelStoppedCheck(currentAcceleration);
lastSpeed = currentSpeed;
lastAcceleration = currentAcceleration;
maxSpeed = value;
}
+QMap<int,double> Calculate::getValuesMap()
+{
+ return valuesMap;
+}