Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QGeoSatelliteInfoSource Class Referenceabstract

\inmodule QtPositioning More...

#include <qgeosatelliteinfosource.h>

+ Inheritance diagram for QGeoSatelliteInfoSource:
+ Collaboration diagram for QGeoSatelliteInfoSource:

Public Types

enum  Error {
  AccessError = 0 , ClosedError = 1 , NoError = 2 , UnknownSourceError = -1 ,
  UpdateTimeoutError = 3
}
 The Error enumeration represents the errors which can occur. More...
 

Public Slots

virtual void startUpdates ()=0
 Starts emitting updates at regular intervals.
 
virtual void stopUpdates ()=0
 Stops emitting updates at regular intervals.
 
virtual void requestUpdate (int timeout=0)=0
 Attempts to get the current satellite information and emit satellitesInViewUpdated() and satellitesInUseUpdated() with this information.
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void satellitesInViewUpdated (const QList< QGeoSatelliteInfo > &satellites)
 If startUpdates() or requestUpdate() is called, this signal is emitted when an update is available on the satellites that are currently in view.
 
void satellitesInUseUpdated (const QList< QGeoSatelliteInfo > &satellites)
 If startUpdates() or requestUpdate() is called, this signal is emitted when an update is available on the number of satellites that are currently in use.
 
void errorOccurred (QGeoSatelliteInfoSource::Error)
 This signal is emitted after an error occurred.
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QGeoSatelliteInfoSource (QObject *parent)
 
virtual ~QGeoSatelliteInfoSource ()
 Destroys the satellite source.
 
QString sourceName () const
 Returns the unique name of the satellite source implementation in use.
 
virtual void setUpdateInterval (int msec)
 
int updateInterval () const
 
QBindable< int > bindableUpdateInterval ()
 
virtual int minimumUpdateInterval () const =0
 
virtual Error error () const =0
 Returns the last error that occurred.
 
virtual bool setBackendProperty (const QString &name, const QVariant &value)
 
virtual QVariant backendProperty (const QString &name) const
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Static Public Member Functions

static QGeoSatelliteInfoSourcecreateDefaultSource (QObject *parent)
 Creates and returns a source with the specified parent that reads from the system's default source of satellite update information, or the highest priority available plugin.
 
static QGeoSatelliteInfoSourcecreateSource (const QString &sourceName, QObject *parent)
 Creates and returns a source with the given parent, by loading the plugin named sourceName.
 
static QGeoSatelliteInfoSourcecreateDefaultSource (const QVariantMap &parameters, QObject *parent)
 Creates and returns a satellite source with the given parent that reads from the system's default sources of satellite data, or the plugin with the highest available priority.
 
static QGeoSatelliteInfoSourcecreateSource (const QString &sourceName, const QVariantMap &parameters, QObject *parent)
 Creates and returns a satellite source with the given parent, by loading the plugin named sourceName.
 
static QStringList availableSources ()
 Returns a list of available source plugins, including the default system backend if one is available.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 

Protected Member Functions

 QGeoSatelliteInfoSource (QGeoSatelliteInfoSourcePrivate &dd, QObject *parent)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Properties

int updateInterval
 This property holds the requested interval in milliseconds between each update.
 
int minimumUpdateInterval
 This property holds the minimum time (in milliseconds) required to retrieve a satellite update.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Additional Inherited Members

- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

\inmodule QtPositioning

Since
5.2

The QGeoSatelliteInfoSource class is an abstract base class for the distribution of satellite information updates.

The static function QGeoSatelliteInfoSource::createDefaultSource() creates a default satellite data source that is appropriate for the platform, if one is available. Otherwise, available QGeoPositionInfoSourceFactory plugins will be checked for one that has a satellite data source available.

Call startUpdates() and stopUpdates() to start and stop regular updates, or requestUpdate() to request a single update. When an update is available, satellitesInViewUpdated() and/or satellitesInUseUpdated() will be emitted.

If regular satellite updates are required, setUpdateInterval() can be used to specify how often these updates should be emitted. If no interval is specified, updates are simply provided whenever they are available. For example:

