summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-10-24 12:56:51 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-10-24 12:56:51 +0200
commit7e515c17df4e145c804f5d53458b8ac8845dcbb6 (patch)
treec6862d33216c87be3e816e9b7fd6d34ed61730b8
parentb9342258fdbd90783f035285db14fa4825d717bc (diff)
parent4682c6c1fddbf364d428d5b1b1b052e7781905e0 (diff)
downloadqtsensors-7e515c17df4e145c804f5d53458b8ac8845dcbb6.tar.gz
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I78c9a02406695ce145b93a46cfa60961e40fc2dc
-rw-r--r--src/imports/sensors/qmldir1
-rw-r--r--src/plugins/sensors/sensorfw/main.cpp6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp12
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwaccelerometer.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwals.cpp9
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwals.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwcompass.cpp9
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwcompass.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp10
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwgyroscope.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp11
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp9
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwlightsensor.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp11
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwmagnetometer.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp10
-rw-r--r--src/plugins/sensors/sensorfw/sensorfworientationsensor.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp14
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwproximitysensor.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp10
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwrotationsensor.h6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp49
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwsensorbase.h17
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp13
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwtapsensor.h6
26 files changed, 183 insertions, 74 deletions
diff --git a/src/imports/sensors/qmldir b/src/imports/sensors/qmldir
index d4648a8..8ce4a5a 100644
--- a/src/imports/sensors/qmldir
+++ b/src/imports/sensors/qmldir
@@ -1,3 +1,4 @@
module QtSensors
plugin declarative_sensors
+classname QtSensorsDeclarativeModule
typeinfo plugins.qmltypes
diff --git a/src/plugins/sensors/sensorfw/main.cpp b/src/plugins/sensors/sensorfw/main.cpp
index f12a193..89e012c 100644
--- a/src/plugins/sensors/sensorfw/main.cpp
+++ b/src/plugins/sensors/sensorfw/main.cpp
@@ -51,9 +51,9 @@
#include "sensorfwgyroscope.h"
#include "sensorfwlightsensor.h"
-#include <qsensorplugin.h>
-#include <qsensorbackend.h>
-#include <qsensormanager.h>
+#include <QtSensors/qsensorplugin.h>
+#include <QtSensors/qsensorbackend.h>
+#include <QtSensors/qsensormanager.h>
#include <QDebug>
#include <QSettings>
diff --git a/src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp b/src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp
index 4c50faa..5f1efb2 100644
--- a/src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp
@@ -42,12 +42,12 @@
#include "sensorfwaccelerometer.h"
char const * const sensorfwaccelerometer::id("sensorfw.accelerometer");
-bool sensorfwaccelerometer::m_initDone = false;
sensorfwaccelerometer::sensorfwaccelerometer(QSensor *sensor)
- : SensorfwSensorBase(sensor)
+ : SensorfwSensorBase(sensor),
+ m_initDone(false)
{
- initSensor<AccelerometerSensorChannelInterface>(m_initDone);
+ init();
setDescription(QLatin1String("x, y, and z axes accelerations in m/s^2"));
setRanges(GRAVITY_EARTH_THOUSANDTH);
setReading<QAccelerometerReading>(&m_reading);
@@ -90,3 +90,9 @@ qreal sensorfwaccelerometer::correctionFactor() const
{
return GRAVITY_EARTH_THOUSANDTH;
}
+
+void sensorfwaccelerometer::init()
+{
+ m_initDone = false;
+ initSensor<AccelerometerSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwaccelerometer.h b/src/plugins/sensors/sensorfw/sensorfwaccelerometer.h
index 1c94aae..25ef144 100644
--- a/src/plugins/sensors/sensorfw/sensorfwaccelerometer.h
+++ b/src/plugins/sensors/sensorfw/sensorfwaccelerometer.h
@@ -42,7 +42,7 @@
#define SENSORFWACCELEROMETER_H
#include "sensorfwsensorbase.h"
-#include <qaccelerometer.h>
+#include <QtSensors/qaccelerometer.h>
#include <accelerometersensor_i.h>
#include <datatypes/xyz.h>
@@ -60,11 +60,11 @@ protected:
virtual bool doConnect();
virtual QString sensorName() const;
virtual qreal correctionFactor() const;
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QAccelerometerReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
private slots:
void slotDataAvailable(const XYZ& data);
diff --git a/src/plugins/sensors/sensorfw/sensorfwals.cpp b/src/plugins/sensors/sensorfw/sensorfwals.cpp
index 839c537..43bab0a 100644
--- a/src/plugins/sensors/sensorfw/sensorfwals.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwals.cpp
@@ -43,12 +43,12 @@
#include "sensorfwals.h"
char const * const Sensorfwals::id("sensorfw.als");
-bool Sensorfwals::m_initDone = false;
Sensorfwals::Sensorfwals(QSensor *sensor)
: SensorfwSensorBase(sensor)
+ , m_initDone(false)
{
- initSensor<ALSSensorChannelInterface>(m_initDone);
+ init();
setReading<QAmbientLightReading>(&m_reading);
// metadata
setDescription(QLatin1String("ambient light intensity given as 5 pre-defined levels"));
@@ -110,3 +110,8 @@ QAmbientLightReading::LightLevel Sensorfwals::getLightLevel(int lux)
}
}
+void Sensorfwals::init()
+{
+ m_initDone = false;
+ initSensor<ALSSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwals.h b/src/plugins/sensors/sensorfw/sensorfwals.h
index 63d6443..f0b91a9 100644
--- a/src/plugins/sensors/sensorfw/sensorfwals.h
+++ b/src/plugins/sensors/sensorfw/sensorfwals.h
@@ -43,7 +43,7 @@
#define SENSORFWALS_H
#include "sensorfwsensorbase.h"
-#include <qambientlightsensor.h>
+#include <QtSensors/qambientlightsensor.h>
#include <alssensor_i.h>
@@ -60,11 +60,11 @@ protected:
virtual bool doConnect();
virtual QString sensorName() const;
virtual void start();
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QAmbientLightReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
private slots:
void slotDataAvailable(const Unsigned& data);
static QAmbientLightReading::LightLevel getLightLevel(int lux);
diff --git a/src/plugins/sensors/sensorfw/sensorfwcompass.cpp b/src/plugins/sensors/sensorfw/sensorfwcompass.cpp
index 1fd8441..2cce489 100644
--- a/src/plugins/sensors/sensorfw/sensorfwcompass.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwcompass.cpp
@@ -43,12 +43,12 @@
#include "sensorfwcompass.h"
char const * const SensorfwCompass::id("sensorfw.compass");
-bool SensorfwCompass::m_initDone = false;
SensorfwCompass::SensorfwCompass(QSensor *sensor)
: SensorfwSensorBase(sensor)
+ , m_initDone(false)
{
- initSensor<CompassSensorChannelInterface>(m_initDone);
+ init();
setReading<QCompassReading>(&m_reading);
sensor->setDataRate(50);//set a default rate
}
@@ -79,3 +79,8 @@ QString SensorfwCompass::sensorName() const
return "compasssensor";
}
+void SensorfwCompass::init()
+{
+ m_initDone = false;
+ initSensor<CompassSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwcompass.h b/src/plugins/sensors/sensorfw/sensorfwcompass.h
index 7cc5c43..1bb7e6e 100644
--- a/src/plugins/sensors/sensorfw/sensorfwcompass.h
+++ b/src/plugins/sensors/sensorfw/sensorfwcompass.h
@@ -42,7 +42,7 @@
#define SENSORFWCOMPASS_H
#include "sensorfwsensorbase.h"
-#include <qcompass.h>
+#include <QtSensors/qcompass.h>
#include <compasssensor_i.h>
#include <datatypes/compass.h>
@@ -59,10 +59,10 @@ public:
protected:
virtual bool doConnect();
virtual QString sensorName() const;
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QCompassReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
private slots:
void slotDataAvailable(const Compass& data);
};
diff --git a/src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp b/src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp
index e29b77e..6672040 100644
--- a/src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp
@@ -43,12 +43,12 @@
char const * const SensorfwGyroscope::id("sensorfw.gyroscope");
const float SensorfwGyroscope::MILLI = 0.001;
-bool SensorfwGyroscope::m_initDone = false;
SensorfwGyroscope::SensorfwGyroscope(QSensor *sensor)
: SensorfwSensorBase(sensor)
+ , m_initDone(false)
{
- initSensor<GyroscopeSensorChannelInterface>(m_initDone);
+ init();
setDescription(QLatin1String("angular velocities around x, y, and z axis in degrees per second"));
setRanges(MILLI);
setReading<QGyroscopeReading>(&m_reading);
@@ -89,3 +89,9 @@ qreal SensorfwGyroscope::correctionFactor() const
{
return MILLI;
}
+
+void SensorfwGyroscope::init()
+{
+ m_initDone = false;
+ initSensor<GyroscopeSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwgyroscope.h b/src/plugins/sensors/sensorfw/sensorfwgyroscope.h
index e982c80..30b9579 100644
--- a/src/plugins/sensors/sensorfw/sensorfwgyroscope.h
+++ b/src/plugins/sensors/sensorfw/sensorfwgyroscope.h
@@ -44,7 +44,7 @@
#define SENSORFWGYROSCOPE_H
#include "sensorfwsensorbase.h"
-#include <qgyroscope.h>
+#include <QtSensors/qgyroscope.h>
#include <datatypes/xyz.h>
#include <gyroscopesensor_i.h>
@@ -62,11 +62,11 @@ protected:
virtual bool doConnect();
virtual QString sensorName() const;
virtual qreal correctionFactor() const;
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QGyroscopeReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
static const float MILLI;
private slots:
void slotDataAvailable(const XYZ& data);
diff --git a/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp b/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp
index a2e2349..0714e5f 100644
--- a/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp
@@ -43,14 +43,12 @@
#define RM680_PS "/dev/bh1770glc_ps"
char const * const SensorfwIrProximitySensor::id("sensorfw.irproximitysensor");
-bool SensorfwIrProximitySensor::m_initDone = false;
-
-
SensorfwIrProximitySensor::SensorfwIrProximitySensor(QSensor *sensor)
: SensorfwSensorBase(sensor)
+ , m_initDone(false)
{
- initSensor<ProximitySensorChannelInterface>(m_initDone);
+ init();
setReading<QIRProximityReading>(&m_reading);
setDescription(QLatin1String("reflectance as percentage (%) of maximum"));
addOutputRange(0, 100, 1);
@@ -80,3 +78,8 @@ QString SensorfwIrProximitySensor::sensorName() const
}
+void SensorfwIrProximitySensor::init()
+{
+ m_initDone = false;
+ initSensor<ProximitySensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h b/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h
index c729f59..fce0234 100644
--- a/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h
+++ b/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h
@@ -43,7 +43,7 @@
#define SENSORFWIRPROXIMITYSENSOR_H
#include "sensorfwsensorbase.h"
-#include <qirproximitysensor.h>
+#include <QtSensors/qirproximitysensor.h>
#include <proximitysensor_i.h>
@@ -58,10 +58,10 @@ public:
protected:
virtual bool doConnect();
virtual QString sensorName() const;
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QIRProximityReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
int rangeMax;
private slots:
diff --git a/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp b/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp
index 232d4e8..5f2a0da 100644
--- a/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp
@@ -42,12 +42,12 @@
#include "sensorfwlightsensor.h"
char const * const SensorfwLightSensor::id("sensorfw.lightsensor");
-bool SensorfwLightSensor::m_initDone = false;
SensorfwLightSensor::SensorfwLightSensor(QSensor *sensor)
: SensorfwSensorBase(sensor)
+ , m_initDone(false)
{
- initSensor<ALSSensorChannelInterface>(m_initDone);
+ init();
setReading<QLightReading>(&m_reading);
sensor->setDataRate(10);//set a default rate
}
@@ -70,3 +70,8 @@ QString SensorfwLightSensor::sensorName() const
{
return "alssensor";
}
+void SensorfwLightSensor::init()
+{
+ m_initDone = false;
+ initSensor<ALSSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwlightsensor.h b/src/plugins/sensors/sensorfw/sensorfwlightsensor.h
index 96df633..f9394c3 100644
--- a/src/plugins/sensors/sensorfw/sensorfwlightsensor.h
+++ b/src/plugins/sensors/sensorfw/sensorfwlightsensor.h
@@ -44,7 +44,7 @@
#define SENSORFWLIGHTSENSOR_H
#include "sensorfwsensorbase.h"
-#include <qlightsensor.h>
+#include <QtSensors/qlightsensor.h>
#include <alssensor_i.h>
@@ -59,10 +59,10 @@ public:
protected:
virtual bool doConnect();
virtual QString sensorName() const;
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QLightReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
private slots:
void slotDataAvailable(const Unsigned& data);
};
diff --git a/src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp b/src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp
index e4afdd3..cc49675 100644
--- a/src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp
@@ -40,18 +40,17 @@
****************************************************************************/
#include "sensorfwmagnetometer.h"
-#include <QSensor>
char const * const SensorfwMagnetometer::id("sensorfw.magnetometer");
-bool SensorfwMagnetometer::m_initDone = false;
const float SensorfwMagnetometer::NANO = 0.000000001;
SensorfwMagnetometer::SensorfwMagnetometer(QSensor *sensor)
: SensorfwSensorBase(sensor)
+ , m_initDone(false)
{
- initSensor<MagnetometerSensorChannelInterface>(m_initDone);
+ init();
setDescription(QLatin1String("magnetic flux density in teslas (T)"));
setRanges(NANO);
setReading<QMagnetometerReading>(&m_reading);
@@ -103,3 +102,9 @@ qreal SensorfwMagnetometer::correctionFactor() const
{
return SensorfwMagnetometer::NANO;
}
+
+void SensorfwMagnetometer::init()
+{
+ m_initDone = false;
+ initSensor<MagnetometerSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwmagnetometer.h b/src/plugins/sensors/sensorfw/sensorfwmagnetometer.h
index 22d81a8..d86bd04 100644
--- a/src/plugins/sensors/sensorfw/sensorfwmagnetometer.h
+++ b/src/plugins/sensors/sensorfw/sensorfwmagnetometer.h
@@ -43,7 +43,7 @@
#define SENSORFWMAGNETOMETER_H
#include "sensorfwsensorbase.h"
-#include <qmagnetometer.h>
+#include <QtSensors/qmagnetometer.h>
#include <magnetometersensor_i.h>
#include <datatypes/magneticfield.h>
@@ -62,12 +62,12 @@ protected:
virtual void start();
virtual QString sensorName() const;
virtual qreal correctionFactor() const;
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
static const float NANO;
QMagnetometerReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
bool m_isGeoMagnetometer;
private slots:
diff --git a/src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp b/src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp
index 6211a45..149f693 100644
--- a/src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp
@@ -44,12 +44,12 @@
#include <datatypes/posedata.h>
char const * const SensorfwOrientationSensor::id("sensorfw.orientationsensor");
-bool SensorfwOrientationSensor::m_initDone = false;
SensorfwOrientationSensor::SensorfwOrientationSensor(QSensor *sensor)
: SensorfwSensorBase(sensor)
+ , m_initDone(false)
{
- initSensor<OrientationSensorChannelInterface>(m_initDone);
+ init();
setReading<QOrientationReading>(&m_reading);
sensor->setDataRate(10);//set a default rate
}
@@ -97,3 +97,9 @@ QOrientationReading::Orientation SensorfwOrientationSensor::getOrientation(int o
}
return QOrientationReading::Undefined;
}
+
+void SensorfwOrientationSensor::init()
+{
+ m_initDone = false;
+ initSensor<OrientationSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfworientationsensor.h b/src/plugins/sensors/sensorfw/sensorfworientationsensor.h
index 7c2ecdf..139761a 100644
--- a/src/plugins/sensors/sensorfw/sensorfworientationsensor.h
+++ b/src/plugins/sensors/sensorfw/sensorfworientationsensor.h
@@ -43,7 +43,7 @@
#define SENSORFWORIENTATIONSENSOR_H
#include "sensorfwsensorbase.h"
-#include <qorientationsensor.h>
+#include <QtSensors/qorientationsensor.h>
#include <orientationsensor_i.h>
@@ -60,11 +60,11 @@ protected:
virtual bool doConnect();
virtual QString sensorName() const;
virtual void start();
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QOrientationReading m_reading;
static QOrientationReading::Orientation getOrientation(int orientation);
- static bool m_initDone;
+ bool m_initDone;
private slots:
void slotDataAvailable(const Unsigned& orientation);
diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
index 1f4c2b5..eaf7232 100644
--- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
@@ -42,12 +42,14 @@
#include "sensorfwproximitysensor.h"
char const * const SensorfwProximitySensor::id("sensorfw.proximitysensor");
-bool SensorfwProximitySensor::m_initDone = false;
+//bool SensorfwProximitySensor::m_initDone = false;
SensorfwProximitySensor::SensorfwProximitySensor(QSensor *sensor)
- : SensorfwSensorBase(sensor), m_exClose(false)
+ : SensorfwSensorBase(sensor),
+ m_exClose(false)
+ , m_initDone(false)
{
- initSensor<ProximitySensorChannelInterface>(m_initDone);
+ init();
setReading<QProximityReading>(&m_reading);
addDataRate(10,10); //TODO: fix this when we know better
sensor->setDataRate(10);//set a default rate
@@ -86,3 +88,9 @@ QString SensorfwProximitySensor::sensorName() const
{
return "proximitysensor";
}
+
+void SensorfwProximitySensor::init()
+{
+ m_initDone = false;
+ initSensor<ProximitySensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
index 404e66a..6558447 100644
--- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
+++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
@@ -43,7 +43,7 @@
#define SENSORFWPROXIMITYSENSOR_H
#include "sensorfwsensorbase.h"
-#include <qproximitysensor.h>
+#include <QtSensors/qproximitysensor.h>
#include <proximitysensor_i.h>
@@ -60,11 +60,11 @@ protected:
virtual bool doConnect();
virtual QString sensorName() const;
virtual void start();
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QProximityReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
bool m_exClose;
private slots:
diff --git a/src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp b/src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp
index 1971e92..dbeb3b6 100644
--- a/src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp
@@ -42,12 +42,12 @@
#include "sensorfwrotationsensor.h"
char const * const SensorfwRotationSensor::id("sensorfw.rotationsensor");
-bool SensorfwRotationSensor::m_initDone = false;
SensorfwRotationSensor::SensorfwRotationSensor(QSensor *sensor)
: SensorfwSensorBase(sensor)
+ , m_initDone(false)
{
- initSensor<RotationSensorChannelInterface>(m_initDone);
+ init();
setReading<QRotationReading>(&m_reading);
QRotationSensor *const rotationSensor = qobject_cast<QRotationSensor *>(sensor);
if (rotationSensor)
@@ -80,3 +80,9 @@ QString SensorfwRotationSensor::sensorName() const
{
return "rotationsensor";
}
+
+void SensorfwRotationSensor::init()
+{
+ m_initDone = false;
+ initSensor<RotationSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwrotationsensor.h b/src/plugins/sensors/sensorfw/sensorfwrotationsensor.h
index d6b056b..1f237cf 100644
--- a/src/plugins/sensors/sensorfw/sensorfwrotationsensor.h
+++ b/src/plugins/sensors/sensorfw/sensorfwrotationsensor.h
@@ -44,7 +44,7 @@
#define SENSORFWROTATION_H
#include "sensorfwsensorbase.h"
-#include <qrotationsensor.h>
+#include <QtSensors/qrotationsensor.h>
#include <rotationsensor_i.h>
#include <datatypes/xyz.h>
@@ -61,10 +61,10 @@ public:
protected:
virtual bool doConnect();
virtual QString sensorName() const;
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QRotationReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
private slots:
void slotDataAvailable(const XYZ& data);
diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp
index fde2b97..247ee37 100644
--- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp
@@ -53,10 +53,29 @@ QStringList SensorfwSensorBase::m_bufferingSensors = QStringList()
<<"sensorfw.gyroscope"<<"sensorfw.rotationsensor";
SensorfwSensorBase::SensorfwSensorBase(QSensor *sensor)
- : QSensorBackend(sensor), m_sensorInterface(0), m_bufferSize(-1), m_prevOutputRange(0), m_efficientBufferSize(1), m_maxBufferSize(1)
+ : QSensorBackend(sensor),
+ m_sensorInterface(0),
+ m_bufferSize(-1),
+ m_prevOutputRange(0),
+ m_efficientBufferSize(1),
+ m_maxBufferSize(1),
+ m_available(false),
+ running(false)
+
{
- if (!m_remoteSensorManager)
- m_remoteSensorManager = &SensorManagerInterface::instance();
+ watcher = new QDBusServiceWatcher("com.nokia.SensorService",QDBusConnection::systemBus(),
+ QDBusServiceWatcher::WatchForRegistration |
+ QDBusServiceWatcher::WatchForUnregistration, this);
+
+ connect(watcher, SIGNAL(serviceRegistered(QString)),
+ this, SLOT(connectToSensord(QString)));
+ connect(watcher, SIGNAL(serviceUnregistered(QString)),
+ this, SLOT(sensordUnregistered(QString)));
+
+
+ m_available = QDBusConnection::systemBus().interface()->isServiceRegistered("com.nokia.SensorService");
+ if (m_available)
+ connectToSensord();
}
SensorfwSensorBase::~SensorfwSensorBase()
@@ -109,7 +128,10 @@ void SensorfwSensorBase::start()
doConnectAfterCheck();
int returnCode = m_sensorInterface->start().error().type();
- if (returnCode == 0) return;
+ if (returnCode == 0) {
+ running = true;
+ return;
+ }
qWarning() << "m_sensorInterface did not start, error code:" << returnCode;
}
sensorStopped();
@@ -117,7 +139,9 @@ void SensorfwSensorBase::start()
void SensorfwSensorBase::stop()
{
- if (m_sensorInterface) m_sensorInterface->stop();
+ if (m_sensorInterface)
+ m_sensorInterface->stop();
+ running = false;
}
void SensorfwSensorBase::setRanges(qreal correctionFactor)
@@ -142,6 +166,7 @@ bool SensorfwSensorBase::doConnectAfterCheck()
// buffer size
int size = bufferSize();
+
if (size == m_bufferSize) return true;
if (m_bufferingSensors.contains(sensor()->identifier()))
@@ -186,3 +211,17 @@ qreal SensorfwSensorBase::correctionFactor() const
return 1;
}
+void SensorfwSensorBase::connectToSensord()
+{
+ m_remoteSensorManager = &SensorManagerInterface::instance();
+ if (running) {
+ stop();
+ start();
+ }
+}
+
+void SensorfwSensorBase::sensordUnregistered()
+{
+ m_bufferSize = -1;
+}
+
diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h
index 1c2aa0e..2fc8238 100644
--- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h
+++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h
@@ -43,17 +43,18 @@
#ifndef SENSORFWSENSORBASE_H
#define SENSORFWSENSORBASE_H
-#include <qsensorbackend.h>
+#include <QtSensors/qsensorbackend.h>
#include <sensormanagerinterface.h>
#include <abstractsensor_i.h>
-#include <QAmbientLightSensor>
-#include <QIRProximitySensor>
-#include <QTapSensor>
-#include <QProximitySensor>
+#include <QtSensors/QAmbientLightSensor>
+#include <QtSensors/QIRProximitySensor>
+#include <QtSensors/QTapSensor>
+#include <QtSensors/QProximitySensor>
class SensorfwSensorBase : public QSensorBackend
{
+ Q_OBJECT
public:
SensorfwSensorBase(QSensor *sensor);
virtual ~SensorfwSensorBase();
@@ -170,6 +171,12 @@ private:
bool doConnectAfterCheck();
int m_efficientBufferSize, m_maxBufferSize;
+ QDBusServiceWatcher *watcher;
+ bool m_available;
+ bool running;
+private slots:
+ void connectToSensord();
+ void sensordUnregistered();
};
#endif
diff --git a/src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp b/src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp
index d5539de..f02dbe5 100644
--- a/src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp
@@ -42,12 +42,13 @@
#include "sensorfwtapsensor.h"
char const * const SensorfwTapSensor::id("sensorfw.tapsensor");
-bool SensorfwTapSensor::m_initDone = false;
SensorfwTapSensor::SensorfwTapSensor(QSensor *sensor)
- : SensorfwSensorBase(sensor), m_isOnceStarted(false)
+ : SensorfwSensorBase(sensor),
+ m_isOnceStarted(false)
+ , m_initDone(false)
{
- initSensor<TapSensorChannelInterface>(m_initDone);
+ init();
setReading<QTapReading>(&m_reading);
addOutputRange(QTapReading::Undefined, QTapReading::Z_Both, 1);
addDataRate(10,10); //TODO: fix this when we know better
@@ -111,3 +112,9 @@ QString SensorfwTapSensor::sensorName() const
{
return "tapsensor";
}
+
+void SensorfwTapSensor::init()
+{
+ m_initDone = false;
+ initSensor<TapSensorChannelInterface>(m_initDone);
+}
diff --git a/src/plugins/sensors/sensorfw/sensorfwtapsensor.h b/src/plugins/sensors/sensorfw/sensorfwtapsensor.h
index c577bde..c829876 100644
--- a/src/plugins/sensors/sensorfw/sensorfwtapsensor.h
+++ b/src/plugins/sensors/sensorfw/sensorfwtapsensor.h
@@ -42,7 +42,7 @@
#define SENSORFWTAPSENSOR_H
#include "sensorfwsensorbase.h"
-#include <qtapsensor.h>
+#include <QtSensors/qtapsensor.h>
#include <tapsensor_i.h>
#include <datatypes/tap.h>
@@ -60,10 +60,10 @@ protected:
virtual bool doConnect();
virtual void start();
virtual QString sensorName() const;
-
+ virtual void init() Q_DECL_OVERRIDE;
private:
QTapReading m_reading;
- static bool m_initDone;
+ bool m_initDone;
bool m_isDoubleTapSensor;
bool m_isOnceStarted;
private slots: