qtmobility/plugins/sensors/maemo6/maemo6accelerometer.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    39 **
    39 **
    40 ****************************************************************************/
    40 ****************************************************************************/
    41 
    41 
    42 #include "maemo6accelerometer.h"
    42 #include "maemo6accelerometer.h"
    43 
    43 
    44 const char *maemo6accelerometer::id("maemo6.accelerometer");
    44 char const * const maemo6accelerometer::id("maemo6.accelerometer");
    45 bool maemo6accelerometer::m_initDone = false;
    45 bool maemo6accelerometer::m_initDone = false;
    46 
    46 
    47 maemo6accelerometer::maemo6accelerometer(QSensor *sensor)
    47 maemo6accelerometer::maemo6accelerometer(QSensor *sensor)
    48     : maemo6sensorbase(sensor)
    48     : maemo6sensorbase(sensor)
    49 {
    49 {
       
    50     const QString sensorName = "accelerometersensor";
       
    51     initSensor<AccelerometerSensorChannelInterface>(sensorName, m_initDone);
       
    52 
       
    53 
       
    54     if (m_sensorInterface){
       
    55         if (!(QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const XYZ&)),
       
    56                                this, SLOT(slotDataAvailable(const XYZ&)))))
       
    57             qWarning() << "Unable to connect "<< sensorName;
       
    58     }
       
    59     else
       
    60         qWarning() << "Unable to initialize "<<sensorName;
       
    61 
    50     setReading<QAccelerometerReading>(&m_reading);
    62     setReading<QAccelerometerReading>(&m_reading);
       
    63     // adding metadata
       
    64     addDataRate(1, 130); // 130 Hz
       
    65     //addDataRate(400, 400); // 400Hz
    51 
    66 
    52     if (!m_initDone) {
    67     // accuracy - or resolution???
    53         qDBusRegisterMetaType<XYZ>();
    68     // 2^8 = 256    256/2 - 1 = 127
    54 
    69     addOutputRange(-2*GRAVITY_EARTH, 2*GRAVITY_EARTH, 2*GRAVITY_EARTH/127); // 2G
    55         initSensor<AccelerometerSensorChannelInterface>("accelerometersensor");
    70     //addOutputRange(-8*GRAVITY_EARTH, 8*GRAVITY_EARTH, 8*GRAVITY_EARTH/127); // 8G
    56 
    71     setDescription(QLatin1String("Measures x, y, and z axes accelerations in m/s^2"));
    57         if (m_sensorInterface)
       
    58             QObject::connect(static_cast<AccelerometerSensorChannelInterface*>(m_sensorInterface), SIGNAL(dataAvailable(const XYZ&)), this, SLOT(slotDataAvailable(const XYZ&)));
       
    59         else
       
    60             qWarning() << "Unable to initialize accelerometer sensor.";
       
    61 
       
    62         // adding metadata
       
    63         addDataRate(142, 142); // 142Hz
       
    64         sensor->setDataRate(142);
       
    65         //addDataRate(400, 400); // 400Hz
       
    66 
       
    67         // accuracy - or resolution???
       
    68         // 2^8 = 256    256/2 - 1 = 127
       
    69         addOutputRange(-2*GRAVITY_EARTH, 2*GRAVITY_EARTH, 2*GRAVITY_EARTH/127); // 2G
       
    70         addOutputRange(-8*GRAVITY_EARTH, 8*GRAVITY_EARTH, 8*GRAVITY_EARTH/127); // 8G
       
    71         setDescription(QLatin1String("Measures x, y, and z axes accelerations in m/s^2"));
       
    72 
       
    73         m_initDone = true;
       
    74     }
       
    75 }
    72 }
    76 
    73 
    77 void maemo6accelerometer::slotDataAvailable(const XYZ& data)
    74 void maemo6accelerometer::slotDataAvailable(const XYZ& data)
    78 {
    75 {
    79     // Convert from milli-Gs to meters per second per second
    76     // Convert from milli-Gs to meters per second per second