qtmobility/plugins/sensors/maemo6/maemo6sensorbase.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    39 **
    39 **
    40 ****************************************************************************/
    40 ****************************************************************************/
    41 
    41 
    42 #include "maemo6sensorbase.h"
    42 #include "maemo6sensorbase.h"
    43 
    43 
       
    44 
    44 SensorManagerInterface* maemo6sensorbase::m_remoteSensorManager = 0;
    45 SensorManagerInterface* maemo6sensorbase::m_remoteSensorManager = 0;
       
    46 
       
    47 
    45 const float maemo6sensorbase::GRAVITY_EARTH = 9.80665;
    48 const float maemo6sensorbase::GRAVITY_EARTH = 9.80665;
    46 const float maemo6sensorbase::GRAVITY_EARTH_THOUSANDTH = 0.00980665;
    49 const float maemo6sensorbase::GRAVITY_EARTH_THOUSANDTH = 0.00980665;
    47 
    50 
    48 maemo6sensorbase::maemo6sensorbase(QSensor *sensor)
    51 maemo6sensorbase::maemo6sensorbase(QSensor *sensor)
    49     : QSensorBackend(sensor), m_sensorRunning(false)
    52     : QSensorBackend(sensor), m_sensorInterface(0)
    50 {
    53 {
    51     if (!m_remoteSensorManager)
    54     if (!m_remoteSensorManager)
    52         m_remoteSensorManager = &SensorManagerInterface::instance();
    55         m_remoteSensorManager = &SensorManagerInterface::instance();
    53 }
    56 }
    54 
    57 
    55 maemo6sensorbase::~maemo6sensorbase()
    58 maemo6sensorbase::~maemo6sensorbase()
    56 {
    59 {
    57    if (m_sensorInterface) {
    60     if (m_sensorInterface) {
    58         stop();
    61         stop();
    59         QObject::disconnect(m_sensorInterface);
    62         QObject::disconnect(m_sensorInterface);
    60         delete m_sensorInterface, m_sensorInterface = 0;
    63         delete m_sensorInterface, m_sensorInterface = 0;
    61     }
    64     }
    62 }
    65 }
    63 
    66 
    64 void maemo6sensorbase::start()
    67 void maemo6sensorbase::start()
    65 {
    68 {
    66     if (m_sensorRunning)
    69 
    67         return;
       
    68     if (m_sensorInterface) {
    70     if (m_sensorInterface) {
    69         int dataRate = sensor()->dataRate();
    71         int dataRate = sensor()->dataRate();
    70         int interval = 1000 / dataRate;
       
    71         // for testing max speed
       
    72         //interval = 1;
       
    73         //dataRate = 1000;
       
    74         if (dataRate > 0) {
    72         if (dataRate > 0) {
       
    73             int interval = 1000 / dataRate;
       
    74             // for testing maximum speed
       
    75             //interval = 1;
       
    76             //dataRate = 1000;
    75             qDebug() << "Setting data rate" << dataRate << "Hz (interval" << interval << "ms) for" << m_sensorInterface->id();
    77             qDebug() << "Setting data rate" << dataRate << "Hz (interval" << interval << "ms) for" << m_sensorInterface->id();
    76             m_sensorInterface->setInterval(interval);
    78             m_sensorInterface->setInterval(interval);
    77         } else {
    79         } else {
    78             qDebug() << "Sensor data rate" << dataRate << "Hz";
    80             qDebug() << "Data rate in don't care mode (interval" << m_sensorInterface->interval() << "ms) for" << m_sensorInterface->id();
    79         }
    81         }
    80         m_sensorInterface->start();
    82         int returnCode = m_sensorInterface->start().error().type();
       
    83         if (returnCode==0) return;
       
    84         qWarning()<<"m_sensorInterface did not start, error code:"<<returnCode;
    81     }
    85     }
    82     m_sensorRunning = true;
    86     sensorStopped();
    83 }
    87 }
    84 
    88 
    85 void maemo6sensorbase::stop()
    89 void maemo6sensorbase::stop()
    86 {
    90 {
    87     if (!m_sensorRunning)
       
    88         return;
       
    89     if (m_sensorInterface)
    91     if (m_sensorInterface)
    90         m_sensorInterface->stop();
    92         m_sensorInterface->stop();
    91     m_sensorRunning = false;
       
    92 }
    93 }