gpsData = NULL;
helpRoutingDialog = NULL;
+ //Clear variables
+ averageSpeed = 0.0;
+ speed = 0.0;
+ allSpeeds = 0.0;
+ speedCount = 0;
+
//Button settings
buttonStatus = true;
pixmapRouteStop = new QPixmap("Graphics/route_stop.png");
ui->labelRouteStatus->setVisible(0);
ui->labelRoutePicture->setVisible(0);
ui->labelGpsSpeed->setVisible(0); //GPS speed label
+ ui->labelGpsAvgSpeed->setVisible(0); //GPS average speed label
+ ui->labelDistance->setVisible(0); //GPS distance label
ui->labelSignalStrength->setText(""); //GPS signal strength label
timerRoutePicture = new QTimer();
timerRoutePicture->setInterval(400);
if ( buttonStatus == true )//If start button clicked
{
qDebug() << "__start button clicked";
+
+ //Clear variables
+ averageSpeed = 0.0;
+ speed = 0.0;
+ allSpeeds = 0.0;
+ speedCount = 1;
+
buttonStatus = false;
ui->buttonRouteStartStop->setIcon(*iconRouteStop);
location->startPollingGPS();
if (routeDialog->readRouteFromFile( routeFile ) == true)
{
if(!routeDialog)
- routeDialog = new RouteDialog;
+ routeDialog = new RouteDialog(this);
connect(routeDialog, SIGNAL(sendroute()), this, SLOT(sendRoute()));
routeDialog->show();
}
- //GPS speed label
+ //Set GPS speed labels in visible
ui->labelGpsSpeed->setVisible(0);
+ ui->labelGpsAvgSpeed->setVisible(0);
+
+ //GPS distance label
+ ui->labelDistance->setVisible(0);
//Stop route recording
gpsData->stopRouteRecording();
}
/**
- *
+ * This slot function is called when GPS update location.
*/
void RouteSaveDialog::gpsStatus()
{
ui->labelRoutePicture->setVisible(1);
timerRoutePicture->start();
- //Set GPS speed.
- gpsSpeed.sprintf("%.0f",location->getSpeed());
+ //Get GPS speed
+ speed = location->getSpeed();
+
+ //Set GPS speed
+ gpsSpeed.sprintf("%.0f", speed);
ui->labelGpsSpeed->setText(gpsSpeed + " km/h");
ui->labelGpsSpeed->setVisible(1);
+ //Set GPS average speed
+ allSpeeds += speed;
+ averageSpeed = allSpeeds/speedCount;
+ gpsSpeed.sprintf("%.0f",averageSpeed);
+ ui->labelGpsAvgSpeed->setText("Average: " + gpsSpeed + " km/h");
+ ui->labelGpsAvgSpeed->setVisible(1);
+ speedCount++;
+
+ //Set distance traveled.
+ distanceString.sprintf("%.3f", gpsData->getDistanceTraveled());
+ ui->labelDistance->setText(distanceString + " km");
+ ui->labelDistance->setVisible(1);
+
//Start route recording
gpsData->startRouteRecording();
}
ui->labelRoutePicture->setVisible(0);
timerRoutePicture->stop();
- //GPS speed label
+ //Set GPS speed labels in visible
ui->labelGpsSpeed->setVisible(0);
+ ui->labelGpsAvgSpeed->setVisible(0);
+
+ //GPS distance label
+ ui->labelDistance->setVisible(0);
}
}
else //If stop button clicked
ui->labelRoutePicture->setVisible(0);
timerRoutePicture->stop();
- //GPS speed label
+ //Set GPS speed labels in visible
ui->labelGpsSpeed->setVisible(0);
+ ui->labelGpsAvgSpeed->setVisible(0);
+
+ //GPS distance label
+ ui->labelDistance->setVisible(0);
}
}
helpRoutingDialog = NULL;
}
}
+
+/**
+ * This function return speed average.
+ * @return double average speed
+ */
+double RouteSaveDialog::getAverageSpeed()
+{
+ return averageSpeed;
+}
+
+/**
+ * This function return distance traveled in QString.
+ * @return QString distance traveled
+ */
+QString RouteSaveDialog::getDistanceTraveled()
+{
+ return distanceString;
+}