1 #ifndef GPSFIX_H
2 #define GPSFIX_H
3 
4 #include <qmobilityglobal.h>
5 #include <qgeopositioninfosource.h>
6 #include <qgeosatelliteinfosource.h>
7 #include <qnmeapositioninfosource.h>
8 #include <QGeoPositionInfo>
9 
10 // Use the QtMobility namespace
11 QTM_USE_NAMESPACE
12 
13 class GpsFix : public QObject
14 {
15     Q_OBJECT
16     Q_PROPERTY(int updateInterval READ getUpdateInterval WRITE setUpdateInterval)
17     Q_PROPERTY(int timestamp READ getTimtstamp NOTIFY timestampChanged)
18     Q_PROPERTY(qreal latitude READ getLatitude NOTIFY latitudeChanged)
19     Q_PROPERTY(qreal longitude READ getLongitude NOTIFY longitudeChanged)
20     Q_PROPERTY(qreal speed READ getSpeed NOTIFY speedChanged)
21     Q_PROPERTY(qreal altitude READ getAltitude NOTIFY altitudeChanged)
22     Q_PROPERTY(int accuracy READ getAccuracy NOTIFY accuracyChanged)
23     Q_PROPERTY(int heading READ getHeading NOTIFY headingChanged)
24 
25 public:
26     explicit GpsFix(QObject *parent = 0);
27 
28     int getUpdateInterval() const;
29 
getLatitude()30     qreal getLatitude() const
31     {
32         return m_latitude;
33     }
34 
getLongitude()35     qreal getLongitude() const
36     {
37         return m_longitude;
38     }
39 
getSpeed()40     qreal getSpeed() const
41     {
42         return m_speed;
43     }
44 
getAltitude()45     qreal getAltitude() const
46     {
47         return m_altitude;
48     }
49 
getAccuracy()50     int getAccuracy() const
51     {
52         return m_accuracy;
53     }
54 
getHeading()55     int getHeading() const
56     {
57         return m_heading;
58     }
59 
getTimtstamp()60     int getTimtstamp() const
61     {
62         return m_timestamp;
63     }
64 
65     signals:
66 
67     void latitudeChanged(qreal arg);
68 
69     void longitudeChanged(qreal arg);
70 
71     void speedChanged(qreal arg);
72 
73     void altitudeChanged(qreal arg);
74 
75     void accuracyChanged(int arg);
76 
77     void headingChanged(int arg);
78 
79     void timestampChanged(int arg);
80 
81     public slots:
82     void onUpdateTimeout();
83     void onPositionUpdated ( const QGeoPositionInfo & update ) ;
84 
85     void setUpdateInterval(int arg);
86 
87     private:
88 #ifdef _MOBILE
89     QGeoPositionInfoSource* src;
90 #else
91     QNmeaPositionInfoSource* src;
92 #endif
93     int m_accuracy;
94     int m_heading;
95     qreal m_latitude;
96     qreal m_longitude;
97     qreal m_speed;
98     qreal m_altitude;
99     int m_timestamp;
100 };
101 
102 #endif // GPSFIX_H
103