// Emit updates every 10 seconds if available
if (source)
source->setUpdateInterval(10000);
\inmodule QtPositioning
static QGeoSatelliteInfoSource * createDefaultSource(QObject *parent)
Creates and returns a source with the specified parent that reads from the system's default source of...
GLsizei GLsizei GLchar * source

To remove an update interval that was previously set, call setUpdateInterval() with a value of 0.

Note
The satellite source may have a minimum value requirement for update intervals, as returned by minimumUpdateInterval().
To use this class from Android service, see \l {Qt Positioning on Android}.

Definition at line 14 of file qgeosatelliteinfosource.h.

Member Enumeration Documentation

◆ Error

The Error enumeration represents the errors which can occur.

\value AccessError The connection setup to the satellite backend failed because the application lacked the required privileges. \value ClosedError The satellite backend closed the connection, which happens for example in case the user is switching location services to off. This object becomes invalid and should be deleted. A new satellite source can be created by calling createDefaultSource() later on. \value NoError No error has occurred. \value UnknownSourceError An unidentified error occurred. \value UpdateTimeoutError The current satellite information could not be retrieved within the specified timeout.

Enumerator
AccessError 
ClosedError 
NoError 
UnknownSourceError 
UpdateTimeoutError 

Definition at line 22 of file qgeosatelliteinfosource.h.

Constructor & Destructor Documentation

◆ QGeoSatelliteInfoSource() [1/2]

QGeoSatelliteInfoSource::QGeoSatelliteInfoSource ( QObject * parent)
explicit

Definition at line 64 of file qgeosatelliteinfosource.cpp.

◆ ~QGeoSatelliteInfoSource()

QGeoSatelliteInfoSource::~QGeoSatelliteInfoSource ( )
virtual

Destroys the satellite source.

Definition at line 78 of file qgeosatelliteinfosource.cpp.

◆ QGeoSatelliteInfoSource() [2/2]

QGeoSatelliteInfoSource::QGeoSatelliteInfoSource ( QGeoSatelliteInfoSourcePrivate & dd,
QObject * parent )
explicitprotected

Definition at line 69 of file qgeosatelliteinfosource.cpp.

Member Function Documentation

◆ availableSources()

QStringList QGeoSatelliteInfoSource::availableSources ( )
static

Returns a list of available source plugins, including the default system backend if one is available.

Definition at line 256 of file qgeosatelliteinfosource.cpp.

References QSet< T >::cbegin(), it, QGeoPositionInfoSourcePrivate::plugins(), and QStringLiteral.

+ Here is the call graph for this function:

◆ backendProperty()

QVariant QGeoSatelliteInfoSource::backendProperty ( const QString & name) const
virtual
Since
6.2 Returns the value of the backend-specific property named name, if present. Otherwise the returned value will be invalid.
See also
setBackendProperty

Reimplemented in QNmeaSatelliteInfoSource.

Definition at line 158 of file qgeosatelliteinfosource.cpp.

References Q_UNUSED.

◆ bindableUpdateInterval()

QBindable< int > QGeoSatelliteInfoSource::bindableUpdateInterval ( )

Definition at line 129 of file qgeosatelliteinfosource.cpp.

References d.

◆ createDefaultSource() [1/2]

QGeoSatelliteInfoSource * QGeoSatelliteInfoSource::createDefaultSource ( const QVariantMap & parameters,
QObject * parent )
static

Creates and returns a satellite source with the given parent that reads from the system's default sources of satellite data, or the plugin with the highest available priority.

Returns nullptr if the system has no default satellite source, no valid plugins could be found or the user does not have the permission to access the satellite information.

This method passes parameters to the factory to configure the source.

Since
Qt 5.14

Definition at line 214 of file qgeosatelliteinfosource.cpp.

References QGeoSatelliteInfoSourcePrivate::createSourceReal(), QObject::parent(), QGeoPositionInfoSourcePrivate::pluginsSorted(), qEnvironmentVariableIsSet(), and QStringLiteral.

+ Here is the call graph for this function:

◆ createDefaultSource() [2/2]

QGeoSatelliteInfoSource * QGeoSatelliteInfoSource::createDefaultSource ( QObject * parent)
static

Creates and returns a source with the specified parent that reads from the system's default source of satellite update information, or the highest priority available plugin.

