connect(location,SIGNAL(locationUpdated()),this,SLOT(locationUpdated()));
connect(location,SIGNAL(gps_connected()),this,SLOT(gpsConnected()));
connect(location,SIGNAL(gps_disconnected()),this,SLOT(gpsDisconnected()));
- connect(location,SIGNAL(gps_error(int error)),this,SLOT(gps_error(int error)));
- connect(location,SIGNAL(gpsd_running()),this,SLOT(gpsd_running()));
- connect(location,SIGNAL(gpsd_stopped()),this,SLOT(gpsd_stopped()));
+ connect(location,SIGNAL(gps_error(int)),this,SLOT(gpsError()));
+ connect(location,SIGNAL(gpsd_running()),this,SLOT(gpsdRunning()));
+ connect(location,SIGNAL(gpsd_stopped()),this,SLOT(gpsdStopped()));
}
/**
location = NULL;
}
+void GPSData::resetAll()
+{
+ satellitesInUse = 0;
+ satellitesInView = 0;
+ signalStrength = 0;
+ latitude = 0;
+ longitude = 0;
+ time = 0;
+ ept = 0;
+ eph = 0;
+ altitude = 0;
+ epv = 0;
+ track = 0;
+ epd = 0;
+ speed = 0;
+ eps = 0;
+ climb = 0;
+ epc = 0;
+
+ recordingStatus = false;
+ roundCounter = 0;
+}
+
+/**
+ *This slot function is called when GPS update location.
+ */
void GPSData::agnss()
{
- QString satellitesInUse = QString::number(location->getSatellitesInUse()); //Returns number of satellites in use.
- QString satellitesInView = QString::number(location->getSatellitesInView());//Returns number of satellites in view.
- QString signalStrength = QString::number(location->getSignalStrength()); //Returns average signal strength of satellites which are in use.
- QString gpsOnline = QString::number(location->getGpsOnline()); //Returns gsp online
- QString latitude = QString::number(location->getLatitude()); //Returns latitude.
- QString longitude = QString::number(location->getLongitude()); //Returns longitude.
- QString time = QString::number(location->getTime()); //Returns timestamp of the update in seconds.
- QString ept = QString::number(location->getEpt()); //Returns time accuracy in seconds.
- QString eph = QString::number(location->getEph()); //Returns horizontal position accuracy in cm.
- QString altitude = QString::number(location->getAltitude()); //Returns fix altitude in meters.
- QString epv = QString::number(location->getEpv()); //Returns altitude accuracy in meters.
- QString track = QString::number(location->getTrack()); //Returns direction of motion in degrees(0-359).
- QString epd = QString::number(location->getEpd()); //Returns track accuracy in degrees.
- QString speed = QString::number(location->getSpeed()); //Returns current speed in km/h.
- QString eps = QString::number(location->getEps()); //Returns speed accuracy in km/h.
- QString climp = QString::number(location->getClimb()); //Returns current rate of climb in m/s.
- QString epc = QString::number(location->getEpc()); //Returns climb accuracy in m/s.
+ //satellitesInUse = QString::number(location->getSatellitesInUse()); //Returns number of satellites in use.
+ //satellitesInView = QString::number(location->getSatellitesInView());//Returns number of satellites in view.
+ //signalStrength = QString::number(location->getSignalStrength()); //Returns average signal strength of satellites which are in use.
+ //gpsOnline = QString::number(location->getGpsOnline()); //Returns gsp online
+ //ept = QString::number(location->getEpt()); //Returns time accuracy in seconds.
+ //eph = QString::number(location->getEph()); //Returns horizontal position accuracy in cm.
+ //epv = QString::number(location->getEpv()); //Returns altitude accuracy in meters.
+ //track = QString::number(location->getTrack()); //Returns direction of motion in degrees(0-359).
+ //epd = QString::number(location->getEpd()); //Returns track accuracy in degrees.
+ //eps = QString::number(location->getEps()); //Returns speed accuracy in km/h.
+ //climb = QString::number(location->getClimb()); //Returns current rate of climb in m/s.
+ //epc = QString::number(location->getEpc()); //Returns climb accuracy in m/s.
//location->distance_between_two_points(double latitude_s, double longitude_s, double latitude_f, double longitude_f);
+ //time = location->getTime();//Returns timestamp of the update in seconds.
+
+ latitude = location->getLatitude(); //Returns latitude.
+ longitude = location->getLongitude(); //Returns longitude.
+ altitude = location->getAltitude(); //Returns fix altitude in meters.
+ speed = location->getSpeed(); //Returns current speed in km/h.
+
+ latitudeNow.sprintf("%.4f", latitude); //Latitude now to string
+ longitudeNow.sprintf("%.4f", longitude);//Longitude now to string
+ latitudePrevious.sprintf("%.4f", gpsDataArray[roundCounter-1][0]); //Previous latitude to string
+ longitudePrevious.sprintf("%.4f", gpsDataArray[roundCounter-1][1]); //Previous longitude to string
+
+ if ( recordingStatus == true )
+ {
+ if ( roundCounter == 0 || latitudeNow != latitudePrevious || longitudeNow != longitudePrevious )
+ {
+ gpsDataArray[roundCounter][0] = latitude;
+ gpsDataArray[roundCounter][1] = longitude;
+ gpsDataArray[roundCounter][2] = altitude;
+ gpsDataArray[roundCounter][3] = speed;
+ roundCounter ++;
+ }
+ }
}
+/**
+ *This slot function is called when gprs update location.
+ */
void GPSData::awcp()
{
}
+/**
+ *This slot function is called when .
+ */
void GPSData::locationUpdated()
{
}
+/**
+ *This slot function is called when .
+ */
void GPSData::gpsConnected()
{
}
+/**
+ *This slot function is called when .
+ */
void GPSData::gpsDisconnected()
{
}
-void GPSData::gps_error(int error)
+/**
+ *This slot function is called when .
+ */
+void GPSData::gpsError()
+{
+
+}
+
+/**
+ *This slot function is called when .
+ */
+void GPSData::gpsdRunning()
{
}
-void GPSData::gpsd_running()
+/**
+ *This slot function is called when .
+ */
+void GPSData::gpsdStopped()
{
}
-void GPSData::gpsd_stopped()
+void GPSData::startRouteRecording(QString time)
{
+ if (recordingStatus == false)
+ {
+ routeStartTime = time;
+ recordingStatus = true;
+ roundCounter = 0;
+ }
+}
+void GPSData::stopRouteRecording(QString time)
+{
+ routeStopTime = time;
+ saveRoute();
+ if (recordingStatus == true)
+ {
+ recordingStatus = false;
+ roundCounter = 0;
+ }
+}
+
+void GPSData::saveRoute()
+{
+ QFile file("testroute.txt");
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
+ {
+ return;
+ }
+ QTextStream route(&file);
+
+ route << "Start: " << routeStartTime << "\n";
+ for (int i = 0 ; i <= roundCounter ; i++)
+ {
+ route << " lat: " << gpsDataArray[i][0]
+ << " lon: " << gpsDataArray[i][1]
+ << " alt: " << gpsDataArray[i][2]
+ << " spe: " << gpsDataArray[i][3]
+ << "\n";
+ }
+ route << "Stop: " << routeStopTime << "\n";
+ file.close();
}
#include <QObject>
#include <maemo5location.h>
+#include <QFile>
+#include <QTextStream>
class GPSData : public QObject
{
public:
GPSData(Maemo5Location *maemo5location);
~GPSData();
+ void startRouteRecording(QString time);
+ void stopRouteRecording(QString time);
+ int roundCounter; //testing, move private!!!
private:
Maemo5Location *location;
+ void resetAll();
+ void saveRoute();
+
+ int satellitesInUse; //Number of satellites in use.
+ int satellitesInView;//Number of satellites in view.
+ int signalStrength; //Average signal strength of satellites which are in use.
+ double latitude; //Latitude.
+ double longitude; //Longitude.
+ double time; //Timestamp of the update in seconds.
+ double ept; //Time accuracy in seconds.
+ double eph; //Horizontal position accuracy in cm.
+ double altitude; //Fix altitude in meters.
+ double epv; //Altitude accuracy in meters.
+ double track; //Direction of motion in degrees(0-359).
+ double epd; //Track accuracy in degrees.
+ double speed; //Current speed in km/h.
+ double eps; //Speed accuracy in km/h.
+ double climb; //Current rate of climb in m/s.
+ double epc; //Climb accuracy in m/s.
+ QString routeStartTime;
+ QString routeStopTime;
+ QString latitudeNow;
+ QString longitudeNow;
+ QString latitudePrevious;
+ QString longitudePrevious;
+
+ bool recordingStatus;
+ //int roundCounter;
+ double gpsDataArray[100][4];
private slots:
void agnss();
void locationUpdated();
void gpsConnected();
void gpsDisconnected();
- void gps_error(int error);
- void gpsd_running();
- void gpsd_stopped();
+ void gpsError();
+ void gpsdRunning();
+ void gpsdStopped();
+
};
#endif // GPSDATA_H