diff -r e4ebb16b39ea -r 603d3f8b6302 plugins/sensors/maemo6/maemo6magnetometer.cpp --- a/plugins/sensors/maemo6/maemo6magnetometer.cpp Fri Sep 17 08:34:34 2010 +0300 +++ b/plugins/sensors/maemo6/maemo6magnetometer.cpp Mon Oct 04 01:37:06 2010 +0300 @@ -43,6 +43,8 @@ char const * const maemo6magnetometer::id("maemo6.magnetometer"); bool maemo6magnetometer::m_initDone = false; +const float maemo6magnetometer::NANO = 0.000000001; + maemo6magnetometer::maemo6magnetometer(QSensor *sensor) : maemo6sensorbase(sensor) @@ -50,6 +52,7 @@ const QString sensorName = "magnetometersensor"; initSensor(sensorName, m_initDone); + setRanges(NANO); if (m_sensorInterface){ if (!(QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const MagneticField&)), @@ -72,17 +75,13 @@ void maemo6magnetometer::slotDataAvailable(const MagneticField& data) { - if (m_isGeoMagnetometer){ - m_reading.setX( 0.0000003 * data.x() ); - m_reading.setY( 0.0000003 * data.y() ); - m_reading.setZ( 0.0000003 * data.z() ); - m_reading.setCalibrationLevel( ((float) data.level()) / 3.0 ); - } else { - m_reading.setX( 0.0000003 * data.rx() ); - m_reading.setY( 0.0000003 * data.ry() ); - m_reading.setZ( 0.0000003 * data.rz() ); - m_reading.setCalibrationLevel(1); - } + //nanoTeslas given, divide with 10^9 to get Teslas + m_reading.setX( NANO * m_isGeoMagnetometer?data.x():data.rx()); + m_reading.setY( NANO * m_isGeoMagnetometer?data.y():data.ry()); + m_reading.setZ( NANO * m_isGeoMagnetometer?data.z():data.rz()); + m_reading.setCalibrationLevel( m_isGeoMagnetometer?((float) data.level()) / 3.0 :1); + + m_reading.setTimestamp(data.timestamp()); newReadingAvailable(); }