diff options
author | Liang Qi <liang.qi@qt.io> | 2016-11-26 12:55:49 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-11-26 12:55:49 +0100 |
commit | 07bf3002fecd493a47bfb97420d3c3fbe6ee1458 (patch) | |
tree | 26cc548ef1e8e079b8fe85c7ae4624d4362c45b3 /src | |
parent | 5bf1bd00335d0c95c54de426a02da2a98257fedb (diff) | |
parent | 4c5873b43a2d7d80a33374d89b870a67e7900eca (diff) | |
download | qtsensors-07bf3002fecd493a47bfb97420d3c3fbe6ee1458.tar.gz |
Merge remote-tracking branch 'origin/5.7' into 5.8
Change-Id: I912756c6bbecf7c55acd60d136ea6ce490118ebb
Diffstat (limited to 'src')
-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 | ||||
-rw-r--r-- | src/sensors/qmagnetometer.cpp | 10 |
4 files changed, 25 insertions, 5 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) diff --git a/src/plugins/sensors/sensorfw/sensorfwals.cpp b/src/plugins/sensors/sensorfw/sensorfwals.cpp index 8946201..c43f764 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 babbf9e..9fc5bef 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(); } diff --git a/src/sensors/qmagnetometer.cpp b/src/sensors/qmagnetometer.cpp index 1ddc217..0e28b5a 100644 --- a/src/sensors/qmagnetometer.cpp +++ b/src/sensors/qmagnetometer.cpp @@ -76,7 +76,13 @@ IMPLEMENT_READING(QMagnetometerReading) The accuracy of each reading is measured as a number from 0 to 1. A value of 1 is the highest level that the device can support and 0 is the worst. - \sa {http://wiki.forum.nokia.com/index.php/CS001671_-_Calibrating_the_magnetometer_sensor}{CS001671 - Calibrating the magnetometer sensor} + + \section2 Calibration + If the device is reporting low accuracy, then calibration might be needed before acceptable measurements + can be provided. + Basic calibration can usually be done by either rotating your device in a figure of eight, or by + rotating the device along each of its three axes. For more information, check your device's + documentation on how to calibrate the magnetic sensor. */ /*! @@ -150,7 +156,7 @@ void QMagnetometerReading::setZ(qreal z) Note that this only changes when measuring geomagnetic flux density. Raw magnetic flux readings will always have a value of 1. - \sa {QMagnetometerReading Units}, {http://wiki.forum.nokia.com/index.php/CS001671_-_Calibrating_the_magnetometer_sensor}{CS001671 - Calibrating the magnetometer sensor} + \sa {QMagnetometerReading Units}, {Calibration} */ qreal QMagnetometerReading::calibrationLevel() const |