Tacti Phone

Working with GPS in Qt

In this article, I will describe how to write a simple program that will display the coordinates of your movement. The development process will consist of three steps: connecting the necessary libraries, developing logic, visualizing the result.
Qt GPS

1. Connecting the required libraries

To work with the phone’s GPS sensor, Qt uses the QGeoPositionInfoSource class from the Qt Mobility package.
To connect it to the project, you need to tell qmake that we want to use Qt Mobility, namely the Location module.
To do this, open the following lines in the profile of your project: Now we include the header file describing the QGeoPositionInfoSource class and call the QTM_USE_NAMESPACE macro,
CONFIG += mobility
MOBILITY += location

1.#include <QGeoPositionInfoSource>
2.QTM_USE_NAMESPACE

Attention! In Qt5 grade class QGeoPositionInfoSource transferred to the module QtLocation.
In addition, if you are writing an application for Symbian, you must declare the appropriate permissions for using GPS (Capabilities) in the profile:
symbian:TARGET.CAPABILITY += Location
Now you can proceed to write the application logic.

2. Get GPS coordinates from Qt

Coordinates are obtained in 4 stages.
1. Creation of a new instance of the QGeoPositionInfoSource class. To do this, the createDefaultSource method is used, which returns a source that reads coordinates from the default geodata source. In principle, it may not even be GPS coordinates, but A-GPS, or even GLONASS.
2. Connection of the necessary signals and slots ( position updates and update timeout );
3. Setting the interval and making requests to obtain device coordinates using the set update interval and start updates methods ;
4. Processing the obtained coordinates by transferring them to the QML interface.
Below is the code that implements all of this.

01.gpsTest::gpsTest(QObject *parent) :
02.QObject(parent)
03.{
04.// 1. 
05.QGeoPositionInfoSource *source = QGeoPositionInfoSource::createDefaultSource(this);
06.// 2. 
07.connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(slotPositionUpdated(QGeoPositionInfo)));
08.connect(source, SIGNAL(updateTimeout()), this, SLOT(slotPositionTimeout()));
09.// 3. 
10.// Если задать 0, то частота запросов будет автоматически регулироваться классом
11.source->setUpdateInterval(0);
12.source->startUpdates();
13.}
14.// 
15.void gpsTest::slotPositionUpdated(QGeoPositionInfo info)
16.{
17.QGeoCoordinate coordinate = info.coordinate();
18.emit gotCoordinates(QVariant(coordinate.latitude()), QVariant(coordinate.longitude()));
19.}
20.// 
21.void gpsTest::slotPositionTimeout()
22.{
23.qDebug() << "timeout";
24.}

3. Visualization of phone movement

After receiving the coordinates, the gotCoordinates signal is generated. The slot associated with this signal is in the QML code.
There are many examples on the internet of how to connect a Qt signal to a QML slot. To do this, you need to get a pointer to the QGraphicsObject associated with the QmlApplicationViewer. After that, signals and slots are connected according to the standard scheme using connect ():

01.Q_DECL_EXPORT int main(int argc, char *argv[])
02.{
03.QScopedPointer<QApplication> app(createApplication(argc, argv));
04.QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
05.viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
06.viewer->setMainQmlFile(QLatin1String("qml/GpsTest/main.qml"));
07.viewer->showExpanded();
08.gpsTest *test = new gpsTest(app);
09.QObject *graphics = dynamic_cast<QGraphicsObject*> ((QGraphicsObject*)viewer.data()->rootObject());
10.QObject::connect(test, SIGNAL(gotCoordinates(QVariant,QVariant)), graphics, SLOT(gotCoordinates(QVariant,QVariant)));
11.return app->exec();
12.}

Slots in QML are declared as simple functions, so it is enough to simply declare the function of the same name:

1.function gotCoordinates(lattitude, longitude)
2.{
3.console.log("x: " + lattitude +
4."y: " + longitude);
5.}

To visualize the movement of the phone, I will simply display a list of the coordinates that the phone was at. To do this, you need to declare a Flickable area in QML, and is it a Text element with a list of coordinates. The Flickable object is needed so that you can flip through multi-line text. Without it, only the upper lines of text will be displayed on the screen, and the lower ones will go beyond the screen area and will be inaccessible.

01.Flickable{
02.id: flickable
03.anchors.fill: parent
04.clip:true
05.contentHeight: data.paintedHeight
06.contentWidth: data.paintedWidth
07.Text{
08.id: data
09.width: flickable.width
10.height: flickable.height
11.}
12.}

The coordinate list will now scroll normally across the screen.

iPad3, Apple déconseille les utilisateurs d’aller au delà des 100% de charge

iPad3, Apple déconseille les utilisateurs du nouvel iPad d’aller au delà des 100% de charge de la batterie

Quelques jours après la sortie du nouvel iPad alias iPad3, certains utilisateurs ont mis en lumière le fait que la batterie de celui-ci continuait encore à charger, même une fois les 100% de charge atteints.

On s’est alors tous posé la question de savoir si l’allongement du temps de charge entraînait un allongement de l’autonomie. Une question à laquelle la réponse semble oui, toutefois, il semblerait que ce soit malgré tout déconseillé, c’est en tout cas ce qu’affirme le dernier communiqué en date d’Apple.