Returns nullptr if the system has no default satellite source, no valid plugins could be found or the user does not have the permission to access the satellite data.

Definition at line 185 of file qgeosatelliteinfosource.cpp.

References createDefaultSource(), and QObject::parent().

Referenced by createDefaultSource().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createSource() [1/2]

QGeoSatelliteInfoSource * QGeoSatelliteInfoSource::createSource ( const QString & sourceName,
const QVariantMap & parameters,
QObject * parent )
static

Creates and returns a satellite source with the given parent, by loading the plugin named sourceName.

Returns nullptr if the plugin cannot be found.

This method passes parameters to the factory to configure the source.

Since
Qt 5.14

Definition at line 244 of file qgeosatelliteinfosource.cpp.

References QGeoSatelliteInfoSourcePrivate::createSourceReal(), QObject::parent(), QGeoPositionInfoSourcePrivate::plugins(), and sourceName().

+ Here is the call graph for this function:

◆ createSource() [2/2]

QGeoSatelliteInfoSource * QGeoSatelliteInfoSource::createSource ( const QString & sourceName,
QObject * parent )
static

Creates and returns a source with the given parent, by loading the plugin named sourceName.

Returns nullptr if the plugin cannot be found.

Definition at line 196 of file qgeosatelliteinfosource.cpp.

References createSource(), QObject::parent(), and sourceName().

Referenced by createSource().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ error()

QGeoSatelliteInfoSource::Error QGeoSatelliteInfoSource::error ( ) const
pure virtual

Returns the last error that occurred.

Note
Since Qt6 the last error is always reset when calling startUpdates() or requestUpdate().

Implemented in QGeoSatelliteInfoSourceAndroid, QGeoSatelliteInfoSourceGypsy, and QNmeaSatelliteInfoSource.

◆ errorOccurred

void QGeoSatelliteInfoSource::errorOccurred ( QGeoSatelliteInfoSource::Error satelliteError)
signal

This signal is emitted after an error occurred.

The satelliteError parameter describes the type of error that occurred.

Referenced by QNmeaSatelliteInfoSource::setError().

+ Here is the caller graph for this function:

◆ minimumUpdateInterval()

virtual int QGeoSatelliteInfoSource::minimumUpdateInterval ( ) const
pure virtual

◆ requestUpdate

void QGeoSatelliteInfoSource::requestUpdate ( int timeout = 0)
pure virtualslot

Attempts to get the current satellite information and emit satellitesInViewUpdated() and satellitesInUseUpdated() with this information.

If the current satellite information cannot be found within the given timeout (in milliseconds) or if timeout is less than the value returned by minimumUpdateInterval(), an errorOccurred() signal with \l {QGeoSatelliteInfoSource::UpdateTimeoutError} {UpdateTimeoutError} is emitted.

If the timeout is zero, the timeout defaults to a reasonable timeout period as appropriate for the source.

This does nothing if another update request is in progress. However it can be called even if startUpdates() has already been called and regular updates are in progress.

Note
Since Qt6 this method always resets the last error to \l {QGeoSatelliteInfoSource::}{NoError} before requesting the satellite information.
To understand how to use this method from an Android service, see \l {Qt Positioning on Android}.

◆ satellitesInUseUpdated

void QGeoSatelliteInfoSource::satellitesInUseUpdated ( const QList< QGeoSatelliteInfo > & satellites)
signal

If startUpdates() or requestUpdate() is called, this signal is emitted when an update is available on the number of satellites that are currently in use.

These are the satellites that are used to get a "fix" - that is, those used to determine the current position.

The satellites parameter holds the satellites currently in use.

Referenced by QNmeaSatelliteInfoSourcePrivate::emitUpdated(), QGeoSatelliteInfoSourceAndroid::processSatelliteUpdate(), and QGeoSatelliteInfoSourceGypsy::satellitesChanged().

+ Here is the caller graph for this function:

◆ satellitesInViewUpdated

void QGeoSatelliteInfoSource::satellitesInViewUpdated ( const QList< QGeoSatelliteInfo > & satellites)
signal

If startUpdates() or requestUpdate() is called, this signal is emitted when an update is available on the satellites that are currently in view.

