summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-08 03:00:18 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-08 03:00:18 +0200
commit5872f9c94848182ed962f649c67da304df08e53e (patch)
treef82827aa632bdc991c95cc3306a0dbebfde1862a
parent12bb2552599111aa2f7b6dc69bd0dd565edba710 (diff)
parent4ab2e8f086441c06a2dabbd4c62756fc0f029053 (diff)
Merge remote-tracking branch 'origin/5.11' into 5.12v5.12.0-alpha1
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp27
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwproximitysensor.h2
2 files changed, 21 insertions, 8 deletions
diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
index cdfe7bdb..8eb28705 100644
--- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
@@ -58,13 +58,25 @@ void SensorfwProximitySensor::start()
if (reinitIsNeeded)
init();
SensorfwSensorBase::start();
+ if (m_sensorInterface) {
+ Unsigned data(((ProximitySensorChannelInterface*)m_sensorInterface)->proximity());
+ // Note: Unlike reflectanceDataAvailable() signal, the query
+ // above returns only integer reflectance without the
+ // boolean withinProximity value.
+ bool close = (data.x() == 0);
+ m_exClose = close;
+ m_reading.setClose(close);
+ m_reading.setTimestamp(data.UnsignedData().timestamp_);
+ m_exClose = (int)m_reading.close();
+ newReadingAvailable();
+ }
}
-
-void SensorfwProximitySensor::slotDataAvailable(const Unsigned& data)
+void SensorfwProximitySensor::slotReflectanceDataAvailable(const Proximity& data)
{
- bool close = data.x()? true: false;
- if (!firstRun && close == m_exClose) return;
+ bool close = data.x() ? true : false;
+ if (!firstRun && close == m_exClose)
+ return;
m_reading.setClose(close);
m_reading.setTimestamp(data.UnsignedData().timestamp_);
newReadingAvailable();
@@ -75,9 +87,10 @@ void SensorfwProximitySensor::slotDataAvailable(const Unsigned& data)
bool SensorfwProximitySensor::doConnect()
{
- Q_ASSERT(m_sensorInterface);
- return (QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(Unsigned)),
- this, SLOT(slotDataAvailable(Unsigned))));
+ Q_ASSERT(qobject_cast<ProximitySensorChannelInterface*>(m_sensorInterface));
+ return QObject::connect(qobject_cast<ProximitySensorChannelInterface*>(m_sensorInterface),
+ &ProximitySensorChannelInterface::reflectanceDataAvailable,
+ this, &SensorfwProximitySensor::slotReflectanceDataAvailable);
}
diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
index d8b96640..992db84a 100644
--- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
+++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
@@ -67,7 +67,7 @@ private:
bool firstRun;
private slots:
- void slotDataAvailable(const Unsigned& data);
+ void slotReflectanceDataAvailable(const Proximity& data);
};
#endif