8eef4aa05803ede01d1954e8216f23f2f8884f15
[speedfreak] / Client / accelerometer.h
1 #ifndef ACCELEROMETER_H
2 #define ACCELEROMETER_H
3
4 #include <QObject>
5 #include <QTime>
6 #include <QTimer>
7 #include <QFile>
8
9 #include "calculate.h"
10
11 class Accelerometer : public QObject
12 {
13     Q_OBJECT
14 public:
15     Accelerometer();
16     Accelerometer(int p_SampleRate);
17     ~Accelerometer();
18
19     void calibrate();
20
21     void start();
22     void stop();
23
24     void initValues();
25
26     void setSampleRate(int pSampleRate);
27     int getSampleRate();
28
29     qreal getTrueAccelerationX();
30     qreal getTrueAccelerationY();
31     qreal getTrueAccelerationZ();
32     qreal getPreviousSpeed();
33     qreal getCurrentSpeed();
34
35     qreal getDistanceTraveled();
36     qreal getLastDistanceTraveled();
37     qreal getAverageSpeed();
38
39     qreal getCurrentAcceleration();
40     qreal getTotalAcceleration();
41     qreal getPreviousTotalAcceleration();
42
43     int sstatex, sstatey, sstatez;
44
45     qreal getIntervalTime();
46
47 private slots:
48     void processData();
49     void smoothData(qreal x, qreal y, qreal z);
50
51 private:
52     Calculate *calculate;
53
54     qreal accelerationX, accelerationY, accelerationZ;
55     qreal trueAccelerationX,trueAccelerationY,trueAccelerationZ;
56     qreal previousAccelerationX,previousAccelerationY,previousAccelerationZ;
57     qreal previousSpeed, currentSpeed;
58     qreal currentAcceleration, previousAcceleration, totalAcceleration;
59
60     QTime now;
61     QTimer *timer;
62
63     double intervalTime;
64     double totalTime;
65     double distanceTraveled;
66     double lastDistanceTraveled;
67     double averageSpeed;
68     double sampleRate;
69
70     bool reverseAcceleration;
71 };
72
73 #endif // ACCELEROMETER_H