Code Examples Sensors API/es: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:Developing with Qt::QtMobility]] [[Category:Spanish]] | [[Category:Developing with Qt::QtMobility]] [[Category:Spanish]] | ||
[toc align_right= | [toc align_right="yes" depth="2"] | ||
'''Spanish''' [[Code Examples Sensors API|English]] | '''Spanish''' [[Code Examples Sensors API|English]] | ||
Line 7: | Line 7: | ||
= Información general = | = Información general = | ||
Esta página proporciona información general sobre ejemplos de código que utilizan la | 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. | ||
== Detector de caídas == | == Detector de caídas == | ||
El | 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: | ||
* | * "Location API":http://doc.qt.nokia.com/qtmobility-1.1.0/location-overview.html para obtener la ubicación de el usuario. | ||
* la | * 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. | ||
* y la | * 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. | ||
[[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 23: | ||
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 | <code>#include <QAccelerometer> | ||
// Neccessary for Qt Mobility API usage<br />QTM_USE_NAMESPACE | // Neccessary for Qt Mobility API usage<br />QTM_USE_NAMESPACE | ||
Line 31: | Line 31: | ||
public: | public: | ||
AccelerationInfo(QObject* parent = 0) : QObject(parent)<br /> {<br /> m_sensor = new QAccelerometer(this);<br /> m_sensor- | 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: | private slots: | ||
// Override of QAcclerometerFilter::filter(QAccelerometerReading*)<br /> void filter(QAccelerometerReading* reading)<br /> {<br /> qreal x = reading- | // 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 … | // Process acceleration sensor readings … | ||
qDebug( | qDebug("Current device acceleration: x=%f y=%f z=%f", x, y, z);<br /> } | ||
private: | private: | ||
Line 49: | Line 49: | ||
== 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 | El tutorial sobre sensores en "Mobile Qt-Entwicklung":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 "texto descriptivo esta en Alemán":http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen, pero todo "el codigo esta disponible para descargar en un paquete":http://www.mobileqt.de/tutorials/6/glsensordemo-0.1.zip y esta "demo en vídeo":http://www.youtube.com/watch?v=uJpw0yeHJl8 muestra como funciona. | ||
Aquí está el código relevante del acelerómetro: | Aquí está el código relevante del acelerómetro: | ||
Line 55: | Line 55: | ||
<code>GLWidget::GLWidget(QWidget *parent) :<br /> QGLWidget(parent) | <code>GLWidget::GLWidget(QWidget *parent) :<br /> QGLWidget(parent) | ||
{<br /> setWindowTitle(tr( | {<br /> setWindowTitle(tr("Sensor-GL-Demo"));<br /> makeCurrent(); | ||
setAttribute(Qt::WA_PaintOnScreen);<br /> setAttribute(Qt::WA_NoSystemBackground);<br /> setAutoBufferSwap(false); | setAttribute(Qt::WA_PaintOnScreen);<br /> setAttribute(Qt::WA_NoSystemBackground);<br /> setAutoBufferSwap(false); | ||
Line 61: | Line 61: | ||
xRot = 0;<br /> yRot = 0;<br /> zRot = 0; | xRot = 0;<br /> yRot = 0;<br /> zRot = 0; | ||
_rotationSensorAvailable = false;<br /> _rotationSensor = new QtMobility::QAccelerometer(this);<br /> _rotationSensor- | _rotationSensorAvailable = false;<br /> _rotationSensor = new QtMobility::QAccelerometer(this);<br /> _rotationSensor->connect();<br /> if (!_rotationSensor->isAvailable()) {<br /> qWarning("Kein Beschleunigungssensor verfügbar!");<br /> } else {<br /> _rotationSensorAvailable = true;<br /> _rotationSensor->setSignalEnabled(false); // wir holen uns die Werte selbst ab<br /> _rotationSensor->setUpdateInterval(100); // so schnell wie möglich<br /> _rotationSensor->start();<br /> } | ||
QTimer *timer = new QTimer(this);<br /> timer- | QTimer *timer = new QTimer(this);<br /> timer->setInterval(10);<br /> QObject::connect(timer, SIGNAL (timeout()), this, SLOT (updateGL()));<br /> timer->start();<br /> showFullScreen();<br />}<br /></code> |
Revision as of 14:48, 24 February 2015
[toc align_right="yes" depth="2"]
Spanish English
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.
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:
- "Location API":http://doc.qt.nokia.com/qtmobility-1.1.0/location-overview.html 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.
- 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.
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<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", x, y, z);<br /> }
private:
QAccelerometer* m_sensor;<br />};
Usando el acelerómetro para controlar un modelo Open GL-ES 3D
El tutorial sobre sensores en "Mobile Qt-Entwicklung":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 "texto descriptivo esta en Alemán":http://www.mobileqt.de/wiki/daten_des_accelerometer_sensors_mit_einem_opengl_objekt_verknuepfen, pero todo "el codigo esta disponible para descargar en un paquete":http://www.mobileqt.de/tutorials/6/glsensordemo-0.1.zip y esta "demo en vídeo":http://www.youtube.com/watch?v=uJpw0yeHJl8 muestra como funciona.
Aquí está el código relevante del acelerómetro:
GLWidget::GLWidget(QWidget *parent) :<br /> QGLWidget(parent)
{<br /> setWindowTitle(tr("Sensor-GL-Demo"));<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("Kein Beschleunigungssensor verfügbar!");<br /> } else {<br /> _rotationSensorAvailable = true;<br /> _rotationSensor->setSignalEnabled(false); // wir holen uns die Werte selbst ab<br /> _rotationSensor->setUpdateInterval(100); // so schnell wie möglich<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 />}<br />