Merge branch 'feature/cleaning'
[speedfreak] / Client / calculate.h
1 /*
2  * Calculate class to process accelerometer data
3  *
4  * @author      Kai Rasilainen
5  * @author      Jukka Kurttila <jukka.kurttila@fudeco.com>
6  * @copyright   (c) 2010 Speed Freak team
7  * @license     http://opensource.org/licenses/gpl-license.php GNU Public License
8  */
9
10 #ifndef CALCULATE_H
11 #define CALCULATE_H
12
13 #include <QObject>
14 #include <QTime>
15 #include <QList>
16 #include <QMap>
17
18 class Calculate : public QObject
19 {
20     Q_OBJECT
21
22 public:
23     Calculate();
24     ~Calculate();
25
26     void reset();
27     void calculateParameters(double currentAcceleration, double seconds);
28     void accelStoppedCheck(double currentAcceleration);
29     QMap<int,double> getValuesMap();
30
31     double getAverageSpeed();
32     void setAverageSpeed(double value);
33
34     double getCurrentSpeed();
35     void setCurrentSpeed(double value);
36
37     double getDistanceTraveled();
38     void setDistanceTraveled(double value);
39
40     double getLastAcceleration();
41     void setLastAcceleration(double value);
42
43     double getLastCheckpoint();
44     void setLastCheckpoint(double value);
45
46     double getLastDistance();
47     void setLastDistance(double value);
48
49     double getLastSpeed();
50     void setLastSpeed(double value);
51
52     long getNumOfIterations();
53     void setNumOfIterations(long value);
54
55     double getTotalTime();
56     void setTotalTime(double value);
57
58     double getCurrentPower();
59     void setCurrentPower(double value);
60
61     double getPeakPower();
62     void setPeakPower(double value);
63
64     double getAveragePower();
65     void setAveragePower(double value);
66
67     double getMaxSpeed();
68     void setMaxSpeed(double value);
69
70 private:
71     double averageSpeed;
72     double currentSpeed;
73     double maxSpeed;
74     double distanceTraveled;
75     double lastAcceleration;
76     double lastDistance;
77     double lastSpeed;
78     double checkPoint;
79     long numOfIterations;
80     double totalTime;
81     int count;
82     int checkPointCounter;
83     double peakPower;
84     double currentPower;
85     double averagePower;
86     QList<int> speedCheckPoints;
87
88     QMap<int,double> valuesMap;
89
90 signals:
91     void checkPointReached(double totalTime, double currentSpeed);
92
93 };
94
95 #endif // CALCULATE_H