diff options
Diffstat (limited to 'src/plugins/sensors')
-rw-r--r-- | src/plugins/sensors/android/src/androidmagnetometer.cpp | 16 | ||||
-rw-r--r-- | src/plugins/sensors/sensorfw/sensorfwals.cpp | 2 | ||||
-rw-r--r-- | src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp | 2 |
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(); } |