summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors/simulator/simulatorcommon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/sensors/simulator/simulatorcommon.cpp')
-rw-r--r--src/plugins/sensors/simulator/simulatorcommon.cpp146
1 files changed, 62 insertions, 84 deletions
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"