summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-11-26 12:55:49 +0100
committerLiang Qi <liang.qi@qt.io>2016-11-26 12:55:49 +0100
commit07bf3002fecd493a47bfb97420d3c3fbe6ee1458 (patch)
tree26cc548ef1e8e079b8fe85c7ae4624d4362c45b3 /src/plugins/sensors
parent5bf1bd00335d0c95c54de426a02da2a98257fedb (diff)
parent4c5873b43a2d7d80a33374d89b870a67e7900eca (diff)
Merge remote-tracking branch 'origin/5.7' into 5.8
Diffstat (limited to 'src/plugins/sensors')
-rw-r--r--src/plugins/sensors/android/src/androidmagnetometer.cpp16
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwals.cpp2
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp2
3 files changed, 17 insertions, 3 deletions
diff --git a/src/plugins/sensors/android/src/androidmagnetometer.cpp b/src/plugins/sensors/android/src/androidmagnetometer.cpp
index a729dddf..fcde4cf5 100644
--- a/src/plugins/sensors/android/src/androidmagnetometer.cpp
+++ b/src/plugins/sensors/android/src/androidmagnetometer.cpp
@@ -39,13 +39,27 @@
#include "androidmagnetometer.h"
+enum AndroidSensorStatus
+{
+ SENSOR_STATUS_UNRELIABLE = 0,
+ SENSOR_STATUS_ACCURACY_LOW = 1,
+ SENSOR_STATUS_ACCURACY_MEDIUM = 2,
+ SENSOR_STATUS_ACCURACY_HIGH = 3,
+};
+
AndroidMagnetometer::AndroidMagnetometer(AndroidSensors::AndroidSensorType type, QSensor *sensor)
:AndroidCommonSensor<QMagnetometerReading>(type, sensor)
{}
void AndroidMagnetometer::onAccuracyChanged(jint accuracy)
{
- m_reader.setCalibrationLevel(accuracy);
+ // Expected range is [0, 3]
+ if (accuracy < SENSOR_STATUS_UNRELIABLE || accuracy > SENSOR_STATUS_ACCURACY_HIGH) {
+ qWarning("Unable to get sensor accuracy. Unexpected value: %d", accuracy);
+ return;
+ }
+
+ m_reader.setCalibrationLevel(accuracy / qreal(3.0));
}
void AndroidMagnetometer::onSensorChanged(jlong timestamp, const jfloat *values, uint size)
diff --git a/src/plugins/sensors/sensorfw/sensorfwals.cpp b/src/plugins/sensors/sensorfw/sensorfwals.cpp
index 89462014..c43f7648 100644
--- a/src/plugins/sensors/sensorfw/sensorfwals.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwals.cpp
@@ -71,7 +71,7 @@ void Sensorfwals::start()
void Sensorfwals::slotDataAvailable(const Unsigned& data)
{
- QAmbientLightReading::LightLevel level = getLightLevel(data.x());
+ QAmbientLightReading::LightLevel level = getLightLevel(data.UnsignedData().value_);
if (level != m_reading.lightLevel()) {
m_reading.setLightLevel(level);
m_reading.setTimestamp(data.UnsignedData().timestamp_);
diff --git a/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp b/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp
index babbf9ef..9fc5bef3 100644
--- a/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp
@@ -52,7 +52,7 @@ SensorfwLightSensor::SensorfwLightSensor(QSensor *sensor)
void SensorfwLightSensor::slotDataAvailable(const Unsigned& data)
{
- m_reading.setLux(data.x());
+ m_reading.setLux(data.UnsignedData().value_);
m_reading.setTimestamp(data.UnsignedData().timestamp_);
newReadingAvailable();
}