Class: QgsGpsDetector

Detects connected GPS device ports.

Class Hierarchy

Inheritance diagram of qgis.core.QgsGpsDetector

Base classes

QObject

class qgis.core.QgsGpsDetector[source]

Bases: QObject

__init__(portName: str | None = '', useUnsafeSignals: bool = True)

Constructor for QgsGpsDetector.

If portName is specified, then only devices from the given port will be scanned. Otherwise all connection types will be attempted (including internal GPS devices).

Since QGIS 3.38, the useUnsafeSignals parameter can be set to False to avoid emitting the dangerous and fragile detected() signal. This is highly recommended, but is opt-in to avoid breaking stable QGIS 3.x API. If useUnsafeSignals is set to False, only the safe connectionDetected() signal will be emitted and clients must manually take ownership of the detected connection via a call to takeConnection().

Parameters:
  • portName (Optional[str] = '')

  • useUnsafeSignals (bool = True)

advance(self)[source]
static availablePorts() List[Tuple[str, str]]
Return type:

List[Tuple[str, str]]

connDestroyed(self, a0: QObject | None)[source]
Parameters:

a0 (Optional[QObject])

signal connectionDetected[source]

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

signal detected[source]

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

signal detectionFailed[source]

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

takeConnection(self) QgsGpsConnection | None[source]

Returns the detected GPS connection, and removes it from the detector.

The caller takes ownership of the connection. Only the first call to this method following a connectionDetected() signal will be able to retrieve the detected connection – subsequent calls will return None.

Warning

Do not call this method if the useUnsafeSignals option in the QgsGpsDetector constructor was set to True.

Added in version 3.38.

Return type:

Optional[QgsGpsConnection]