Code commenting added.
[speedfreak] / Client / measuredialog.cpp
1 #include "measuredialog.h"
2 #include "ui_measuredialog.h"
3
4
5 /**
6   * Constructor of this class.
7   * @param QWidget pointer to parent object. By default the value is NULL.
8   */
9 MeasureDialog::MeasureDialog(QWidget *parent) :
10     QDialog(parent),
11     ui(new Ui::MeasureDialog)
12 {
13     ui->setupUi(this);
14     ui->labelInfo->setText("Accelerate to 100 km/h");
15     time = 0;
16     speed = 0;
17     timer = new QTimer();
18
19     accelerometer = new Accelerometer();
20     accelerometer->setSampleRate(100);
21     accelerometer->start();
22
23     measures = new Measures();
24     this->initializeMeasures();
25
26     timer->setInterval(100);
27     timer->start();
28     connect(this->timer, SIGNAL(timeout()), this, SLOT(after_timeout()));
29 }
30
31 /**
32   *Destructor of this class.  Should be used to release all allocated resources.
33   */
34 MeasureDialog::~MeasureDialog()
35 {
36     delete ui;
37 }
38
39 void MeasureDialog::changeEvent(QEvent *e)
40 {
41     QDialog::changeEvent(e);
42     switch (e->type()) {
43     case QEvent::LanguageChange:
44         ui->retranslateUi(this);
45         break;
46     default:
47         break;
48     }
49 }
50
51 /**
52   * This slot function is called when timer gives timeout signal. Checks current speed
53   * and stores times in measure class.
54   */
55 void MeasureDialog::after_timeout()
56 {
57     QString timeString, speedString;
58     //time++;
59     time = accelerometer->getTotalTime();
60     speed = accelerometer->getCurrentSpeed();
61     //speed = speed +10;
62
63     if (speed > 9.7 && speed < 10.3)
64     {
65         measures->setTime10kmh(time);
66     }
67
68     else if (speed > 19.7 && speed < 20.3)
69     {
70         measures->setTime20kmh(time);
71     }
72
73     else if (speed > 29.7 && speed < 30.3)
74     {
75         measures->setTime30kmh(time);
76     }
77
78     else if (speed > 39.7 && speed < 40.3)
79     {
80         measures->setTime40kmh(time);
81     }
82
83     else if (speed > 49.7 && speed < 50.3)
84     {
85         measures->setTime50kmh(time);
86     }
87
88     else if (speed > 59.7 && speed < 60.3)
89     {
90         measures->setTime60kmh(time);
91     }
92
93     else if (speed > 69.7 && speed < 70.3)
94     {
95         measures->setTime70kmh(time);
96     }
97
98     else if (speed > 79.7 && speed < 80.3)
99     {
100         measures->setTime80kmh(time);
101     }
102
103     else if (speed > 89.7 && speed < 90.3)
104     {
105         measures->setTime90kmh(time);
106     }
107
108     else if (speed > 99.7 && speed < 100.3)
109     {
110         measures->setTime100kmh(time);
111     }
112
113     else
114     {
115
116     }
117
118     // If speed is over 100 km/h emits speedAchieved() signal and close this dialog.
119     if (speed >= 40.0)
120     {
121         timer->stop();
122         accelerometer->stop();
123         time = 0;
124         speed = 0;
125         emit this->speedAchieved();
126         this->close();
127
128     }
129
130     // Updates speed and time.
131     else
132     {
133         timeString.setNum(time);
134         speedString.setNum(speed);
135         ui->labelSpeed->setText(speedString);
136         ui->labelTime->setText(timeString);
137         timer->start();
138     }
139
140 }
141
142 /**
143   * This slot function is called when Abort button is clicked.
144   */
145 void MeasureDialog::on_pushButtonAbort_clicked()
146 {
147     measures->setTime10kmh(0);
148     measures->setTime20kmh(0);
149     measures->setTime30kmh(0);
150     measures->setTime40kmh(0);
151     measures->setTime50kmh(0);
152     measures->setTime60kmh(0);
153     measures->setTime70kmh(0);
154     measures->setTime80kmh(0);
155     measures->setTime90kmh(0);
156     measures->setTime100kmh(0);
157     timer->stop();
158     accelerometer->stop();
159     time = 0;
160     speed = 0;
161     this->close();
162 }
163
164 /**
165   * Initializes measures class's member variables.
166   */
167 void MeasureDialog::initializeMeasures()
168 {
169     measures->setTime10kmh(0);
170     measures->setTime20kmh(0);
171     measures->setTime30kmh(0);
172     measures->setTime40kmh(0);
173     measures->setTime50kmh(0);
174     measures->setTime60kmh(0);
175     measures->setTime70kmh(0);
176     measures->setTime80kmh(0);
177     measures->setTime90kmh(0);
178     measures->setTime100kmh(0);
179 }