Code Examples Sensors API: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
'''English''' [[Code | '''English''' [[Code Examples Sensors API Spanish|Spanish]]<br />[[Category:Developing with Qt::QtMobility]] | ||
= | [toc align_right="yes&quot; depth="2&quot;] | ||
= Overview = | |||
This page points to and provides quick overviews of existing code examples using the "Sensors API&quot;:http://doc.qt.nokia.com/qtmobility-1.1.0/sensors-api.html, one of the suite of Qt Mobilty APIs. | |||
== Fall detector == | |||
The "Fall Detector example&quot;:http://wiki.forum.nokia.com/index.php/Qt_Mobility_example_application:_Fall_Detector from Forum Nokia uses the accelerometer in a mobile device to detect if the user has fallen, then uses the | |||
* | * "Location API&quot;:http://doc.qt.nokia.com/qtmobility-1.1.0/location-overview.html to get the user's location | ||
* | * the "Contacts API&quot;:http://doc.qt.nokia.com/qtmobility-1.1.0/contacts.html to store and access an email address to be notified in the event of a fall | ||
* and the "Messaging API ":http://doc.qt.nokia.com/qtmobility-1.1.0/messaging.html to send an email notification with photo attachment. | |||
[[Image:http://www.forum.nokia.com/piazza/wiki/images/1/15/Falldetector--screens.png?20100324100739|Fall Dector Screen Shot]]<br />Here's the code snippet for the fall detector using the Sensors API: | |||
This sensors tutorial from | <code>#include <QAccelerometer&gt; | ||
// Neccessary for Qt Mobility API usage<br />QTM_USE_NAMESPACE | |||
class AccelerationInfo : public QObject, public QAccelerometerFilter<br />{<br /> Q_OBJECT | |||
public: | |||
AccelerationInfo(QObject* parent = 0) : QObject(parent)<br /> {<br /> m_sensor = new QAccelerometer(this);<br /> m_sensor->addFilter(this);<br /> m_sensor->start();<br /> } | |||
private slots: | |||
// Override of QAcclerometerFilter::filter(QAccelerometerReading*)<br /> void filter(QAccelerometerReading* reading)<br /> {<br /> qreal x = reading->x();<br /> qreal y = reading->y();<br /> qreal z = reading->z(); | |||
// Process acceleration sensor readings … | |||
qDebug("Current device acceleration: x=%f y=%f z=%f&quot;, x, y, z);<br /> } | |||
private: | |||
QAccelerometer* m_sensor;<br />}; | |||
</code> | |||
== Use accelerometer to control an Open GL-ES 3D model == | |||
This sensors tutorial from "Mobile Qt-Entwicklung&quot;:http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen (Mobile Qt Development) shows the accelerometer in an N900 manipulating a 3D model created using Open GL. The "descriptive text is in German&quot;:http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen, but all "the code is available in a downloadable package&quot;:http://www.mobileqt.de/tutorials/6/glsensordemo-0.1.zip and this "demo video&quot;:http://www.youtube.com/watch?v=uJpw0yeHJl8 shows you how it works. | |||
Here is the relevant accelerometer code: | Here is the relevant accelerometer code: | ||
=== | <code>GLWidget::GLWidget(QWidget *parent) :<br /> QGLWidget(parent) | ||
{<br /> setWindowTitle(tr("Sensor-GL-Demo&quot;));<br /> makeCurrent(); | |||
setAttribute(Qt::WA_PaintOnScreen);<br /> setAttribute(Qt::WA_NoSystemBackground);<br /> setAutoBufferSwap(false); | |||
xRot = 0;<br /> yRot = 0;<br /> zRot = 0; | |||
_rotationSensorAvailable = false;<br /> _rotationSensor = new QtMobility::QAccelerometer(this);<br /> _rotationSensor->connect();<br /> if (!_rotationSensor->isAvailable()) {<br /> qWarning("No acceleration sensor available!");<br /> } else {<br /> _rotationSensorAvailable = true;<br /> _rotationSensor->setSignalEnabled(false); // we get the values from the sensor itself<br /> _rotationSensor->setUpdateInterval(100); // as quickly as possible<br /> _rotationSensor->start();<br /> } | |||
* | QTimer *timer = new QTimer(this);<br /> timer->setInterval(10);<br /> QObject::connect(timer, SIGNAL (timeout()), this, SLOT (updateGL()));<br /> timer->start();<br /> showFullScreen();<br />} | ||
Revision as of 10:29, 24 February 2015
English Spanish
[toc align_right="yes" depth="2"]
Overview
This page points to and provides quick overviews of existing code examples using the "Sensors API":http://doc.qt.nokia.com/qtmobility-1.1.0/sensors-api.html, one of the suite of Qt Mobilty APIs.
Fall detector
The "Fall Detector example":http://wiki.forum.nokia.com/index.php/Qt_Mobility_example_application:_Fall_Detector from Forum Nokia uses the accelerometer in a mobile device to detect if the user has fallen, then uses the
- "Location API":http://doc.qt.nokia.com/qtmobility-1.1.0/location-overview.html to get the user's location
- the "Contacts API":http://doc.qt.nokia.com/qtmobility-1.1.0/contacts.html to store and access an email address to be notified in the event of a fall
- and the "Messaging API ":http://doc.qt.nokia.com/qtmobility-1.1.0/messaging.html to send an email notification with photo attachment.
Fall Dector Screen Shot
Here's the code snippet for the fall detector using the Sensors API:
#include <QAccelerometer&gt;
// Neccessary for Qt Mobility API usage<br />QTM_USE_NAMESPACE
class AccelerationInfo : public QObject, public QAccelerometerFilter<br />{<br /> Q_OBJECT
public:
AccelerationInfo(QObject* parent = 0) : QObject(parent)<br /> {<br /> m_sensor = new QAccelerometer(this);<br /> m_sensor->addFilter(this);<br /> m_sensor->start();<br /> }
private slots:
// Override of QAcclerometerFilter::filter(QAccelerometerReading*)<br /> void filter(QAccelerometerReading* reading)<br /> {<br /> qreal x = reading->x();<br /> qreal y = reading->y();<br /> qreal z = reading->z();
// Process acceleration sensor readings …
qDebug("Current device acceleration: x=%f y=%f z=%f&quot;, x, y, z);<br /> }
private:
QAccelerometer* m_sensor;<br />};
Use accelerometer to control an Open GL-ES 3D model
This sensors tutorial from "Mobile Qt-Entwicklung":http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen (Mobile Qt Development) shows the accelerometer in an N900 manipulating a 3D model created using Open GL. The "descriptive text is in German":http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen, but all "the code is available in a downloadable package":http://www.mobileqt.de/tutorials/6/glsensordemo-0.1.zip and this "demo video":http://www.youtube.com/watch?v=uJpw0yeHJl8 shows you how it works.
Here is the relevant accelerometer code:
GLWidget::GLWidget(QWidget *parent) :
QGLWidget(parent)
{
setWindowTitle(tr("Sensor-GL-Demo"));
makeCurrent();
setAttribute(Qt::WA_PaintOnScreen);
setAttribute(Qt::WA_NoSystemBackground);
setAutoBufferSwap(false);
xRot = 0;
yRot = 0;
zRot = 0;
_rotationSensorAvailable = false;
_rotationSensor = new QtMobility::QAccelerometer(this);
_rotationSensor->connect();
if (!_rotationSensor->isAvailable()) {
qWarning("No acceleration sensor available!");
} else {
_rotationSensorAvailable = true;
_rotationSensor->setSignalEnabled(false); // we get the values from the sensor itself
_rotationSensor->setUpdateInterval(100); // as quickly as possible
_rotationSensor->start();
}
QTimer *timer = new QTimer(this);
timer->setInterval(10);
QObject::connect(timer, SIGNAL (timeout()), this, SLOT (updateGL()));
timer->start();
showFullScreen();
}