Speed checkpoints management added.
[speedfreak] / Client / calculate.h
1 /*
2  * Calculate class to process accelerometer data
3  *
4  * @author      Kai Rasilainen
5  * @copyright   (c) 2010 Speed Freak team
6  * @license     http://opensource.org/licenses/gpl-license.php GNU Public License
7  */
8
9 #ifndef CALCULATE_H
10 #define CALCULATE_H
11
12 #include <QObject>
13 #include <QTime>
14 #include <QList>
15
16 class Calculate : public QObject
17 {
18     Q_OBJECT
19
20 public:
21     Calculate();
22     ~Calculate();
23
24     void reset();
25     void calculateParameters(double currentAcceleration, double seconds);
26     void accelStoppedCheck(double currentAcceleration);
27
28     double getAverageSpeed();
29     void setAverageSpeed(double value);
30
31     double getCurrentSpeed();
32     void setCurrentSpeed(double value);
33
34     double getDistanceTraveled();
35     void setDistanceTraveled(double value);
36
37     double getLastAcceleration();
38     void setLastAcceleration(double value);
39
40     double getLastCheckpoint();
41     void setLastCheckpoint(double value);
42
43     double getLastDistance();
44     void setLastDistance(double value);
45
46     double getLastSpeed();
47     void setLastSpeed(double value);
48
49     long getNumOfIterations();
50     void setNumOfIterations(long value);
51
52     double getTotalTime();
53     void setTotalTime(double value);
54
55 private:
56     double averageSpeed;
57     double currentSpeed;
58     double distanceTraveled;
59     double lastAcceleration;
60     double lastCheckpoint;
61     double lastDistance;
62     double lastSpeed;
63     long numOfIterations;
64     double totalTime;
65     int count;
66     double peakPower;
67     double currentPower;
68     double averagePower;
69     QList<int> speedCheckPoints;
70
71 signals:
72     void checkPointReached(double totalTime, double currentSpeed);
73
74 };
75
76 #endif // CALCULATE_H