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()
値の報告を止めてください。
© 2026 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.