iPad3, Apple déconseille les utilisateurs d’aller au delà des 100% de charge

D’après Cupertino, l’indicateur selon laquelle la charge est effectuée à 100% permet de procurer au nouvel iPad l’autonomie nécessaire pour permettre à la tablette d’atteindre des performances optimales, en revanche, si vous décidez d’aller au-delà, alors cela nuira, à long terme, à la durée de vie de la batterie de votre iPad3.

Apple précise également que le problème se pose également avec les précédentes générations d’iPad, toutefois, la batterie de l’iPad3, étant  d’une taille 70% supérieure à celle des générations précédentes, il est plus susceptible d’être remarqué.

Retrouvez toute l’actualité du nouvel iPad sur https://www.andysowards.com/blog/2009/daily-links-158/ ainsi que sur nos pages Facebook et Twitter.

iPad3, Résumé complet de la keynote iPad3, Apple TV 3 et iOS 5.1

iPad3, écran Retina 1536 X 2048 pixels pour l’iPaD3, support de la résolution Full HD 1080p pour l’iPad TV 3 et de la langue japonaise pour Siri avec iOS 5.1

Il y a mois d’une heure, Apple présentait la troisième génération de sa tablette tactile, l’iPad3, au Yerba Buena Center de San Francisco. Une keynote présidée par Tim Cook, nouveau PDG d’Apple et qui, comme celle de janvier, s’est ouverte sur la chanson Rolling in the deep d’Adele.

Un keynote qui s’est tout d’abord ouverte par une petite introduction de Tim Cook qui a bien pris soin de rappeler que les iDevices représentaient actuellement 76% des revenus d’Apple, des iDevices qui se sont écoulés à pas moins de 62 millions d’unités aux dernier trimestre 2011.

iOS 5.1 et le support du japonais pour Siri

Le PDG d’Apple a ensuite évoqué Siri, l’une des nouveautés dont Apple semble la plus fière avant d’annoncer que celui-ci supportait désormais le japonais avec iOS 5.1.

Une nouvelle interface pour l’Apple TV 3

Après avoir annoncé iOS 5.1, Tim Cook a alors enchainé sur l’annonce de l’Apple TV 3. Une Apple TV dotée d’une nouvelle interface qui n’est pas sans rappeler celle d’iOS et supporte enfin la résolution Full HD 1080p.

Mais ce n’est pas tout, car non contente de proposer une nouvelle interface plus esthétiques et plus ergonomique, la nouvelle génération de l’Apple TV permet également de visionner les films et vidéos stockées au sein d’iCloud.

Une Apple TV 3 qui sera disponible dés le vendredi 16 mars au prix de 99$.

L’iPad, leader du marché des tablettes tactiles

Mais passons maintenant à l’iPad. Lancé en 2010, la tablette tactile s’est écoulée à pas moins de 15,4 millions d’unités au quatrième trimestre 2011 et reste, à ce jour, leader du marché.

L’App Store compte, par ailleurs, à ce jour, pas moins de 200 000 applications optimisées pour l’iPad.

iPad3, Résumé complet de la keynote iPad3, Apple TV 3 et iOS 5.1

Ecran Retina 1536 X 2048 pixels

On double le nom de pixels sur chaque côté de l’écran, on réduit la taille de chaque pixel au quart, on multiplie leur nombre total par quatre  et on obtient un résolution d’écran de 1536 X 2048 pixels, la résolution d’écran de l’iPad3, qui promet des couleurs plus qu’éclatantes, une netteté d’image sans pareille et une amélioration des contrastes de l’ordre de 44%.

Une révolution qui n’est pas sans rappeler celle générée par la sortie de l’iPhone 4, en 2010.

Un processeur Apple A5X, plus fort que le Tegra 3

Pas de processeur Apple A6 comme on l’aurait imaginé mais un processeur Apple A5X promettant des performances quatre fois supérieures à celles du processeur quad core Nvidia Tegra 3, starisé lors du MWC 2012, la semaine dernière, secondé par un GPU quad core.

Capteur photo 5 Megapixels

Là où l’on attendait un capteur photo 8 Megapixels, l’iPad3 n’aura finalement droit qu’à une résolution de 5 Megapixels mais visiblement des plus performants à en croire Phil Shiller et surtout supportant la capture vidéo au format Full HD 1080p.

10 heures d’autonomie pour l’iPad3

Tout comme son prédécesseur, l’iPad3 proposera une autonomie de 10 heures en 3G.

L’iPad HD compatible avec  les réseaux 4G LTE

Comme les médias l’évoquaient depuis plusieurs semaines, l’iPad HD sera, bel et bien, compatible avec les réseaux 4G LTE. Et, cerise sur le gâteau, la 4G ne sera pas seulement disponible sur le modèle commercialisé aux Etats-Unis mais à l’international, ce qui signifie que dés lors que la 4G sera déployée en France, les utilisateurs pourront alors en profiter sur leur tablette. Quoi de plus alléchant qu’un débit dix fois supérieur à la traditionnelle 3G.