summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors/ios/iosmagnetometer.mm
diff options
context:
space:
mode:
authorSergio Ahumada <sahumada@blackberry.com>2014-06-14 21:58:57 +0200
committerSergio Ahumada <sahumada@blackberry.com>2014-06-14 21:58:57 +0200
commit2701763c003e9d2cc59a936491ab2fa8b6ff7f74 (patch)
tree0f4782ba43d8fa5a45e629ff20bf75542dd95deb /src/plugins/sensors/ios/iosmagnetometer.mm
parent12ac3b3b4645bf781b31ea713c111a73239c4885 (diff)
parent87b569ccc4df161e33d41f7a5f1f25eced6f65c3 (diff)
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts: .qmake.conf Change-Id: Ia804a9a975baea0f971c7bea004c5ce403d1adee
Diffstat (limited to 'src/plugins/sensors/ios/iosmagnetometer.mm')
-rw-r--r--src/plugins/sensors/ios/iosmagnetometer.mm6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/sensors/ios/iosmagnetometer.mm b/src/plugins/sensors/ios/iosmagnetometer.mm
index 95f85ae1..3cd8b10e 100644
--- a/src/plugins/sensors/ios/iosmagnetometer.mm
+++ b/src/plugins/sensors/ios/iosmagnetometer.mm
@@ -91,6 +91,9 @@ void IOSMagnetometer::timerEvent(QTimerEvent *)
CMDeviceMotion *deviceMotion = m_motionManager.deviceMotion;
CMCalibratedMagneticField calibratedField = deviceMotion.magneticField;
field = calibratedField.field;
+ // skip update if NaN
+ if (field.x != field.x || field.y != field.y || field.z != field.z)
+ return;
m_reading.setTimestamp(quint64(deviceMotion.timestamp * 1e6));
switch (calibratedField.accuracy) {
@@ -110,6 +113,9 @@ void IOSMagnetometer::timerEvent(QTimerEvent *)
} else {
CMMagnetometerData *data = m_motionManager.magnetometerData;
field = data.magneticField;
+ // skip update if NaN
+ if (field.x != field.x || field.y != field.y || field.z != field.z)
+ return;
m_reading.setTimestamp(quint64(data.timestamp * 1e6));
m_reading.setCalibrationLevel(1.0);
}