qtmobility/plugins/sensors/maemo6/maemo6magnetometer.cpp
changeset 8 71781823f776
parent 5 453da2cfceef
child 11 06b8e2af4411
--- a/qtmobility/plugins/sensors/maemo6/maemo6magnetometer.cpp	Fri May 14 16:41:33 2010 +0300
+++ b/qtmobility/plugins/sensors/maemo6/maemo6magnetometer.cpp	Thu May 27 13:42:11 2010 +0300
@@ -59,6 +59,9 @@
             qWarning() << "Unable to initialize magnetometer sensor.";
 
         // metadata
+        addDataRate(43, 43); // 43Hz
+        sensor->setDataRate(43);
+        addOutputRange(-0.000614, 0.000614, 0.0000003); // -600 ... 600 mikroteslas, 0.3 uT resolution
         setDescription(QLatin1String("Magnetic flux density measured in teslas"));
 
         m_initDone = true;
@@ -69,14 +72,14 @@
 {
     QVariant v = m_sensor->property("returnGeoValues");
     if (v.isValid() && v.toBool()) {
-        m_reading.setX(data.x());
-        m_reading.setY(data.y());
-        m_reading.setZ(data.z());
-        m_reading.setCalibrationLevel(data.level());
+        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(data.rx());
-        m_reading.setY(data.ry());
-        m_reading.setZ(data.rz());
+        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);
     }
     //m_reading.setTimestamp(data.timestamp());