Fixed minor bugs
[speedfreak] / Client / gpsdata.cpp
index 36dd60c..250728a 100644 (file)
@@ -73,6 +73,7 @@ void GPSData::resetAll()
     routeStopTime = "";
     recordingStatus = false;
     roundCounter = 0;
+    distance = 0;
 }
 
 /**
@@ -104,8 +105,9 @@ void GPSData::agnss()
         longitude   = location->getLongitude(); //Returns longitude.
         altitude    = location->getAltitude();  //Returns fix altitude in meters.
         speed       = location->getSpeed();     //Returns current speed in km/h.
+        track = location->getTrack(); //Returns direction of motion in degrees(0-359).
 
-        QFile routeTempFile("routetemp.xml");//Temp xml.
+        QFile routeTempFile("/home/user/MyDocs/speedfreak/route/routetemp.xml");//Temp xml.
 
         //If GPS find 4 or more satellite and signal stregth is 30 or more.
         if (location->getSatellitesInUse() >= 4 && location->getSignalStrength() >= 30)
@@ -134,6 +136,7 @@ void GPSData::agnss()
                     if (!routeTempFile.open(QIODevice::Append | QIODevice::Text))
                         return;
 
+                    distance += location->distance_between_two_points(latitudePrevious, longitudePrevious, latitude, longitude);
                     writeRouteXml(&routeTempFile, 0);
                     roundCounter ++;
                     routeTempFile.close();
@@ -229,7 +232,7 @@ void GPSData::stopRouteRecording()
         recordingStatus = false;
 
         //Write final xml.
-        QFile file("route.xml");
+        QFile file("/home/user/MyDocs/speedfreak/route/route.xml");
         if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
             return;
         writeRouteXml(&file, 1);
@@ -245,7 +248,7 @@ void GPSData::writeRouteXml(QIODevice *device, int round)
 {
     xmlwriter.setDevice(device);
 
-    //Write temp xml (routetemp.xml).
+    //Write temp xml (/home/user/MyDocs/speedfreak/route/routetemp.xml).
     if ( round == 0 )
     {
         xmlwriter.writeStartElement("Point");
@@ -256,7 +259,7 @@ void GPSData::writeRouteXml(QIODevice *device, int round)
         xmlwriter.writeEndElement();//Point
     }
 
-    //Write final xml (route.xml).
+    //Write final xml (/home/user/MyDocs/speedfreak/route/route.xml).
     else if ( round == 1 )
     {
         xmlwriter.writeStartDocument();
@@ -266,7 +269,7 @@ void GPSData::writeRouteXml(QIODevice *device, int round)
         xmlwriter.writeAttribute("Points", QString::number(roundCounter));
 
         //Open temp xml and read points
-        QFile tempFile("routetemp.xml");
+        QFile tempFile("/home/user/MyDocs/speedfreak/route/routetemp.xml");
         if (!tempFile.open(QIODevice::ReadOnly | QIODevice::Text))
             return;
         QTextStream readRoute(&tempFile);
@@ -278,3 +281,20 @@ void GPSData::writeRouteXml(QIODevice *device, int round)
         xmlwriter.writeEndDocument();     
     }
 }
+
+/**
+  *This function returns distance traveled since recording started.
+  */
+double GPSData::getDistanceTraveled()
+{
+    return distance;
+}
+
+/**
+  *This function returns direction of motion in degrees(0-359).
+  *@return double track
+  */
+double GPSData::getDirection()
+{
+    return track;
+}