Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Code Examples Sensors API/es: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
(Remove non-functioning "toc" command)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
[[Category:Developing with Qt::QtMobility]] [[Category:Spanish]]
[[Category:Developing with Qt::QtMobility]] [[Category:Spanish]]


[toc align_right="yes" depth="2"]


'''Spanish''' [[Code Examples Sensors API|English]]
'''Spanish''' [[Code Examples Sensors API|English]]
Line 7: Line 8:
= Información general =
= Información general =


Esta página proporciona información general sobre ejemplos de código que utilizan la "Sensors API":http://doc.qt.nokia.com/qtmobility-1.1.0/sensors-api.html, una de las tantas APIs que forman parte de la suite Qt Mobilty.
Esta página proporciona información general sobre ejemplos de código que utilizan la [http://doc.qt.nokia.com/qtmobility-1.1.0/sensors-api.html Sensors API], una de las tantas APIs que forman parte de la suite Qt Mobilty.


== Detector de caídas ==
== Detector de caídas ==


El "ejemplo del Detecto de caídas":http://wiki.forum.nokia.com/index.php/Qt_Mobility_example_application:_Fall_Detector de Forum Nokia usa el acelerómetro en un dispositivo móvil para detectar si un usuario se ha caído, este ejemplo utiliza:
El [http://wiki.forum.nokia.com/index.php/Qt_Mobility_example_application:_Fall_Detector ejemplo del Detecto de caídas] de Forum Nokia usa el acelerómetro en un dispositivo móvil para detectar si un usuario se ha caído, este ejemplo utiliza:


* "Location API":http://doc.qt.nokia.com/qtmobility-1.1.0/location-overview.html para obtener la ubicación de el usuario.
* [http://doc.qt.nokia.com/qtmobility-1.1.0/location-overview.html Location API] para obtener la ubicación de el usuario.


* la "Contacts API":http://doc.qt.nokia.com/qtmobility-1.1.0/contacts.html para almacenar y acceder a una dirección de correo electrónico para ser notificado en caso de una caída.
* la [http://doc.qt.nokia.com/qtmobility-1.1.0/contacts.html Contacts API] para almacenar y acceder a una dirección de correo electrónico para ser notificado en caso de una caída.


* y la "Messaging API ":http://doc.qt.nokia.com/qtmobility-1.1.0/messaging.html para enviar una notificación por email con una foto adjunta.
* y la [http://doc.qt.nokia.com/qtmobility-1.1.0/messaging.html Messaging API ] para enviar una notificación por email con una foto adjunta.


[[Image:http://www.forum.nokia.com/piazza/wiki/images/1/15/Falldetector--screens.png?20100324100739|Fall Dector Screen Shot]]
[[Image:http://www.forum.nokia.com/piazza/wiki/images/1/15/Falldetector--screens.png?20100324100739|Fall Dector Screen Shot]]
Line 23: Line 24:
Aquí esta el fragmento de código del detector de caídas usando el API de Sensores:
Aquí esta el fragmento de código del detector de caídas usando el API de Sensores:


<code>#include &lt;QAccelerometer&amp;gt;
<code>#include <QAccelerometer>


// Neccessary for Qt Mobility API usage<br />QTM_USE_NAMESPACE
// Neccessary for Qt Mobility API usage
QTM_USE_NAMESPACE


class AccelerationInfo : public QObject, public QAccelerometerFilter<br />{<br /> Q_OBJECT
class AccelerationInfo : public QObject, public QAccelerometerFilter
{
Q_OBJECT


public:
public:


AccelerationInfo(QObject* parent = 0) : QObject(parent)<br /> {<br /> m_sensor = new QAccelerometer(this);<br /> m_sensor-&gt;addFilter(this);<br /> m_sensor-&gt;start();<br /> }
AccelerationInfo(QObject* parent = 0) : QObject(parent)
{
m_sensor = new QAccelerometer(this);
m_sensor->addFilter(this);
m_sensor->start();
}


private slots:
private slots:


// Override of QAcclerometerFilter::filter(QAccelerometerReading*)<br /> void filter(QAccelerometerReading* reading)<br /> {<br /> qreal x = reading-&gt;x();<br /> qreal y = reading-&gt;y();<br /> qreal z = reading-&gt;z();
// Override of QAcclerometerFilter::filter(QAccelerometerReading*)
void filter(QAccelerometerReading* reading)
{
qreal x = reading->x();
qreal y = reading->y();
qreal z = reading->z();


// Process acceleration sensor readings …
// Process acceleration sensor readings …


qDebug(&quot;Current device acceleration: x=%f y=%f z=%f&amp;quot;, x, y, z);<br /> }
qDebug("Current device acceleration: x=%f y=%f z=%f", x, y, z);
}


private:
private:


QAccelerometer* m_sensor;<br />};
QAccelerometer* m_sensor;
};


</code>
</code>
Line 49: Line 65:
== Usando el acelerómetro para controlar un modelo Open GL-ES 3D ==
== Usando el acelerómetro para controlar un modelo Open GL-ES 3D ==


El tutorial sobre sensores en &quot;Mobile Qt-Entwicklung&amp;quot;:http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen (Mobile Qt Development) muestra el acelerometro en un N900 manipulando un modelo 3D que ha sido creado usando Open GL. El &quot;texto descriptivo esta en Alemán&amp;quot;:http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen, pero todo &quot;el codigo esta disponible para descargar en un paquete&amp;quot;:http://www.mobileqt.de/tutorials/6/glsensordemo-0.1.zip y esta &quot;demo en vídeo&amp;quot;:http://www.youtube.com/watch?v=uJpw0yeHJl8 muestra como funciona.
El tutorial sobre sensores en [http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen Mobile Qt-Entwicklung] (Mobile Qt Development) muestra el acelerometro en un N900 manipulando un modelo 3D que ha sido creado usando Open GL. El [http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen texto descriptivo esta en Alemán], pero todo [http://www.mobileqt.de/tutorials/6/glsensordemo-0.1.zip el codigo esta disponible para descargar en un paquete] y esta [http://www.youtube.com/watch?v=uJpw0yeHJl8 demo en vídeo] muestra como funciona.


Aquí está el código relevante del acelerómetro:
Aquí está el código relevante del acelerómetro:


<code>GLWidget::GLWidget(QWidget *parent) :<br /> QGLWidget(parent)
<code>GLWidget::GLWidget(QWidget *parent) :
QGLWidget(parent)


{<br /> setWindowTitle(tr(&quot;Sensor-GL-Demo&amp;quot;));<br /> makeCurrent();
{
setWindowTitle(tr("Sensor-GL-Demo"));
makeCurrent();


setAttribute(Qt::WA_PaintOnScreen);<br /> setAttribute(Qt::WA_NoSystemBackground);<br /> setAutoBufferSwap(false);
setAttribute(Qt::WA_PaintOnScreen);
setAttribute(Qt::WA_NoSystemBackground);
setAutoBufferSwap(false);


xRot = 0;<br /> yRot = 0;<br /> zRot = 0;
xRot = 0;
yRot = 0;
zRot = 0;


_rotationSensorAvailable = false;<br /> _rotationSensor = new QtMobility::QAccelerometer(this);<br /> _rotationSensor-&gt;connect();<br /> if (!_rotationSensor-&gt;isAvailable()) {<br /> qWarning(&quot;Kein Beschleunigungssensor verfügbar!&quot;);<br /> } else {<br /> _rotationSensorAvailable = true;<br /> _rotationSensor-&gt;setSignalEnabled(false); // wir holen uns die Werte selbst ab<br /> _rotationSensor-&gt;setUpdateInterval(100); // so schnell wie möglich<br /> _rotationSensor-&gt;start();<br /> }
_rotationSensorAvailable = false;
_rotationSensor = new QtMobility::QAccelerometer(this);
_rotationSensor->connect();
if (!_rotationSensor->isAvailable()) {
qWarning("Kein Beschleunigungssensor verfügbar!");
} else {
_rotationSensorAvailable = true;
_rotationSensor->setSignalEnabled(false); // wir holen uns die Werte selbst ab
_rotationSensor->setUpdateInterval(100); // so schnell wie möglich
_rotationSensor->start();
}


QTimer *timer = new QTimer(this);<br /> timer-&gt;setInterval(10);<br /> QObject::connect(timer, SIGNAL (timeout()), this, SLOT (updateGL()));<br /> timer-&gt;start();<br /> showFullScreen();<br />}<br /></code>
QTimer *timer = new QTimer(this);
timer->setInterval(10);
QObject::connect(timer, SIGNAL (timeout()), this, SLOT (updateGL()));
timer->start();
showFullScreen();
}
</code>

Latest revision as of 12:16, 17 April 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.


Spanish English

Información general

Esta página proporciona información general sobre ejemplos de código que utilizan la Sensors API, una de las tantas APIs que forman parte de la suite Qt Mobilty.

Detector de caídas

El ejemplo del Detecto de caídas de Forum Nokia usa el acelerómetro en un dispositivo móvil para detectar si un usuario se ha caído, este ejemplo utiliza:

  • la Contacts API para almacenar y acceder a una dirección de correo electrónico para ser notificado en caso de una caída.
  • y la Messaging API para enviar una notificación por email con una foto adjunta.

Fall Dector Screen Shot

Aquí esta el fragmento de código del detector de caídas usando el API de Sensores:

#include <QAccelerometer>

// Neccessary for Qt Mobility API usage
QTM_USE_NAMESPACE

class AccelerationInfo : public QObject, public QAccelerometerFilter
{
 Q_OBJECT

public:

AccelerationInfo(QObject* parent = 0) : QObject(parent)
 {
 m_sensor = new QAccelerometer(this);
 m_sensor->addFilter(this);
 m_sensor->start();
 }

private slots:

// Override of QAcclerometerFilter::filter(QAccelerometerReading*)
 void filter(QAccelerometerReading* reading)
 {
 qreal x = reading->x();
 qreal y = reading->y();
 qreal z = reading->z();

// Process acceleration sensor readings …

qDebug("Current device acceleration: x=%f y=%f z=%f", x, y, z);
 }

private:

QAccelerometer* m_sensor;
};

Usando el acelerómetro para controlar un modelo Open GL-ES 3D

El tutorial sobre sensores en Mobile Qt-Entwicklung (Mobile Qt Development) muestra el acelerometro en un N900 manipulando un modelo 3D que ha sido creado usando Open GL. El texto descriptivo esta en Alemán, pero todo el codigo esta disponible para descargar en un paquete y esta demo en vídeo muestra como funciona.

Aquí está el código relevante del acelerómetro:

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("Kein Beschleunigungssensor verfügbar!");
 } else {
 _rotationSensorAvailable = true;
 _rotationSensor->setSignalEnabled(false); // wir holen uns die Werte selbst ab
 _rotationSensor->setUpdateInterval(100); // so schnell wie möglich
 _rotationSensor->start();
 }

QTimer *timer = new QTimer(this);
 timer->setInterval(10);
 QObject::connect(timer, SIGNAL (timeout()), this, SLOT (updateGL()));
 timer->start();
 showFullScreen();
}