QSensorBackend Class
QSensorBackend クラスはセンサーの実装です。詳細...
ヘッダ | #include <QSensorBackend> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sensors) target_link_libraries(mytarget PRIVATE Qt6::Sensors) |
qmake: | QT += sensors |
継承: | QObject |
パブリック関数
void | addDataRate(qreal min, qreal max) |
void | addOutputRange(qreal min, qreal max, qreal accuracy) |
virtual bool | isFeatureSupported(QSensor::Feature feature) const |
void | newReadingAvailable() |
QSensorReading * | reading() const |
QSensor * | sensor() const |
void | sensorBusy(bool busy = true) |
void | sensorError(int error) |
void | sensorStopped() |
void | setDataRates(const QSensor *otherSensor) |
void | setDescription(const QString &description) |
T * | setReading(T *reading) |
virtual void | start() = 0 |
virtual void | stop() = 0 |
メンバ関数ドキュメント
void QSensorBackend::addDataRate(qreal min, qreal max)
センサーのデータレート(min とmax の値で構成)を追加する。
この関数はコンストラクタから呼び出す必要があることに注意。
QSensor::availableDataRatesも参照 。
void QSensorBackend::addOutputRange(qreal min, qreal max, qreal accuracy)
センサーの出力範囲(min 、max 値、accuracy で構成)を追加する。
この関数はコンストラクタから呼び出す必要があることに注意。
QSensor::outputRange およびQSensor::outputRangesも参照のこと 。
[virtual]
bool QSensorBackend::isFeatureSupported(QSensor::Feature feature) const
ある機能がこのセンサーのバックエンドでサポートされているかどうかをチェックする。
これはQSensor::isFeatureSupported() のバックエンド側である。バックエンドがQSensor::Feature の追加センサ機能のいずれかをサポートしている場合は、この関数を再実装する。
feature の機能がこのバックエンドでサポートされているかどうかを返します。デフォルトの実装は false を返します。
void QSensorBackend::newReadingAvailable()
QSensor クラスに新しい朗読があることを知らせる。
QSensorReading *QSensorBackend::reading() const
バックエンドが読み込みへの参照を失った場合、このメソッドを呼び出してアドレスを取得することができる。
適切な型にダウンキャストする必要があることに注意。
setReading()も参照 。
QSensor *QSensorBackend::sensor() const
このバックエンドに関連付けられたセンサーのフロントエンドを返します。
void QSensorBackend::sensorBusy(bool busy = true)
提供されたbusy パラメータに従って、センサーのビジー状態をフロントエンドに通知する。
センサーがビジー状態に設定されている場合、暗黙的にsensorStopped() を呼び出す。ビジー表示は通常start() で行われる。
センサーがビジー状態であるかどうかを確認するために、フロントエンドはQSensor::isBusy() を呼び出さなければならないことに注意。センサーがエラーにより停止した場合、sensorError()関数が呼び出され、エラー状 態をクラスに通知しなければならない。
void QSensorBackend::sensorError(int error)
センサーエラーが発生したことをフロントエンドに知らせる。これはerror コードを報告するだけであることに注意。センサーは停止しない。
sensorStopped()も参照のこと 。
void QSensorBackend::sensorStopped()
センサーが停止したことをフロントエンドに知らせる。これはstart() が失敗したため、または予期せぬ理由(ハードウェアの故障など)によるものである。
センサーが停止したかどうかを確認するために、フロントエンドはQSensor::isActive() を呼び出さなければならないことに注意。センサーがエラーにより停止した場合、sensorError()関数が呼び出され、エラー状態をクラスに通知しなければならない。
void QSensorBackend::setDataRates(const QSensor *otherSensor)
otherSensor に基づいてセンサーのデータレートを設定します。
これは、他のセンサーをベースとするセンサー用に設計されている。
setDataRates(otherSensor);
この関数はコンストラクタから呼び出す必要があることに注意。
QSensor::availableDataRates およびaddDataRate()も参照 。
void QSensorBackend::setDescription(const QString &description)
センサーのdescription を設定する。
この関数はコンストラクタから呼び出す必要がある。
template <typename T> T *QSensorBackend::setReading(T *reading)
この関数はセンサーに使用されるreading クラスを初期化するために呼び出されます。
バックエンドがすでに読み取り値を割り当てている場合は、そのアドレスをこの関数に渡す必要があります。そうでない場合は 0 を渡してください。この関数は、バックエンドが新しい読み取り値をセンサ API に通知する際に使用する読み取り値のアドレスを返します。
これはテンプレート関数なので、適切な型を指定して呼び出す必要があることに注意してください。
class MyBackend : public QSensorBackend { QAccelerometerReading m_reading; public: MyBackend(QSensor *sensor) : QSensorBackend(sensor) { setReading<QAccelerometerReading>(&m_reading); } ...
この関数を呼び出さないと、フロントエンドに測定値を送信できないことに注意してください。
読み取り値のアドレスを保存したくない場合は、reading() メソッドを使用して、後で再度取得することができます。
class MyBackend : public QSensorBackend { public: MyBackend(QSensor *sensor) : QSensorBackend(sensor) { setReading<QAccelerometerReading>(0); } void poll() { quint64 timestamp; qreal x, y, z; ... QAccelerometerReading *reading = static_cast<QAccelerometerReading*>(reading()); reading->setTimestamp(timestamp); reading->setX(x); reading->setY(y); reading->setZ(z); } ...
reading()も参照のこと 。
[pure virtual]
void QSensorBackend::start()
値の報告を開始する。
[pure virtual]
void QSensorBackend::stop()
値の報告を停止する。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.