4 * @author Toni Jussila <toni.jussila@fudeco.com>
5 * @copyright (c) 2010 Speed Freak team
6 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
12 *Default constructor of this class.
14 GPSData::GPSData(Maemo5Location *maemo5location)
16 location = maemo5location;
18 connect(location,SIGNAL(agnss()),this,SLOT(agnss()));
19 connect(location,SIGNAL(awcp()),this,SLOT(awcp()));
20 connect(location,SIGNAL(locationUpdated()),this,SLOT(locationUpdated()));
21 connect(location,SIGNAL(gps_connected()),this,SLOT(gpsConnected()));
22 connect(location,SIGNAL(gps_disconnected()),this,SLOT(gpsDisconnected()));
23 connect(location,SIGNAL(gps_error(int)),this,SLOT(gpsError()));
24 connect(location,SIGNAL(gpsd_running()),this,SLOT(gpsdRunning()));
25 connect(location,SIGNAL(gpsd_stopped()),this,SLOT(gpsdStopped()));
29 *Destructor of this class. Deletes all dynamic objects and sets them to NULL.
37 void GPSData::resetAll()
56 recordingStatus = false;
61 *This slot function is called when GPS update location.
65 //satellitesInUse = QString::number(location->getSatellitesInUse()); //Returns number of satellites in use.
66 //satellitesInView = QString::number(location->getSatellitesInView());//Returns number of satellites in view.
67 //signalStrength = QString::number(location->getSignalStrength()); //Returns average signal strength of satellites which are in use.
68 //gpsOnline = QString::number(location->getGpsOnline()); //Returns gsp online
69 //ept = QString::number(location->getEpt()); //Returns time accuracy in seconds.
70 //eph = QString::number(location->getEph()); //Returns horizontal position accuracy in cm.
71 //epv = QString::number(location->getEpv()); //Returns altitude accuracy in meters.
72 //track = QString::number(location->getTrack()); //Returns direction of motion in degrees(0-359).
73 //epd = QString::number(location->getEpd()); //Returns track accuracy in degrees.
74 //eps = QString::number(location->getEps()); //Returns speed accuracy in km/h.
75 //climb = QString::number(location->getClimb()); //Returns current rate of climb in m/s.
76 //epc = QString::number(location->getEpc()); //Returns climb accuracy in m/s.
77 //location->distance_between_two_points(double latitude_s, double longitude_s, double latitude_f, double longitude_f);
78 //time = location->getTime();//Returns timestamp of the update in seconds.
80 latitude = location->getLatitude(); //Returns latitude.
81 longitude = location->getLongitude(); //Returns longitude.
82 altitude = location->getAltitude(); //Returns fix altitude in meters.
83 speed = location->getSpeed(); //Returns current speed in km/h.
85 latitudeNow.sprintf("%.4f", latitude); //Latitude now to string
86 longitudeNow.sprintf("%.4f", longitude);//Longitude now to string
87 latitudePrevious.sprintf("%.4f", gpsDataArray[roundCounter-1][0]); //Previous latitude to string
88 longitudePrevious.sprintf("%.4f", gpsDataArray[roundCounter-1][1]); //Previous longitude to string
90 if ( recordingStatus == true )
92 if ( roundCounter == 0 || latitudeNow != latitudePrevious || longitudeNow != longitudePrevious )
94 gpsDataArray[roundCounter][0] = latitude;
95 gpsDataArray[roundCounter][1] = longitude;
96 gpsDataArray[roundCounter][2] = altitude;
97 gpsDataArray[roundCounter][3] = speed;
104 *This slot function is called when gprs update location.
112 *This slot function is called when .
114 void GPSData::locationUpdated()
120 *This slot function is called when .
122 void GPSData::gpsConnected()
128 *This slot function is called when .
130 void GPSData::gpsDisconnected()
136 *This slot function is called when .
138 void GPSData::gpsError()
144 *This slot function is called when .
146 void GPSData::gpsdRunning()
152 *This slot function is called when .
154 void GPSData::gpsdStopped()
159 void GPSData::startRouteRecording(QString time)
161 if (recordingStatus == false)
163 routeStartTime = time;
164 recordingStatus = true;
169 void GPSData::stopRouteRecording(QString time)
171 routeStopTime = time;
173 if (recordingStatus == true)
175 recordingStatus = false;
180 void GPSData::saveRoute()
182 QFile file("testroute.txt");
183 if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
187 QTextStream route(&file);
189 route << "Start: " << routeStartTime << "\n";
190 for (int i = 0 ; i <= roundCounter ; i++)
192 route << " lat: " << gpsDataArray[i][0]
193 << " lon: " << gpsDataArray[i][1]
194 << " alt: " << gpsDataArray[i][2]
195 << " spe: " << gpsDataArray[i][3]
198 route << "Stop: " << routeStopTime << "\n";