summaryrefslogtreecommitdiff
path: root/src/plugins/sensors/android/src/androidmagnetometer.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-12-12 09:48:39 +0100
committerLiang Qi <liang.qi@qt.io>2016-12-12 10:21:39 +0100
commit19d7ab8d277500e88baf3b23edd62dee4d5d9c46 (patch)
treeb5589d3797c263adc057e2583f9a94e5801b4e21 /src/plugins/sensors/android/src/androidmagnetometer.cpp
parent26446d7dc33c44e2f84fe95381f02aca87c1a537 (diff)
parent2c595c382c50a5632b14eda00d85a9b7fcb09b5d (diff)
downloadqtsensors-19d7ab8d277500e88baf3b23edd62dee4d5d9c46.tar.gz
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts: src/plugins/sensors/ios/ios.pro Change-Id: I8d9ca692713c8ba5d8c243371474b0e61630b05e
Diffstat (limited to 'src/plugins/sensors/android/src/androidmagnetometer.cpp')
-rw-r--r--src/plugins/sensors/android/src/androidmagnetometer.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/sensors/android/src/androidmagnetometer.cpp b/src/plugins/sensors/android/src/androidmagnetometer.cpp
index a729ddd..fcde4cf 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)