Namespaces
Variants
Actions
(Difference between revisions)

Accelerometer Sensor Example Using QtMobility Project

Jump to: navigation, search
(Chintandave er - added articlemeta tag and Abstract)
m (Text replace - "<code cpp>" to "<code cpp-qt>")
 
(4 intermediate revisions by one user not shown)
Line 1: Line 1:
[[Category:Sensor]][[Category:Qt]][[Category:Qt Mobility]][[Category:Code Examples]]
+
[[Category:Sensor]][[Category:Qt Mobility]][[Category:Code Examples]]
{{Abstract|This code snippet shows how to use Accelerometer Sensor using Qt Mobility Project and display sensor data on the screen}}
+
{{Abstract|This code snippet shows how to use the [http://doc.qt.nokia.com/qtmobility-1.1.0/index.html Qt Mobilty] [http://doc.qt.nokia.com/qtmobility-1.1.0/qaccelerometer.html QAccelerometer] and  [http://doc.qt.nokia.com/qtmobility-1.1.0/sensors-api.html Sensor API]s to get and display sensor data.}}
  
 
{{ArticleMetaData
 
{{ArticleMetaData
Line 15: Line 15:
 
|author= [[User:chintandave_er]] <!-- Display as link [[User:username]] -->
 
|author= [[User:chintandave_er]] <!-- Display as link [[User:username]] -->
 
}}
 
}}
 
== Overview ==
 
 
This code snippet shows how to use [http://doc.qt.nokia.com/qtmobility-1.1.0/qaccelerometer.html QAccelerometer] Sensor using [http://developer.qt.nokia.com/wiki/Category:Qt_Labs_Projects Qt Mobility Project] and display sensor data on the screen. This Example use [http://doc.qt.nokia.com/qtmobility-1.1.0/sensors-api.html Sensor API] of  [http://doc.qt.nokia.com/qtmobility-1.1.0/index.html Qt Mobilty].
 
  
 
==Preconditions==
 
==Preconditions==
Line 106: Line 102:
 
==Source==
 
==Source==
  
<code cpp>
+
<code cpp-qt>
  
 
#include "accelerometer.h"
 
#include "accelerometer.h"
Line 201: Line 197:
 
==Related Articles==
 
==Related Articles==
  
[[QtMagnetometer Sensor Example Using QtMobility Project]]
+
* [[QtMagnetometer Sensor Example Using QtMobility Project]]
 
+
* [[Turning phone into magnetic compass using Qt mobility project]]
[[Turning phone into magnetic compass using Qt mobility project]]
+
* [[Compass Sensor Example Using QtMobility Project]][[Category:MeeGo Harmattan]] [[Category:Symbian]]
 
+
[[Compass Sensor Example Using QtMobility Project]]
+
 
+
 
+
 
+
-- [[User:Chintandave_er|Chintandave_er]] 05:46, 9 December 2010 (UTC)
+

Latest revision as of 04:23, 11 October 2012

This code snippet shows how to use the Qt Mobilty QAccelerometer and Sensor APIs to get and display sensor data.

Article Metadata

Code Example
Tested with
Devices(s): N8,C7,E7

Compatibility
Platform(s): Symbian

Article
Keywords: QAccelerometer,Qt Mobility ,Sensor API
Created: chintandave_er (18 Nov 2010)
Last edited: hamishwillee (11 Oct 2012)

Contents

Preconditions

Read this for how to CS001615 - Setting up Qt Mobility

Project File (.pro file)

  • Add the Qt Mobility project configuration option in the .Pro file as shown below
CONFIG += mobility
MOBILITY += sensors
  • here is the full project(.pro) file.
QT       += core gui
 
TARGET = QtAccelerometer
TEMPLATE = app
 
 
SOURCES += main.cpp\
accelerometer.cpp
 
HEADERS += accelerometer.h
 
CONFIG += mobility
CONFIG += debug
MOBILITY = sensors
 
symbian {
TARGET.UID3 = 0xe239264e
# TARGET.CAPABILITY +=
TARGET.EPOCSTACKSIZE = 0x14000
TARGET.EPOCHEAPSIZE = 0x020000 0x800000
}


Header

Here is the accelerometer.h header file.

#include <QtGui/QMainWindow>
#include <QGraphicsView>
#include <QBasicTimer>
#include <QTimer>
#include <QAccelerometer> // Add Sensor Class
 
// add Qt Mobility Project Namespace
QTM_USE_NAMESPACE
 
class QGraphicsRectItem;
class QGraphicsSimpleTextItem;
 
 
class Accelerometer : public QGraphicsView
{
Q_OBJECT
 
public:
Accelerometer(QWidget *parent = 0);
 
protected:
bool event(QEvent *event);
 
private:
void updateXYZPosition();
 
private:
QGraphicsRectItem *Rect;
QGraphicsSimpleTextItem *text;
QAccelerometer *accelerometerSensor;
QBasicTimer Timer;
QTimer inactiveTimer;
};


Source

#include "accelerometer.h"
 
#include <QGraphicsRectItem>
#include <QGraphicsSimpleTextItem>
#include <QResizeEvent>
#include <QTimerEvent> // timer event
#include <QDebug>
 
Accelerometer::Accelerometer(QWidget *parent) : QGraphicsView(parent), Rect(0), text(0), accelerometerSensor(0)
{
QGraphicsScene *scene = new QGraphicsScene(this);
setScene(scene);
 
Rect = new QGraphicsRectItem();
 
text = new QGraphicsSimpleTextItem(Rect);
text->setBrush(Qt::gray);
scene->addItem(Rect);
 
accelerometerSensor = new QAccelerometer(this);
inactiveTimer.setSingleShot(true);
 
if (!Timer.isActive())
Timer.start(20, this);
 
// start the sensor
if (!accelerometerSensor->isActive())
accelerometerSensor->start();
 
if (!accelerometerSensor->isActive())
{
qDebug() << "accelerometer sensor didn't start!" << endl;
}
 
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
}
 
bool Accelerometer::event(QEvent *event)
{
switch (event->type()) {
case QEvent::Timer:
if (static_cast<QTimerEvent*>(event)->timerId() == Timer.timerId())
updateXYZPosition(); // update the xyz position
break;
default:
break;
}
return QGraphicsView::event(event);
}
 
void Accelerometer::updateXYZPosition()
{
QAccelerometerReading *reading = accelerometerSensor->reading();
qreal xacceleration = 0.0f;
qreal yacceleration = 0.0f;
qreal zacceleration = 0.0f;
if (reading) {
xacceleration = reading->x();
yacceleration = reading->y();
zacceleration = reading->z();
 
// for debug purpose
qDebug() << "xacceleration x" << endl;
qDebug() << xacceleration << endl;
 
qDebug() << "yacceleration y" << endl;
qDebug() << yacceleration << endl;
 
qDebug() << "zacceleration z" << endl;
qDebug() << zacceleration << endl;
 
// set the text and display it on the screen
QLocale c(QLocale::C);
text->setText("x: " + c.toString(xacceleration) + " y: " + c.toString(yacceleration) + " z: " + c.toString(zacceleration));
 
}
}

Postconditions

Here is the QtAccelerometer Application's Screenshot. You can change the Accelerometer Sensor data from Qt Simulator.

QtAccelerometerSimulator.png QtAccelerometer.png

Example Applications

Example application can be found on the following link File:QtAccelerometer QtMobility.zip.

Related Articles

This page was last modified on 11 October 2012, at 04:23.
320 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved