summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors
diff options
context:
space:
mode:
authorLincoln Ramsay <lincoln.ramsay@nokia.com>2011-10-19 16:29:37 +1000
committerQt by Nokia <qt-info@nokia.com>2011-10-28 03:18:42 +0200
commit94b1e4f01c58fd9ee4a9af537b8c46c3ab324dff (patch)
tree49f1b0a6997b99e5caced36dc9972ea535d51ff9 /src/plugins/sensors
parent658b7c8e93afb0737d82291eac894516dcdf60b3 (diff)
Get the simulator backend going
Change-Id: Idbb4ba7b97be38f74f3a74e5d54c15209d5a788a Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Zsolt Simon <zsolt.simon@nokia.com>
Diffstat (limited to 'src/plugins/sensors')
-rw-r--r--src/plugins/sensors/sensors.pro2
-rw-r--r--src/plugins/sensors/simulator/main.cpp8
-rw-r--r--src/plugins/sensors/simulator/qsensordata_simulator.cpp4
-rw-r--r--src/plugins/sensors/simulator/qsensordata_simulator_p.h17
-rw-r--r--src/plugins/sensors/simulator/simulator.pri19
-rw-r--r--src/plugins/sensors/simulator/simulator.pro28
-rw-r--r--src/plugins/sensors/simulator/simulatorambientlightsensor.cpp2
-rw-r--r--src/plugins/sensors/simulator/simulatorcommon.cpp146
-rw-r--r--src/plugins/sensors/simulator/simulatorcommon.h60
-rw-r--r--src/plugins/sensors/simulator/simulatorlightsensor.cpp2
10 files changed, 131 insertions, 157 deletions
diff --git a/src/plugins/sensors/sensors.pro b/src/plugins/sensors/sensors.pro
index f3d3525c..5dc7475c 100644
--- a/src/plugins/sensors/sensors.pro
+++ b/src/plugins/sensors/sensors.pro
@@ -1,5 +1,5 @@
TEMPLATE = subdirs
SUBDIRS += dummy generic
-#simulator: SUBDIRS += simulator
+simulator:SUBDIRS += simulator
diff --git a/src/plugins/sensors/simulator/main.cpp b/src/plugins/sensors/simulator/main.cpp
index ff6b2bab..641f7a69 100644
--- a/src/plugins/sensors/simulator/main.cpp
+++ b/src/plugins/sensors/simulator/main.cpp
@@ -45,11 +45,9 @@
#include "simulatorcompass.h"
#include "simulatorproximitysensor.h"
#include "simulatormagnetometer.h"
-#include <qsensorplugin.h>
-#include <qsensorbackend.h>
-#include <qsensormanager.h>
-#include <QFile>
-#include <QDebug>
+#include <QSensorPluginInterface>
+#include <QSensorBackend>
+#include <QSensorManager>
class SimulatorSensorPlugin : public QObject, public QSensorPluginInterface, public QSensorBackendFactory
{
diff --git a/src/plugins/sensors/simulator/qsensordata_simulator.cpp b/src/plugins/sensors/simulator/qsensordata_simulator.cpp
index 168f0653..0cf70d4c 100644
--- a/src/plugins/sensors/simulator/qsensordata_simulator.cpp
+++ b/src/plugins/sensors/simulator/qsensordata_simulator.cpp
@@ -43,6 +43,8 @@
#include <QtCore/QDataStream>
+namespace QtMobility {
+
void qt_registerSensorTypes()
{
qRegisterMetaTypeStreamOperators<QAmbientLightReadingData>("QtMobility::QAmbientLightReadingData");
@@ -126,3 +128,5 @@ QDataStream &operator>>(QDataStream &in, QMagnetometerReadingData &s)
in >> s.x >> s.y >> s.z >> s.calibrationLevel >> s.timestamp;
return in;
}
+
+} // namespace
diff --git a/src/plugins/sensors/simulator/qsensordata_simulator_p.h b/src/plugins/sensors/simulator/qsensordata_simulator_p.h
index 13750b01..cec91caf 100644
--- a/src/plugins/sensors/simulator/qsensordata_simulator_p.h
+++ b/src/plugins/sensors/simulator/qsensordata_simulator_p.h
@@ -57,7 +57,7 @@
#include <QtCore/QMetaType>
#include <QtCore/QDateTime>
-QT_BEGIN_HEADER
+namespace QtMobility {
struct QAmbientLightReadingData
{
@@ -103,14 +103,13 @@ struct QProximityReadingData
void qt_registerSensorTypes();
+}
-Q_DECLARE_METATYPE(QAmbientLightReadingData)
-Q_DECLARE_METATYPE(QLightReadingData)
-Q_DECLARE_METATYPE(QAccelerometerReadingData)
-Q_DECLARE_METATYPE(QMagnetometerReadingData)
-Q_DECLARE_METATYPE(QCompassReadingData)
-Q_DECLARE_METATYPE(QProximityReadingData)
-
-QT_END_HEADER
+Q_DECLARE_METATYPE(QtMobility::QAmbientLightReadingData)
+Q_DECLARE_METATYPE(QtMobility::QLightReadingData)
+Q_DECLARE_METATYPE(QtMobility::QAccelerometerReadingData)
+Q_DECLARE_METATYPE(QtMobility::QMagnetometerReadingData)
+Q_DECLARE_METATYPE(QtMobility::QCompassReadingData)
+Q_DECLARE_METATYPE(QtMobility::QProximityReadingData)
#endif // QSENSORDATA_SIMULATOR_P_H
diff --git a/src/plugins/sensors/simulator/simulator.pri b/src/plugins/sensors/simulator/simulator.pri
deleted file mode 100644
index bdce2b4a..00000000
--- a/src/plugins/sensors/simulator/simulator.pri
+++ /dev/null
@@ -1,19 +0,0 @@
-HEADERS += simulatorcommon.h\
- simulatoraccelerometer.h\
- simulatorambientlightsensor.h\
- simulatorlightsensor.h\
- simulatorcompass.h\
- simulatorproximitysensor.h\
- simulatormagnetometer.h\
- qsensordata_simulator_p.h
-
-SOURCES += simulatorcommon.cpp\
- simulatoraccelerometer.cpp\
- simulatorambientlightsensor.cpp\
- simulatorlightsensor.cpp\
- simulatorcompass.cpp\
- simulatorproximitysensor.cpp\
- simulatormagnetometer.cpp\
- qsensordata_simulator.cpp\
- main.cpp
-
diff --git a/src/plugins/sensors/simulator/simulator.pro b/src/plugins/sensors/simulator/simulator.pro
index 18f515b1..62544ce0 100644
--- a/src/plugins/sensors/simulator/simulator.pro
+++ b/src/plugins/sensors/simulator/simulator.pro
@@ -1,19 +1,35 @@
load(qt_module)
-include(simulator.pri)
-
TARGET = qtsensors_simulator
load(qt_plugin)
DESTDIR = $$QT.sensors.plugins/sensors
-#TODO what is the simulator called in Qt 5?
-#qtAddLibrary(QtMobilitySimulator)
-
symbian:TARGET.EPOCALLOWDLLDATA = 1
-QT=core gui network sensors
+QT=core gui network sensors simulator
target.path += $$[QT_INSTALL_PLUGINS]/sensors
INSTALLS += target
+HEADERS += \
+ simulatorcommon.h\
+ simulatoraccelerometer.h\
+ simulatorambientlightsensor.h\
+ simulatorlightsensor.h\
+ simulatorcompass.h\
+ simulatorproximitysensor.h\
+ simulatormagnetometer.h\
+ qsensordata_simulator_p.h
+
+SOURCES += \
+ simulatorcommon.cpp\
+ simulatoraccelerometer.cpp\
+ simulatorambientlightsensor.cpp\
+ simulatorlightsensor.cpp\
+ simulatorcompass.cpp\
+ simulatorproximitysensor.cpp\
+ simulatormagnetometer.cpp\
+ qsensordata_simulator.cpp\
+ main.cpp
+
diff --git a/src/plugins/sensors/simulator/simulatorambientlightsensor.cpp b/src/plugins/sensors/simulator/simulatorambientlightsensor.cpp
index a11fc540..b36257fa 100644
--- a/src/plugins/sensors/simulator/simulatorambientlightsensor.cpp
+++ b/src/plugins/sensors/simulator/simulatorambientlightsensor.cpp
@@ -53,7 +53,7 @@ SimulatorAmbientLightSensor::SimulatorAmbientLightSensor(QSensor *sensor)
void SimulatorAmbientLightSensor::poll()
{
- QAmbientLightReadingData data = get_qtAmbientLightData();
+ QtMobility::QAmbientLightReadingData data = get_qtAmbientLightData();
quint64 newTimestamp;
if (!data.timestamp.isValid())
newTimestamp = QDateTime::currentDateTime().toTime_t();
diff --git a/src/plugins/sensors/simulator/simulatorcommon.cpp b/src/plugins/sensors/simulator/simulatorcommon.cpp
index 3b5753f5..6fb84204 100644
--- a/src/plugins/sensors/simulator/simulatorcommon.cpp
+++ b/src/plugins/sensors/simulator/simulatorcommon.cpp
@@ -41,92 +41,70 @@
#include "simulatorcommon.h"
#include "qsensordata_simulator_p.h"
-#include "mobilitysimulatorglobal.h"
-#include <mobilityconnection_p.h>
-
-#include <private/qsimulatordata_p.h>
-
-#include <QtNetwork/QLocalSocket>
-
-using namespace QtSimulatorPrivate;
-
-Q_GLOBAL_STATIC(QAmbientLightReadingData, qtAmbientLightData)
-Q_GLOBAL_STATIC(QLightReadingData, qtLightData)
-Q_GLOBAL_STATIC(QAccelerometerReadingData, qtAccelerometerData)
-Q_GLOBAL_STATIC(QMagnetometerReadingData, qtMagnetometerData)
-Q_GLOBAL_STATIC(QCompassReadingData, qtCompassData)
-Q_GLOBAL_STATIC(QProximityReadingData, qtProximityData)
-
-namespace Simulator
+#include <QtSimulator/QtSimulator>
+#include <QDebug>
+
+using namespace Simulator;
+
+Q_GLOBAL_STATIC(QtMobility::QAmbientLightReadingData, qtAmbientLightData)
+Q_GLOBAL_STATIC(QtMobility::QLightReadingData, qtLightData)
+Q_GLOBAL_STATIC(QtMobility::QAccelerometerReadingData, qtAccelerometerData)
+Q_GLOBAL_STATIC(QtMobility::QMagnetometerReadingData, qtMagnetometerData)
+Q_GLOBAL_STATIC(QtMobility::QCompassReadingData, qtCompassData)
+Q_GLOBAL_STATIC(QtMobility::QProximityReadingData, qtProximityData)
+Q_GLOBAL_STATIC(SensorsConnection, sensorsConnection)
+
+SensorsConnection::SensorsConnection(QObject *parent)
+ : QObject(parent)
+ , mInitialDataSent(false)
{
- SensorsConnection::SensorsConnection(MobilityConnection *mobilityCon)
- : QObject(mobilityCon)
- , mConnection(mobilityCon)
- , mInitialDataReceived(false)
- {
- qt_registerSensorTypes();
- mobilityCon->addMessageHandler(this);
- }
-
-
- void SensorsConnection::getInitialData()
- {
- RemoteMetacall<void>::call(mConnection->sendSocket(), NoSync, "setRequestsSensors");
-
- while (!mInitialDataReceived) {
- mConnection->receiveSocket()->waitForReadyRead(100);
- mConnection->onReadyRead();
- }
- }
-
- void SensorsConnection::initialSensorsDataSent()
- {
- mInitialDataReceived = true;
- }
-
- void SensorsConnection::setAmbientLightData(const QAmbientLightReadingData &data)
- {
- *qtAmbientLightData() = data;
- }
+ QtMobility::qt_registerSensorTypes();
+ mConnection = new Connection(Connection::Client, "QtSimulator_Mobility_ServerName1.3.0.0", 0xbeef+1, Version(1,0,0,0), this);
+ mWorker = mConnection->connectToServer(Connection::simulatorHostName(true), 0xbeef+1);
+ if (!mWorker)
+ qFatal("Could not connect to server");
+ mWorker->addReceiver(this);
+ mWorker->call("setRequestsSensors");
+}
- void SensorsConnection::setLightData(const QLightReadingData &data)
- {
- *qtLightData() = data;
- }
+SensorsConnection::~SensorsConnection()
+{
+ delete mWorker;
+}
- void SensorsConnection::setAccelerometerData(const QAccelerometerReadingData &data)
- {
- *qtAccelerometerData() = data;
- }
+void SensorsConnection::setAmbientLightData(const QtMobility::QAmbientLightReadingData &data)
+{
+ *qtAmbientLightData() = data;
+}
- void SensorsConnection::setMagnetometerData(const QMagnetometerReadingData &data)
- {
- *qtMagnetometerData() = data;
- }
+void SensorsConnection::setLightData(const QtMobility::QLightReadingData &data)
+{
+ *qtLightData() = data;
+}
- void SensorsConnection::setCompassData(const QCompassReadingData &data)
- {
- *qtCompassData() = data;
- }
+void SensorsConnection::setAccelerometerData(const QtMobility::QAccelerometerReadingData &data)
+{
+ *qtAccelerometerData() = data;
+}
- void SensorsConnection::setProximityData(const QProximityReadingData &data)
- {
- *qtProximityData() = data;
- }
-} // namespace
+void SensorsConnection::setMagnetometerData(const QtMobility::QMagnetometerReadingData &data)
+{
+ *qtMagnetometerData() = data;
+}
-void ensureSimulatorConnection()
+void SensorsConnection::setCompassData(const QtMobility::QCompassReadingData &data)
{
- using namespace Simulator;
+ *qtCompassData() = data;
+}
- static bool connected = false;
- if (connected)
- return;
+void SensorsConnection::setProximityData(const QtMobility::QProximityReadingData &data)
+{
+ *qtProximityData() = data;
+}
- connected = true;
- MobilityConnection *connection = MobilityConnection::instance();
- SensorsConnection *sensorsConnection = new SensorsConnection(connection);
- sensorsConnection->getInitialData();
+void SensorsConnection::initialSensorsDataSent()
+{
+ mInitialDataSent = true;
}
SimulatorCommon::SimulatorCommon(QSensor *sensor)
@@ -135,7 +113,7 @@ SimulatorCommon::SimulatorCommon(QSensor *sensor)
{
addDataRate(1, 100);
sensor->setDataRate(20);
- ensureSimulatorConnection();
+ (void)sensorsConnection(); // Ensure this exists
}
void SimulatorCommon::start()
@@ -164,37 +142,37 @@ void SimulatorCommon::stop()
void SimulatorCommon::timerEvent(QTimerEvent * /*event*/)
{
+ if (!sensorsConnection()->safe()) return; // wait until it's safe to read the data
poll();
}
-QAccelerometerReadingData get_qtAccelerometerData()
+QtMobility::QAccelerometerReadingData get_qtAccelerometerData()
{
return *qtAccelerometerData();
}
-QMagnetometerReadingData get_qtMagnetometerData()
+QtMobility::QMagnetometerReadingData get_qtMagnetometerData()
{
return *qtMagnetometerData();
}
-QAmbientLightReadingData get_qtAmbientLightData()
+QtMobility::QAmbientLightReadingData get_qtAmbientLightData()
{
return *qtAmbientLightData();
}
-QLightReadingData get_qtLightData()
+QtMobility::QLightReadingData get_qtLightData()
{
return *qtLightData();
}
-QCompassReadingData get_qtCompassData()
+QtMobility::QCompassReadingData get_qtCompassData()
{
return *qtCompassData();
}
-QProximityReadingData get_qtProximityData()
+QtMobility::QProximityReadingData get_qtProximityData()
{
return *qtProximityData();
}
-#include "moc_simulatorcommon.cpp"
diff --git a/src/plugins/sensors/simulator/simulatorcommon.h b/src/plugins/sensors/simulator/simulatorcommon.h
index f5ee714c..d9fad5a3 100644
--- a/src/plugins/sensors/simulator/simulatorcommon.h
+++ b/src/plugins/sensors/simulator/simulatorcommon.h
@@ -45,37 +45,37 @@
#include <qsensorbackend.h>
#include "qsensordata_simulator_p.h"
-QT_BEGIN_HEADER
-
class QTimer;
namespace Simulator
{
- class MobilityConnection;
+ class Connection;
+ class ConnectionWorker;
+}
- class SensorsConnection : public QObject
- {
- Q_OBJECT
- public:
- SensorsConnection(MobilityConnection *mobilityCon);
- virtual ~SensorsConnection() {}
+class SensorsConnection : public QObject
+{
+ Q_OBJECT
+public:
+ explicit SensorsConnection(QObject *parent = 0);
+ virtual ~SensorsConnection();
- void getInitialData();
+ bool safe() const { return mInitialDataSent; }
- private slots:
- void setAmbientLightData(const QtMobility::QAmbientLightReadingData &);
- void setLightData(const QtMobility::QLightReadingData &);
- void setAccelerometerData(const QtMobility::QAccelerometerReadingData &);
- void setMagnetometerData(const QtMobility::QMagnetometerReadingData &);
- void setCompassData(const QtMobility::QCompassReadingData &);
- void setProximityData(const QtMobility::QProximityReadingData &);
- void initialSensorsDataSent();
+public slots:
+ void setAmbientLightData(const QtMobility::QAmbientLightReadingData &);
+ void setLightData(const QtMobility::QLightReadingData &);
+ void setAccelerometerData(const QtMobility::QAccelerometerReadingData &);
+ void setMagnetometerData(const QtMobility::QMagnetometerReadingData &);
+ void setCompassData(const QtMobility::QCompassReadingData &);
+ void setProximityData(const QtMobility::QProximityReadingData &);
+ void initialSensorsDataSent();
- private:
- MobilityConnection *mConnection;
- bool mInitialDataReceived;
- };
-} // end namespace Simulator
+private:
+ Simulator::Connection *mConnection;
+ Simulator::ConnectionWorker *mWorker;
+ bool mInitialDataSent;
+};
class SimulatorCommon : public QSensorBackend
{
@@ -91,14 +91,12 @@ private:
int m_timerid;
};
-QAccelerometerReadingData get_qtAccelerometerData();
-QMagnetometerReadingData get_qtMagnetometerData();
-QAmbientLightReadingData get_qtAmbientLightData();
-QLightReadingData get_qtLightData();
-QCompassReadingData get_qtCompassData();
-QProximityReadingData get_qtProximityData();
-
-QT_END_HEADER
+QtMobility::QAccelerometerReadingData get_qtAccelerometerData();
+QtMobility::QMagnetometerReadingData get_qtMagnetometerData();
+QtMobility::QAmbientLightReadingData get_qtAmbientLightData();
+QtMobility::QLightReadingData get_qtLightData();
+QtMobility::QCompassReadingData get_qtCompassData();
+QtMobility::QProximityReadingData get_qtProximityData();
#endif
diff --git a/src/plugins/sensors/simulator/simulatorlightsensor.cpp b/src/plugins/sensors/simulator/simulatorlightsensor.cpp
index dd6d96f5..d9f4ae04 100644
--- a/src/plugins/sensors/simulator/simulatorlightsensor.cpp
+++ b/src/plugins/sensors/simulator/simulatorlightsensor.cpp
@@ -53,7 +53,7 @@ SimulatorLightSensor::SimulatorLightSensor(QSensor *sensor)
void SimulatorLightSensor::poll()
{
- QLightReadingData data = get_qtLightData();
+ QtMobility::QLightReadingData data = get_qtLightData();
quint64 newTimestamp;
if (!data.timestamp.isValid())
newTimestamp = QDateTime::currentDateTime().toTime_t();