The satellites parameter holds the satellites currently in view.

Referenced by QNmeaSatelliteInfoSourcePrivate::emitUpdated(), QGeoSatelliteInfoSourceAndroid::processSatelliteUpdate(), and QGeoSatelliteInfoSourceGypsy::satellitesChanged().

+ Here is the caller graph for this function:

◆ setBackendProperty()

bool QGeoSatelliteInfoSource::setBackendProperty ( const QString & name,
const QVariant & value )
virtual
Since
6.2 Sets the backend-specific property named name to value. Returns true on success, false otherwise. Backend-specific properties can be used to configure the satellite info subsystem behavior at runtime.
See also
backendProperty

Reimplemented in QNmeaSatelliteInfoSource.

Definition at line 144 of file qgeosatelliteinfosource.cpp.

References Q_UNUSED.

◆ setUpdateInterval()

void QGeoSatelliteInfoSource::setUpdateInterval ( int msec)
virtual

Reimplemented in QGeoSatelliteInfoSourceAndroid, and QNmeaSatelliteInfoSource.

Definition at line 117 of file qgeosatelliteinfosource.cpp.

References d.

Referenced by QGeoSatelliteInfoSourceAndroid::setUpdateInterval(), and QNmeaSatelliteInfoSource::setUpdateInterval().

+ Here is the caller graph for this function:

◆ sourceName()

QString QGeoSatelliteInfoSource::sourceName ( ) const

Returns the unique name of the satellite source implementation in use.

This is the same name that can be passed to createSource() in order to create a new instance of a particular satellite source implementation.

Definition at line 88 of file qgeosatelliteinfosource.cpp.

References d.

Referenced by createSource(), and createSource().

+ Here is the caller graph for this function:

◆ startUpdates

void QGeoSatelliteInfoSource::startUpdates ( )
pure virtualslot

Starts emitting updates at regular intervals.

The updates will be provided whenever new satellite information becomes available.

If satellite information cannot be retrieved or some other form of timeout has occurred the satellitesInViewUpdated() and satellitesInUseUpdated() signals may be emitted with empty parameter lists.

Note
Since Qt6 this method always resets the last error to \l {QGeoSatelliteInfoSource::}{NoError} before starting the updates.
To understand how to use this method from an Android service, see \l {Qt Positioning on Android}.
See also
satellitesInViewUpdated(), satellitesInUseUpdated()

◆ stopUpdates

void QGeoSatelliteInfoSource::stopUpdates ( )
pure virtualslot

Stops emitting updates at regular intervals.

◆ updateInterval()

int QGeoSatelliteInfoSource::updateInterval ( ) const

Definition at line 123 of file qgeosatelliteinfosource.cpp.

References d.

Property Documentation

◆ minimumUpdateInterval

QGeoSatelliteInfoSource::minimumUpdateInterval
read

This property holds the minimum time (in milliseconds) required to retrieve a satellite update.

This is the minimum value accepted by setUpdateInterval() and requestUpdate().

Definition at line 19 of file qgeosatelliteinfosource.h.

◆ updateInterval

QGeoSatelliteInfoSource::updateInterval
readwrite

This property holds the requested interval in milliseconds between each update.

If the update interval is not set (or is set to 0) the source will provide updates as often as necessary.

If the update interval is set, the source will provide updates at an interval as close to the requested interval as possible. If the requested interval is less than the minimumUpdateInterval(), the minimum interval is used instead.

Changes to the update interval will happen as soon as is practical, however the time the change takes may vary between implementations. Whether or not the elapsed time from the previous interval is counted as part of the new interval is also implementation dependent.

The default value for this property is 0.

Note
Subclass implementations must call the base implementation of setUpdateInterval() so that updateInterval() returns the correct value.

Definition at line 17 of file qgeosatelliteinfosource.h.

Referenced by QGeoSatelliteInfoSourceAndroid::requestUpdate(), QGeoSatelliteInfoSourceAndroid::setUpdateInterval(), AndroidPositioning::startSatelliteUpdates(), QNmeaSatelliteInfoSourcePrivate::startUpdates(), and QGeoSatelliteInfoSourceAndroid::startUpdates().


The documentation for this class was generated from the following files: