QSensor Class
QSensorクラスは、1つのハードウェアセンサーを表します。詳細...
ヘッダー | #include <QSensor> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sensors) target_link_libraries(mytarget PRIVATE Qt6::Sensors) |
qmake: | QT += sensors |
を継承する: | QObject |
継承される |
パブリックタイプ
enum | AxesOrientationMode { FixedOrientation, AutomaticOrientation, UserOrientation } |
enum | Feature { Buffering, AlwaysOn, SkipDuplicates, GeoValues, FieldOfView, …, AxesOrientation } |
プロパティ
|
|
パブリック機能
QSensor(const QByteArray &type, QObject *parent = nullptr) | |
virtual | ~QSensor() |
void | addFilter(QSensorFilter *filter) |
qrangelist | availableDataRates() const |
QSensor::AxesOrientationMode | axesOrientationMode() const |
int | bufferSize() const |
bool | connectToBackend() |
int | currentOrientation() const |
int | dataRate() const |
QString | description() const |
int | efficientBufferSize() const |
int | error() const |
QList<QSensorFilter *> | filters() const |
QByteArray | identifier() const |
bool | isActive() const |
bool | isAlwaysOn() const |
bool | isBusy() const |
bool | isConnectedToBackend() const |
bool | isFeatureSupported(QSensor::Feature feature) const |
int | maxBufferSize() const |
int | outputRange() const |
qoutputrangelist | outputRanges() const |
QSensorReading * | reading() const |
void | removeFilter(QSensorFilter *filter) |
void | setActive(bool active) |
void | setAlwaysOn(bool alwaysOn) |
void | setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode) |
void | setBufferSize(int bufferSize) |
void | setCurrentOrientation(int currentOrientation) |
void | setDataRate(int rate) |
void | setEfficientBufferSize(int efficientBufferSize) |
void | setIdentifier(const QByteArray &identifier) |
void | setMaxBufferSize(int maxBufferSize) |
void | setOutputRange(int index) |
void | setSkipDuplicates(bool skipDuplicates) |
void | setUserOrientation(int userOrientation) |
bool | skipDuplicates() const |
QByteArray | type() const |
int | userOrientation() const |
パブリックスロット
シグナル
void | activeChanged() |
void | alwaysOnChanged() |
void | availableSensorsChanged() |
void | axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode) |
void | bufferSizeChanged(int bufferSize) |
void | busyChanged() |
void | currentOrientationChanged(int currentOrientation) |
void | dataRateChanged() |
void | efficientBufferSizeChanged(int efficientBufferSize) |
void | identifierChanged() |
void | maxBufferSizeChanged(int maxBufferSize) |
void | readingChanged() |
void | sensorError(int error) |
void | skipDuplicatesChanged(bool skipDuplicates) |
void | userOrientationChanged(int userOrientation) |
静的パブリックメンバー
QByteArray | defaultSensorForType(const QByteArray &type) |
QList<QByteArray> | sensorTypes() |
QList<QByteArray> | sensorsForType(const QByteArray &type) |
関連する非メンバー
詳細説明
センサーのライフサイクルは通常
- スタックまたはヒープ上にQSensorのサブクラスを作成する。
- アプリケーションの必要に応じてセットアップを行う。
- 値の受信を開始する。
- センサーデータがアプリケーションによって使用される。
- 値の受信を停止する。
センサーデータは、QSensorReading とそのサブクラスを経由して配信されます。
オリエンテーション
QAccelerometer,QMagnetometer,QRotationSensor のように、画面の向きの変化に反応するセンサーもあります。これらはいわゆるオリエンテー ブルセンサーと呼ばれる。Orientable センサーの場合、QSensor は画面の向きに基づいて読み取り値のレポートを変更することをサポートする。
Orientable センサーでは、axesOrientationMode プロパティが、方向が読み取り値にどのように影響するかを制御します。
デフォルトモードのQSensor::FixedOrientation では、読み取り値は向きの影響を受けません。QSensor::AutomaticOrientation モードでは、読み取り値は現在の画面の向きを考慮して自動的に回転します。最後に、QSensor::UserOrientation モードでは、読み取り値はユーザーが指定した方向に従って回転されます。
この機能は、バックエンドがサポートしており、センサーがオリエンテーション可能である場合にのみ利用可能である。これは、QSensor::AxesOrientation フラグを指定してQSensor::isFeatureSupported() を呼び出すことで確認できる。
ここでのオリエンテーションの値は、デバイスのオリエンテーションではなく、常にスクリーンのオリエンテーションである。スクリーンの向きはGUIの向きです。例えば、デバイスを反時計回りに90度回転させると、スクリーンの向きは時計回りに90度回転することで補正されます。アプリケーションは画面の向きをロックすることができ、例えば縦向きや横向きを強制することができます。ロックされたオリエンテーションの場合、オリエンタブルセンサーはスクリーンのオリエンテーションの変更のみに反応するため、デバイスのオリエンテーションが変更された場合、オリエンタブルセンサーは読み取り変更に反応しません。オリエンタブルセンサーの目的は、センサーの向きをスクリーンの向きと同期させることなので、これは理にかなっています。
オリエンテーションの値の範囲は0度から270度までです。オリエンテーションは時計回りの方向に適用されます。例えば、オリエンテーション値が90度というのは、デバイスが左に90度回転したのを補正するために、スクリーンが原点位置から右に90度回転したことを意味します。
QSensorReadingも参照 。
メンバ型ドキュメント
enum QSensor::AxesOrientationMode
読み取り値が画面の向きによってどのような影響を受けるかを説明する。
定数 | 値 | 説明 |
---|---|---|
QSensor::FixedOrientation | 0 | 読み取り値に自動回転は適用されない。 |
QSensor::AutomaticOrientation | 1 | 読み取り値は、画面の向きに基づいて自動的に回転されます。 |
QSensor::UserOrientation | 2 | 読み取り値は、userOrientation プロパティの角度に基づいて回転されます。 |
QSensor::axesOrientationModeも参照 。
enum QSensor::Feature
バックエンドがサポートする可能性のあるオプション機能を列挙します。
すべてのセンサタイプに共通する機能は以下の通りです:
定数 | 値 | 説明 |
---|---|---|
QSensor::Buffering | 0 | QSensor::bufferSize プロパティによって制御される。 |
QSensor::AlwaysOn | 1 | バックエンドは、QSensor::alwaysOn プロパティによって制御される、アイドル時にサスペンドするかどうかのポリシーの変更をサポートする。 |
QSensor::SkipDuplicates | 5 | バックエンドは、同一または非常に類似した連続する読み取り値のスキップをサポートする。これは、QSensor::skipDuplicates プロパティを true に設定することで有効になる。 |
QMagnetometer の特徴は以下の通りである:
定数 | 値 | 説明 |
---|---|---|
QSensor::GeoValues | 2 | バックエンドはジオ値を返すことをサポートしており、これはQMagnetometer::returnGeoValues プロパティで制御できます。 |
QLightSensor の特徴は以下の通りです:
定数 | 値 | 説明 |
---|---|---|
QSensor::FieldOfView | 3 | バックエンドはその視野を指定し、QLightSensor::fieldOfView プロパティから読み取ることができます。 |
QAccelerometer の特徴は以下の通りです:
定数 | 値 | 説明 |
---|---|---|
QSensor::AccelerationMode | 4 | バックエンドは、QAccelerometer::accelerationMode プロパティで加速装置の加速モードの切り替えをサポートする。 |
QPressureSensor の特徴は以下の通りです:
定数 | 値 | 説明 |
---|---|---|
QSensor::PressureSensorTemperature | 7 | バックエンドは圧力センサーのダイ温度を提供します。 |
全てのオリエンタブルセンサーの特徴は以下の通りです:
定数 | 値 | 説明 |
---|---|---|
QSensor::AxesOrientation | 6 | バックエンドは軸の向きをデフォルトのQSensor::FixedOrientation から変更することをサポートしています。 |
QSensor::isFeatureSupported()も参照してください 。
プロパティの説明
active : bool
このプロパティは、センサーがアクティブであるかどうかを示す値を保持する。
センサーがアクティブである(値を返す)場合、これは真である。そうでない場合は false となる。
この値をtrueに設定しても、すぐに効果が出るわけではないことに注意してください。代わりに、イベントループに到達した時点でセンサーが開始される。
アクセス関数
bool | isActive() const |
void | setActive(bool active) |
通知シグナル
void | activeChanged() |
alwaysOn : bool
このプロパティは、スクリーンがオフのときにセンサーが実行されたままであるべきかどうかを示す値を保持する。
プラットフォームによっては、画面がオフになったときにセンサーを一時停止するポリシーがあります。このプロパティをtrueに設定することで、センサーが実行され続けることを保証します。
アクセス関数
bool | isAlwaysOn() const |
void | setAlwaysOn(bool alwaysOn) |
通知シグナル
void | alwaysOnChanged() |
[read-only]
availableDataRates : const qrangelist
このプロパティは、センサーがサポートするデータレートを保持する。
センサーがサポートするデータレートのリストである。単位はヘルツ。
リスト内のエントリは、離散レートまたは連続レートの範囲を表すことができます。離散レートは両方の値が同じであることで示されます。
すべてのセンサーが動作するレートを持っているわけではないので、この情報は必須ではないことに注意してください。そのような場合、リストは空になります。
アクセス関数:
qrangelist | availableDataRates() const |
QSensor::dataRate およびqrangelistも参照のこと 。
axesOrientationMode : AxesOrientationMode
このプロパティは、画面の向きが読み取り値をどのように変更するかに影響するモードを保持する。
デフォルトのモードであるFixedOrientation に設定すると、自動回転は適用されません。これは、QSensor::AxesOrientation 機能をサポートしていないバックエンドで使用できる唯一のモードです。
AutomaticOrientation に設定すると、画面の向きが変わったときに読み取り値が自動的に回転する。事実上、画面の向きはキャンセルされる。
例として、デバイスが180度回転し、そのため画面の向きもネイティブの向きから180度回転したとします。自動軸オリエンテーションがなければ、読み取り値は変更されます。X値とY値の両方が否定され、アプリケーション開発者はアプリケーションコードで否定を手動でキャンセルすることを余儀なくされます。このモードでは、X と Y の値はデフォルトの画面の向きと同じになります。
この軸の自動回転は、例えば、加速度センサーのX軸の値を見て、表面がどの程度水平であるかを測定するバブル水準器アプリケーションなど、いくつかの用途で便利です。デバイスと画面の向きが90度変わっても、アプリケーション開発者は何も変更する必要がなく、デバイスが回転してもX軸の値を使い続けることができます。自動軸オリエンテーションがなければ、アプリケーション開発者は代わりにY値を見る必要があり、それによって、画面の向きによって異なる軸から読み取るコードをアプリケーションに追加することになります。
UserOrientation モードはAutomaticOrientation とよく似ていますが、画面の向きが自動的に決定されるのではな く、手動で制御されるだけです。userOrientation プロパティの角度は、読み取り値の回転に使用されます。
読み取り値の回転は画面の向きに基づいて行われるため、Z軸は画面に垂直であるため、Z値が変化することはありません。画面の向きは90度単位で変化するので、読み取り値の回転も90度単位で行われる。
このプロパティは、オリエンタブルセンサにのみ使用される。
アクセス関数
QSensor::AxesOrientationMode | axesOrientationMode() const |
void | setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode) |
通知信号:
void | axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode) |
bufferSize : int
このプロパティはバッファのサイズを保持する。デフォルトでは、バッファサイズは1であり、これはバッファリングなしを意味する。最大バッファサイズが 1 の場合、バッファリングはセンサーによってサポートされていません。
bufferSizeをmaxBufferSize より大きく設定すると、maxBufferSize 。
bufferSize が 1 より大きい場合、バッファリングはオンになります。センサーは要求された数のサンプルを収集し、一度にアプリケーショ ンに配信します。センサーは要求された数のサンプルを収集し、一度に全てアプリケーションに配信する。アプリケーションには、変更された読み取り値のバーストとして配信されるため、アプリケーションは各読み取り値を即座に処理するか、どこかに保存することが特に重要である。
バッファリングが進行中にstop() が呼び出された場合、部分的なバッファは配信されません。
センサがバッファリングオプション付きで起動されると、その時点から値が収集されます。既存のバッファを利用することはできません。
いくつかのバックエンドはバッファの有効化または無効化のみをサポートし、サイズの制御は行いません。この場合、maxBufferSize およびefficientBufferSize プロパティは、バッファリングがサポートされているにもかかわらず、まったく設定されない可能性があります。bufferSize プロパティを 1 より大きい値に設定すると、バッファリングが有効になる。センサーの起動後、bufferSize プロパティはバックエンドによって実際の値に設定される。
アクセス関数
int | bufferSize() const |
void | setBufferSize(int bufferSize) |
アクセス関数: Notifier シグナル:
void | bufferSizeChanged(int bufferSize) |
QSensor::maxBufferSize およびQSensor::efficientBufferSizeも参照のこと 。
[read-only]
busy : const bool
このプロパティは、センサがビジー状態であるかどうかを示す値を保持する。
センサーによっては、システム上にあるが使用できない場合がある。センサーがビジー状態の場合、この関数は true を返します。センサーをstart() することはできません。
センサーを使用している場合、この関数は真を返さないことに注意してください。
アクセス関数
bool | isBusy() const |
通知シグナル:
void | busyChanged() |
busyChanged()も参照のこと 。
[read-only]
connectedToBackend : const bool
このプロパティは、センサーがバックエンドに接続しているかどうかを示す値を保持する。
バックエンドに接続されていないセンサーは、何も役に立ちません。
センサーを直ちにバックエンドに接続させるには、connectToBackend() メソッドを呼び出します。このメソッドはstart() を呼び出すと自動的に呼び出されるので、センサーのプロパティにアクセスする必要がある場合にのみ実行する必要がある(例えば、センサーのメタデータを使用する前にポーリングする)。
アクセス関数
bool | isConnectedToBackend() const |
[read-only]
currentOrientation : const int
このプロパティは、読み取り値の回転に使用される現在の向きを保持する。
これは画面の向きと同じではないかもしれない。例えば、FixedOrientation モードでは、読み取り値は回転されないため、このプロパティは 0 となる。
UserOrientation モードでは、userOrientation プロパティに基づいて読み取り値が回転されるため、このプロパティはuserOrientation プロパティと等しくなります。
AutomaticOrientation モードでは、読み取り値は画面の向きに基づいて回転されるため、このプロパティは現在の画面の向きと等しくなる。
このプロパティはバックエンドによって設定され、オリエンテッドセンサーに対してのみ有効である。
アクセス関数
int | currentOrientation() const |
通知シグナル:
void | currentOrientationChanged(int currentOrientation) |
dataRate : int
このプロパティは、センサーが実行されるべきデータレートを保持する。
単位はヘルツ。
データレートはセンサーが変化を検出できる最大周波数である。
このプロパティの設定はポータブルではなく、他のアプリケーションとの競合を引き起こす可能性があります。データレートを要求する複数のアプリケーションに関するポリシーについては、センサーのバックエンドやプラットフォームのドキュメントを確認してください。
デフォルト値(0)は、アプリがデータレートを気にしないことを意味する。プラットフォームは毎秒数百回のアップデートを提供する可能性があるため、アプリケーションはタイマベースの現在値のポーリングを使用するか、値を処理するコードが非常に高速に実行できるようにすることを検討する必要があります。
この値は、start()を呼び出す前に設定されるべきである。なぜなら、センサーは実行中にこの値の変化に気づかない可能性があるからである。
プラットフォームが現在使用しているデータレートを決定するメカニズムはないことに注意。
アクセス関数
int | dataRate() const |
void | setDataRate(int rate) |
Notifier シグナル:
void | dataRateChanged() |
QSensor::availableDataRatesも参照のこと 。
[read-only]
description : const QString
このプロパティは、センサーの説明文字列を保持する。
アクセス関数
QString | description() const |
[read-only]
efficientBufferSize : const int
このプロパティは、最も効率的なバッファサイズを保持する。通常これは1である(特定のサイズが最も効率的でないことを意味する)。センサードライバーによっては、FIFOバッファを持ち、一度にFIFOサイズ分の読み取り値を配信する方が効率的なものもある。
アクセス機能:
int | efficientBufferSize() const |
ノーティファイア信号:
void | efficientBufferSizeChanged(int efficientBufferSize) |
QSensor::bufferSize およびQSensor::maxBufferSizeも参照のこと 。
[read-only]
error : const int
このプロパティは、センサーに設定された最後のエラーコードを保持する。
エラーコードはセンサー固有のものであることに注意。
アクセス関数
int | error() const |
通知信号
void | sensorError(int error) |
identifier : QByteArray
このプロパティはセンサーのバックエンド識別子を保持する。
この識別子は、センサがバックエンドに接続されたときに自動的に入力されることに注意しましょう。特定のバックエンドに接続したい場合は、connectToBackend() の前に setIdentifier() を呼び出す必要があります。
アクセス関数
QByteArray | identifier() const |
void | setIdentifier(const QByteArray &identifier) |
Notifier シグナル:
void | identifierChanged() |
[read-only]
maxBufferSize : const int
このプロパティは、最大バッファサイズを保持する。
この場合、センサーはバッファリングをサポートしません。その場合、isFeatureSupported(QSensor::Buffering) も false を返します。
アクセス関数
int | maxBufferSize() const |
通知シグナル:
void | maxBufferSizeChanged(int maxBufferSize) |
QSensor::bufferSize およびQSensor::efficientBufferSizeも参照のこと 。
outputRange : int
本プロパティは、センサーが使用する出力レンジを保持する。
この値は、使用するQSensor::outputRanges リストのインデックスを表す。
このプロパティの設定はポータブルではなく、他のアプリケーションとの競合を引き起こす可能性があります。出力範囲を要求する複数のアプリケーションに関するポリシーについては、センサーのバックエンドとプラットフォームのドキュメントを確認してください。
デフォルト値(-1)は、アプリが出力範囲を気にしないことを意味する。
プラットフォームが現在使用している出力範囲を決定するメカニズムはないことに注意。
アクセス関数:
int | outputRange() const |
void | setOutputRange(int index) |
QSensor::outputRangesも参照の こと。
[read-only]
outputRanges : const qoutputrangelist
このプロパティは、センサーがサポートする出力レンジのリストを保持する。
センサは複数の出力レンジを持つことができる。通常、これは精度を下げる代償として、より広い測定範囲を与えるために行われる。
この情報は必須ではないことに注意。この情報は通常、選択可能な出力レンジを持つセンサー(一般的な加速度センサーなど)でのみ利用可能です。
アクセス関数:
qoutputrangelist | outputRanges() const |
QSensor::outputRange およびqoutputrangelistも参照してください 。
[read-only]
reading : QSensorReading* const
このプロパティは、読み取りクラスを保持する。
読み取りクラスはセンサーの読み取り値へのアクセスを提供します。読み取り値オブジェクトは、受信した最新のセンサー読み取り値の揮発性キャッシュであるため、アプリケーションは読み取り値を即座に処理するか、後の処理のためにどこかに保存する必要があります。
センサーがバックエンドに接続されるまでは 0 を返すことに注意してください。
また、start()が呼び出された後、読み取り値はすぐには利用できないことに注意すること。アプリケーションはreadingChanged() シグナルが発せられるのを待つ必要がある。
アクセス関数
QSensorReading * | reading() const |
Notifier シグナル:
void | readingChanged() |
isConnectedToBackend() およびstart()も参照のこと 。
skipDuplicates : bool
重複する読み取り値を省略するかどうかを示す。
重複スキップが有効な場合、同一または非常に類似した値を持つ連続した読み取り値は省略されます。これにより、利用可能なセンサーの読み取り値が少なくなるため、処理量の削減に役立ちます。その結果、読み取り値は不規則な間隔で到着します。
重複スキップは、全く同じ読み取り値だけでなく、非常に類似した読み取り値に対しても有効である。
このプロパティのサポートはバックエンドに依存する。現在のプラットフォームでサポートされているかどうかを確認するには、isFeatureSupported() を使用してください。
重複スキップはデフォルトでは無効です。
重複スキップはセンサーが起動したときに有効になるため、センサーがアクティブな状態でプロパティを変更しても、即座に反映されることはありません。
アクセス関数
bool | skipDuplicates() const |
void | setSkipDuplicates(bool skipDuplicates) |
通知シグナル
void | skipDuplicatesChanged(bool skipDuplicates) |
[read-only]
type : const QByteArray
本プロパティは、センサーのタイプを保持する。
アクセス関数
QByteArray | type() const |
userOrientation : int
本プロパティは、UserOrientation モードにおいて、読取値の回転に使用する角度を保持する。
axesOrientationMode プロパティがUserOrientation に設定されている場合、読み取り値の回転に使用される角度はこのプロパティから取得される。その他のモードでは、このプロパティは何の効果もない。
デフォルトは0である。有効な値は0、90、180、270のみである。
このプロパティは、オリエンタブルセンサにのみ有効である。
アクセス関数:
int | userOrientation() const |
void | setUserOrientation(int userOrientation) |
通知シグナル:
void | userOrientationChanged(int userOrientation) |
メンバ関数ドキュメント
[explicit]
QSensor::QSensor(const QByteArray &type, QObject *parent = nullptr)
parent の子としてtype センサーを構築する。
特定のセンサータイプの派生クラスが存在する場合は、このコンストラクタを使用しないでください。
間違った方法は基底クラスのコンストラクタを使用することです:
QSensor *magnetometer = new QSensor(QMagnetometer::sensorType, this);
正しい方法は派生クラスのインスタンスを作成することです:
QMagnetometer *magnetometer = new QMagnetometer(this);
派生クラスは、QMagnetometer におけるジオ値のサポートやQAccelerometer における加速度モードのサポートなど、特定の機能に必要な追加のプロパティやデータメンバーを持っています。これらの機能は、QSensor のサブクラスからセンサーのインスタンスを作成した場合のみ、正しく動作します。
派生センサクラスがない場合のみ、このコンストラクタを使用してください。すべてのビルトインセンサーは派生クラスを持っているので、このコンストラクタの使用はカスタムセンサーを実装するときにのみ必要であることに注意してください。
[virtual noexcept]
QSensor::~QSensor()
センサーを破壊する。センサーがまだ停止していなければ停止する。
[signal]
void QSensor::activeChanged()
このシグナルは、QSensor::active プロパティが変更されたときに発行される。
注意: active プロパティのノーティファイアシグナル。
QSensor::activeも参照 。
void QSensor::addFilter(QSensorFilter *filter)
センサーにfilter を追加する。
センサーはフィルターの所有権を持たない。QSensorFilter はフィルターが破壊された場合、センサーに通知する。
QSensorFilterも参照して ください。
[signal]
void QSensor::alwaysOnChanged()
このシグナルは、alwaysOn プロパティが変更されたときに発行される。
注: プロパティalwaysOn に対するノーティファイアシグナル。
[signal]
void QSensor::availableSensorsChanged()
このシグナルは、利用可能なセンサーのリストが変更されたときに発せられる。プログラムで利用可能なセンサーは、一般的に時間の経過とともに変化することはありませんが、利用可能なセンサーの中には、常時接続されていないハードウェアを表すものもあります。例えば、ブルートゥースで接続されたゲーム・コントローラは、オンにすると利用可能になり、オフにすると利用できなくなる。
QSensor::sensorTypes() およびQSensor::sensorsForType()も 参照のこと。
[signal]
void QSensor::busyChanged()
このシグナルはセンサーがビジーでなくなったときに発せられる。これは、センサーが利用可能になったときにセンサーを取得するために使用することができる。
sensor.start(); if (sensor.isBusy()) { // need to wait for busyChanged signal and try again }
注: busy プロパティ用のノーティファイアシグナル。
[invokable]
bool QSensor::connectToBackend()
センサーのバックエンドへの接続を試みる。
適切なバックエンドが見つかれば true を返し、見つからなければ false を返す。
QSensor を直接使用している場合は、このメソッドを呼び出す前に型を設定する必要があります。
注意: この関数はメタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。
isConnectedToBackend()も参照してください 。
[static]
QByteArray QSensor::defaultSensorForType(const QByteArray &type)
type のデフォルトのセンサー識別子を返す。これは設定ファイルで設定され、必要に応じて上書きすることができる。デフォルトがない場合、システムはtype に最初に登録されたセンサーを返す。
別のバックエンドが同じタイプで登録された場合に、ジェネリックプラグインのバックエンドがデフォルトになることを防ぐための特別なケースロジックがあることに注意すること。このロジックは、generic.
で始まるバックエンド識別子がデフォルトになるのは、そのタイプに対して他のバックエンドが登録されていないか、Sensors.conf
で指定されている場合のみであることを意味します。
型のデフォルトセンサーの決定も参照 。
QList<QSensorFilter *> QSensor::filters() const
現在センサーに取り付けられているフィルターを返す。
QSensorFilterも参照 。
[invokable]
bool QSensor::isFeatureSupported(QSensor::Feature feature) const
特定の機能がバックエンドでサポートされているかどうかをチェックする。
QtSensors はセンサーの制御や情報提供のための豊富なAPIをサポートしている。当然ながら、この機能のすべてがすべてのバックエンドでサポートされているわけではありません。
現在のバックエンドがfeature の機能をサポートしているかどうかを調べるには、この関数をコールします。
バックエンドが接続されている必要があり、接続されていない場合は false が返される。connectToBackend() あるいはstart() をコールすると、バックエンドとの接続が作成されます。
バックエンドはQSensorBackend::isFeatureSupported() を実装している必要があります。
バックエンドが接続されている場合はその機能がサポートされているかどうかを返し、 接続されていない場合は false を返します。
注意: この関数はメタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。
[signal]
void QSensor::readingChanged()
この信号は、新しいセンサーの読み取り値を受信したときに発信される。
センサーの読み取り値はQSensor::reading プロパティで確認できます。readingオブジェクトは、受信した最新のセンサー読み取り値の揮発性キャッシュであるため、アプリケーションは読み取り値を直ちに処理するか、後の処理のために値をどこかに保存する必要があることに注意してください。
このシグナルが初めて発信される前は、reading オブジェクトは初期化されていないデータを持っている。
備考: プロパティreading に対するノーティファイア・シグナル。
start()も参照のこと 。
void QSensor::removeFilter(QSensorFilter *filter)
filter をセンサーから外す。
QSensorFilterも参照 。
[signal]
void QSensor::sensorError(int error)
この信号は、センサーにerror コードが設定されたときに発せられます。いくつかのエラーはセンサーの動作を停止させることに注意してください。isActive() を呼び出して、センサーがまだ動作しているかどうかを判断する必要があります。
注意: error プロパティのノーティファイアシグナル。
[static]
QList<QByteArray> QSensor::sensorTypes()
すべてのセンサータイプのリストを返す。
[static]
QList<QByteArray> QSensor::sensorsForType(const QByteArray &type)
type の各センサーの ID リストを返す。利用可能なセンサーがない場合、リストは空になります。
void QSensor::setCurrentOrientation(int currentOrientation)
現在のスクリーンの向きをcurrentOrientation に設定する。 スクリーンの向きやuserOrientation プロパティが変更されるたびに、バックエンドから呼び出される。
currentOrientation()も参照してください 。
void QSensor::setEfficientBufferSize(int efficientBufferSize)
効率的なバッファサイズをefficientBufferSize に設定する。 これはバックエンドから呼び出される。
efficientBufferSize()も参照 。
void QSensor::setMaxBufferSize(int maxBufferSize)
最大バッファサイズをmaxBufferSize に設定する。 これはバックエンドから呼び出される。
maxBufferSize()も参照 。
void QSensor::setSkipDuplicates(bool skipDuplicates)
重複スキップをskipDuplicates に設定する。
注: プロパティskipDuplicates に対するセッター関数。
skipDuplicates()も参照してください 。
[signal]
void QSensor::skipDuplicatesChanged(bool skipDuplicates)
このシグナルは、skipDuplicates プロパティが変更されたときに発行される。
注: プロパティskipDuplicates に対するノーティファイアシグナル。
[slot]
bool QSensor::start()
センサーからの値の取得を開始する。センサーが起動した場合は true を、そうでない場合は false を返す。
センサーはいくつかの理由で起動に失敗する可能性がある。
アプリケーションがセンサーを開始したら、センサーの値を問い合わせる前に、センサーが新しい値を受信するまで待つ必要があります。これはセンサーがシステムから値を受信する方法によるものである。センサーは(一般的に)新しい値をポーリングするのではなく、新しい値が発生するとセンサーにプッシュされます。
例えば、このコードは意図したようには動作しません。
sensor->start(); sensor->reading()->x(); // no data available
正しく動作させるためには、読み取り値にアクセスするコードは、readingChanged() シグナルが出力されていることを確認する必要があります。
connect(sensor, SIGNAL(readingChanged()), this, SLOT(checkReading())); sensor->start(); } void MyClass::checkReading() { sensor->reading()->x();
QSensor::busyも参照の こと。
[slot]
void QSensor::stop()
センサーからの値の取得を停止する。
これによりセンサーは解放され、他のプロセスが使用できるようになる。
QSensor::busyも参照 。
関連する非会員
[alias]
qoutputrangelist
この型はqoutputrange値のリストとして定義される。
typedef QList<qoutputrange> qoutputrangelist;
QList 、qoutputrange 、QSensor::outputRangesも参照のこと 。
[alias]
qrange
このタイプはQPair として定義されている。
typedef QPair<int,int> qrange;
QPair 、qrangelist 、QSensor::availableDataRatesも参照のこと 。
[alias]
qrangelist
この型はqrange値のリストとして定義される。
typedef QList<qrange> qrangelist;
QList 、qrange 、QSensor::availableDataRatesも参照のこと 。
© 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.