diff -r 06b8e2af4411 -r 6fbed849b4f4 qtmobility/plugins/sensors/maemo6/maemo6sensorbase.cpp --- a/qtmobility/plugins/sensors/maemo6/maemo6sensorbase.cpp Fri Jun 11 14:26:25 2010 +0300 +++ b/qtmobility/plugins/sensors/maemo6/maemo6sensorbase.cpp Wed Jun 23 19:08:38 2010 +0300 @@ -41,12 +41,15 @@ #include "maemo6sensorbase.h" + SensorManagerInterface* maemo6sensorbase::m_remoteSensorManager = 0; + + const float maemo6sensorbase::GRAVITY_EARTH = 9.80665; const float maemo6sensorbase::GRAVITY_EARTH_THOUSANDTH = 0.00980665; maemo6sensorbase::maemo6sensorbase(QSensor *sensor) - : QSensorBackend(sensor), m_sensorRunning(false) + : QSensorBackend(sensor), m_sensorInterface(0) { if (!m_remoteSensorManager) m_remoteSensorManager = &SensorManagerInterface::instance(); @@ -54,7 +57,7 @@ maemo6sensorbase::~maemo6sensorbase() { - if (m_sensorInterface) { + if (m_sensorInterface) { stop(); QObject::disconnect(m_sensorInterface); delete m_sensorInterface, m_sensorInterface = 0; @@ -63,30 +66,28 @@ void maemo6sensorbase::start() { - if (m_sensorRunning) - return; + if (m_sensorInterface) { int dataRate = sensor()->dataRate(); - int interval = 1000 / dataRate; - // for testing max speed - //interval = 1; - //dataRate = 1000; if (dataRate > 0) { + int interval = 1000 / dataRate; + // for testing maximum speed + //interval = 1; + //dataRate = 1000; qDebug() << "Setting data rate" << dataRate << "Hz (interval" << interval << "ms) for" << m_sensorInterface->id(); m_sensorInterface->setInterval(interval); } else { - qDebug() << "Sensor data rate" << dataRate << "Hz"; + qDebug() << "Data rate in don't care mode (interval" << m_sensorInterface->interval() << "ms) for" << m_sensorInterface->id(); } - m_sensorInterface->start(); + int returnCode = m_sensorInterface->start().error().type(); + if (returnCode==0) return; + qWarning()<<"m_sensorInterface did not start, error code:"<stop(); - m_sensorRunning = false; }