X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=blobdiff_plain;f=Client%2Fmeasuredialog.cpp;h=038116ac72e9801ede48cb7282f8e57b15f4ee8d;hp=11944f21eb1481ade292f7a821868eb451c3f67c;hb=004ab54a25868348ec5c1399e1c7b6e5889fe714;hpb=b7e5e4f21ee31476d5b9d3ceb3b7070b7f6e7101 diff --git a/Client/measuredialog.cpp b/Client/measuredialog.cpp index 11944f2..038116a 100644 --- a/Client/measuredialog.cpp +++ b/Client/measuredialog.cpp @@ -1,13 +1,36 @@ #include "measuredialog.h" #include "ui_measuredialog.h" + +/** + *Constructor of this class. + *@param QWidget pointer to parent object. By default the value is NULL. + */ MeasureDialog::MeasureDialog(QWidget *parent) : QDialog(parent), ui(new Ui::MeasureDialog) { ui->setupUi(this); + ui->labelInfo->setText("Accelerate to 100 km/h"); + time = 0; + speed = 0; + timer = new QTimer(); + + accelerometer = new Accelerometer(); + accelerometer->setSampleRate(100); + accelerometer->start(); + + measures = new Measures(); + this->initializeMeasures(); + + timer->setInterval(100); + timer->start(); + connect(this->timer, SIGNAL(timeout()), this, SLOT(after_timeout())); } +/** + *Destructor of this class. Should be used to release all allocated resources. + */ MeasureDialog::~MeasureDialog() { delete ui; @@ -24,3 +47,129 @@ void MeasureDialog::changeEvent(QEvent *e) break; } } + +/** + *This slot function is called when timer gives timeout signal. + */ +void MeasureDialog::after_timeout() +{ + QString timeString, speedString; + //time++; + time = accelerometer->getTotalTime(); + speed = accelerometer->getCurrentSpeed(); + //speed = speed +10; + + if(speed > 9.7 && speed < 10.3) + { + measures->setTime10kmh(time); + } + + else if (speed > 19.7 && speed < 20.3) + { + measures->setTime20kmh(time); + } + + else if (speed > 29.7 && speed < 30.3) + { + measures->setTime30kmh(time); + } + + else if (speed > 39.7 && speed < 40.3) + { + measures->setTime40kmh(time); + } + + else if (speed > 49.7 && speed < 50.3) + { + measures->setTime50kmh(time); + } + + else if (speed > 59.7 && speed < 60.3) + { + measures->setTime60kmh(time); + } + + else if (speed > 69.7 && speed < 70.3) + { + measures->setTime70kmh(time); + } + + else if (speed > 79.7 && speed < 80.3) + { + measures->setTime80kmh(time); + } + + else if (speed > 89.7 && speed < 90.3) + { + measures->setTime90kmh(time); + } + + else if (speed > 99.7 && speed < 100.3) + { + measures->setTime100kmh(time); + } + + else + { + + } + + // If speed is over 100 km/h emits speedAchieved() signal and close this dialog. + if (speed >= 40.0) + { + timer->stop(); + accelerometer->stop(); + time = 0; + speed = 0; + emit this->speedAchieved(); + this->close(); + + } + + // Updates speed and time. + else + { + timeString.setNum(time); + speedString.setNum(speed); + ui->labelSpeed->setText(speedString); + ui->labelTime->setText(timeString); + timer->start(); + } + +} + +/** + *This slot function is called when Abort button is clicked. + */ +void MeasureDialog::on_pushButtonAbort_clicked() +{ + measures->setTime10kmh(0); + measures->setTime20kmh(0); + measures->setTime30kmh(0); + measures->setTime40kmh(0); + measures->setTime50kmh(0); + measures->setTime60kmh(0); + measures->setTime70kmh(0); + measures->setTime80kmh(0); + measures->setTime90kmh(0); + measures->setTime100kmh(0); + timer->stop(); + accelerometer->stop(); + time = 0; + speed = 0; + this->close(); +} + +void MeasureDialog::initializeMeasures() +{ + measures->setTime10kmh(0); + measures->setTime20kmh(0); + measures->setTime30kmh(0); + measures->setTime40kmh(0); + measures->setTime50kmh(0); + measures->setTime60kmh(0); + measures->setTime70kmh(0); + measures->setTime80kmh(0); + measures->setTime90kmh(0); + measures->setTime100kmh(0); +}