QNmeaPositionInfoSource Class

QNmeaPositionInfoSource クラスは、NMEA データソースを使用して位置情報を提供します。詳細...

Header: #include <QNmeaPositionInfoSource>
CMake: find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake: QT += positioning
Inherits: QGeoPositionInfoSource

パブリック型

enum UpdateMode { RealTimeMode, SimulationMode }

パブリック関数

QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)
virtual ~QNmeaPositionInfoSource()
QIODevice *device() const
void setDevice(QIODevice *device)
void setUserEquivalentRangeError(double uere)
QNmeaPositionInfoSource::UpdateMode updateMode() const
double userEquivalentRangeError() const

再実装パブリック関数

virtual QGeoPositionInfoSource::Error error() const override
virtual QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const override
virtual int minimumUpdateInterval() const override
virtual void setUpdateInterval(int msec) override
virtual QGeoPositionInfoSource::PositioningMethods supportedPositioningMethods() const override

パブリックスロット

virtual void requestUpdate(int msec = 0) override
virtual void startUpdates() override
virtual void stopUpdates() override

保護された関数

virtual bool parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)

詳細説明

NMEAは、ある時点のグローバルな位置を指定するために一般的に使用されているプロトコルです。QNmeaPositionInfoSource クラスは NMEA データを読み取り、それを使用してQGeoPositionInfo オブジェクトの形式で位置データを提供します。

QNmeaPositionInfoSource インスタンスは、RealTimeMode またはSimulationMode のいずれかで動作します。これらのモードでは、NMEA データを位置データのライブ・ソースから読み取るか、または以前に記録された NMEA データからシミュレーション用に再生することができます。

NMEA データのソースはsetDevice() で設定します。

定期的な位置更新の受信を開始するにはstartUpdates() を使用し、これらの更新を停止するにはstopUpdates() を使用します。たまにしか更新を必要としない場合は、requestUpdate() を呼び出して、1 回だけ更新を要求することができます。

どちらの場合も、位置情報はpositionUpdated() シグナルを介して受信され、lastKnownPosition() を使用して、最後に認識された位置にアクセスすることができる。

QNmeaPositionInfoSource は、水平位置と垂直位置の精度報告をサポートしています。位置精度の報告を有効にするには、NMEA ソースに関連付けられているユーザー等価レンジ誤差の推定値をsetUserEquivalentRangeError() で設定する必要があります。

メンバ・タイプの説明

enum QNmeaPositionInfoSource::UpdateMode

利用可能な更新モードを定義します。

定数説明
QNmeaPositionInfoSource::RealTimeMode1位置データは、利用可能になるとデータソースから読み込まれ、配信されます。位置データのライブ・ソース(GPSハードウェア・デバイスなど)を使用している場合は、このモードを使用します。
QNmeaPositionInfoSource::SimulationMode2NMEAソース・データのデータと時間情報は、データが最初に記録されたレートで位置更新を提供するために使用されます。このモードは、データソースに以前に記録されたNMEAデータが含まれており、シミュレーション目的でデータを再生したい場合に使用します。

メンバ関数ドキュメント

[explicit] QNmeaPositionInfoSource::QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)

与えられたparentupdateMode で QNmeaPositionInfoSource インスタンスを構築します。

[virtual noexcept] QNmeaPositionInfoSource::~QNmeaPositionInfoSource()

位置情報ソースを破棄します。

QIODevice *QNmeaPositionInfoSource::device() const

NMEA データソースを返します。

setDevice()も参照してください

[override virtual] QGeoPositionInfoSource::Error QNmeaPositionInfoSource::error() const

再インプリメント:QGeoPositionInfoSource::error() const.

[override virtual] QGeoPositionInfo QNmeaPositionInfoSource::lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const

再インプリメント:QGeoPositionInfoSource::lastKnownPosition(bool fromSatellitePositioningMethodsOnly) const.

[override virtual] int QNmeaPositionInfoSource::minimumUpdateInterval() const

プロパティのアクセス関数を再実装:QGeoPositionInfoSource::minimumUpdateInterval

[virtual protected] bool QNmeaPositionInfoSource::parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)

NMEA 文の文字列をQGeoPositionInfo にパースします。

デフォルトの実装では、標準 NMEA 文を解析します。このメソッドは、非標準の NMEA 文を処理する必要が生じたときにサブクラスで再実装する必要があります。

パーサーはdata からsize バイトを読み取り、その情報を使用してposInfohasFix をセットアップします。hasFix が false に設定されている場合、posInfo には時刻のみ、または日付と時刻を含めることができます。

文の解析に成功した場合はtrueを返し、そうでない場合はfalseを返し、posInfo またはhasFix を変更すべきではありません。

[override virtual slot] void QNmeaPositionInfoSource::requestUpdate(int msec = 0)

再インプリメント:QGeoPositionInfoSource::requestUpdate(intタイムアウト)。

void QNmeaPositionInfoSource::setDevice(QIODevice *device)

NMEA データソースをdevice に設定します。デバイスがオープンされていない場合、QIODevice::ReadOnly モードでオープンされます。

ソース・デバイスは 1 回のみ設定でき、startUpdates() またはrequestUpdate() を呼び出す前に設定する必要があります。

注意:データが読み取り可能になったときにソースに通知するには、deviceQIODevice::readyRead() を発行する必要があります。QNmeaPositionInfoSource はデバイスの所有権を想定していないため、破棄時にデバイスの割り当てを解除することはありません。

device()も参照のこと

[override virtual] void QNmeaPositionInfoSource::setUpdateInterval(int msec)

プロパティのアクセス関数を再実装:QGeoPositionInfoSource::updateInterval

void QNmeaPositionInfoSource::setUserEquivalentRangeError(double uere)

User Equivalent Range Error (UERE) をuere に設定する。 UERE は、位置情報ソースが報告する位置情報の精度の推定値を計算する際に使用される。UERE は、NMEA ストリームを生成した GPS デバイスに適した値に設定する必要があります。

真のUERE値は、受信側のGPS機器によってもたらされる誤差だけでなく、衛星によってもたらされる誤差や大気を通過する信号伝搬遅延を含む複数の誤差源から計算されます。GPS精度の詳細については、Sam J. Wormley, GPS Errors & Estimating Your Reveiver's Accuracyを参照してください。

UEREの典型的な値は約5.1です。

userEquivalentRangeError()も参照

[override virtual slot] void QNmeaPositionInfoSource::startUpdates()

再インプリメント:QGeoPositionInfoSource::startUpdates().

[override virtual slot] void QNmeaPositionInfoSource::stopUpdates()

再インプリメント:QGeoPositionInfoSource::stopUpdates().

[override virtual] QGeoPositionInfoSource::PositioningMethods QNmeaPositionInfoSource::supportedPositioningMethods() const

再リプルメント:QGeoPositionInfoSource::supportedPositioningMethods() const.

QNmeaPositionInfoSource::UpdateMode QNmeaPositionInfoSource::updateMode() const

更新モードを返します。

double QNmeaPositionInfoSource::userEquivalentRangeError() const

現在のUser Equivalent Range Error (UERE) を返します。UERE は、位置情報ソースから報告された位置情報の精度の推定値を計算する際に使用される。デフォルト値は NaN であり、これは精度情報が提供されないことを意味する。

setUserEquivalentRangeError()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。