Refactored code
[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 calibrationX;
44     int calibrationY;
45     int calibrationZ;
46
47     qreal getIntervalTime();
48
49 private slots:
50     void processData();
51     void smoothData(qreal x, qreal y, qreal z);
52
53 private:
54     Calculate *calculate;
55
56     qreal accelerationX, accelerationY, accelerationZ;
57     qreal trueAccelerationX,trueAccelerationY,trueAccelerationZ;
58     qreal previousAccelerationX,previousAccelerationY,previousAccelerationZ;
59     qreal previousSpeed, currentSpeed;
60     qreal currentAcceleration, previousAcceleration, totalAcceleration;
61
62     QTime now;
63     QTimer *timer;
64
65     double intervalTime;
66     double totalTime;
67     double distanceTraveled;
68     double lastDistanceTraveled;
69     double averageSpeed;
70     double sampleRate;
71
72     bool reverseAcceleration;
73 };
74
75 #endif // ACCELEROMETER_H