#include <QDebug>
#include <QTimer>
+#include "common.h"
#include "gpscommon.h"
#include "gpsposition.h"
#include "gpspositionprivate.h"
GPSPositionPrivate::GPSPositionPrivate(QObject *parent)
: QObject(parent),
m_gpsSource(0),
+ m_initialized(false),
m_running(false),
m_updateInterval(DEFAULT_UPDATE_INTERVAL)
{
+ qDebug() << __PRETTY_FUNCTION__;
+
m_parent = static_cast<GPSPosition*>(parent);
}
+bool GPSPositionPrivate::isInitialized()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ return m_initialized;
+}
+
void GPSPositionPrivate::setMode(GPSPosition::Mode mode, const QString &filePath)
{
+ qDebug() << __PRETTY_FUNCTION__;
+
if (m_gpsSource) {
disconnect(m_gpsSource, 0, 0, 0);
delete m_gpsSource;
}
- if (mode == GPSPosition::Default)
+ if (mode == GPSPosition::Default) {
m_gpsSource = QGeoPositionInfoSource::createDefaultSource(this);
- if ((!m_gpsSource) || (mode == GPSPosition::Simulation)) {
- qDebug() << "Using NMEA info source.";
+ if (!m_gpsSource) {
+ m_initialized = false;
+ emit m_parent->error(SituareError::GPS_INITIALIZATION_FAILED);
+ return;
+ }
+ }
+ else if (mode == GPSPosition::Simulation) {
QNmeaPositionInfoSource *nmeaSource = new QNmeaPositionInfoSource(
QNmeaPositionInfoSource::SimulationMode, this);
QFile *logFile = new QFile(filePath, this);
}
if (m_gpsSource) {
+ m_initialized = true;
connect(m_gpsSource, SIGNAL(positionUpdated(const QGeoPositionInfo &)),
this, SLOT(positionUpdated(const QGeoPositionInfo &)));
connect(m_gpsSource, SIGNAL(updateTimeout()), this, SLOT(updateTimeout()));
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_gpsSource && !isRunning()) {
+ if (m_initialized && !isRunning()) {
m_gpsSource->startUpdates();
m_running = true;
}
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_gpsSource && isRunning()) {
+ if (m_initialized && isRunning()) {
m_gpsSource->stopUpdates();
m_running = false;
}
{
qDebug() << __PRETTY_FUNCTION__;
- QDateTime timestamp;
-
-#ifdef Q_WS_MAEMO_5
- timestamp = positionInfo.dateTime();
-#else
- timestamp = positionInfo.timestamp();
-#endif
-
- if (!timestamp.isValid())
+ if (!positionInfo.timestamp().isValid())
return GPS_ACCURACY_UNDEFINED;
if (positionInfo.hasAttribute(QGeoPositionInfo::HorizontalAccuracy))