Retrieving satellite information in Qt

From Qt Wiki
Jump to navigation Jump to search

Template:ArticleMetaData

Overview[edit | edit source]

This code snippet demonstrates how to retrieve satellite info in Qt using the Location module of Qt Mobility. It is assumed here that you have set up Qt Mobility in your development environment and on your device. For more information, see Setting up Qt Mobility.

Qt project file[edit | edit source]

Link the Location module into the project:

CONFIG += mobility MOBILITY = location

Using the Location module requires the Location capability:

symbian: {

   TARGET.CAPABILITY = Location

}

Header[edit | edit source]

  1. include <qgeosatelliteinfo.h>
  2. include <qgeosatelliteinfosource.h>

// QtMobility namespace QTM_USE_NAMESPACE

class MainWindow : public QMainWindow {

   Q_OBJECT

public slots:

   /**
    * Called when the number of satellites in use is updated.
    */
   void satellitesInUseUpdated(
           const QList<QGeoSatelliteInfo> &satellites);
   /**
    * Called when the number of satellites in view is updated.
    */
   void satellitesInViewUpdated(
           const QList<QGeoSatelliteInfo> &satellites);

private:

   /**
    * Starts to monitor updates in the number of satellites.
    */
   void startSatelliteMonitor();

private:

   QGeoSatelliteInfoSource* satelliteInfoSource;

}

Source[edit | edit source]

void MainWindow::startSatelliteMonitor() {

   satelliteInfoSource =
       QGeoSatelliteInfoSource::createDefaultSource(this);
   // Whenever the satellite info source signals that the number of
   // satellites in use is updated, the satellitesInUseUpdated function
   // is called
   QObject::connect(satelliteInfoSource,
                    SIGNAL(satellitesInUseUpdated(const QList<QGeoSatelliteInfo>&)),
                    this,
                    SLOT(satellitesInUseUpdated(const QList<QGeoSatelliteInfo>&)));
   // Whenever the satellite info source signals that the number of
   // satellites in view is updated, the satellitesInViewUpdated function
   // is called
   QObject::connect(satelliteInfoSource,
                    SIGNAL(satellitesInViewUpdated(const QList<QGeoSatelliteInfo>&)),
                    this,
                    SLOT(satellitesInViewUpdated(const QList<QGeoSatelliteInfo>&)));
   // Start listening for satellite updates
   satelliteInfoSource->startUpdates();

}

void MainWindow::satellitesInUseUpdated(

       const QList<QGeoSatelliteInfo> &satellites) {
   printString("The number of satellites in use is updated.");

}

void MainWindow::satellitesInViewUpdated(

       const QList<QGeoSatelliteInfo> &satellites) {
   printString("The number of satellites in view is updated");

}

Postconditions[edit | edit source]

Information about satellites in use and in view is retrieved.

See also[edit | edit source]