QSensor Class
QSensorクラスは、1つのハードウェアセンサーを表します。詳細...
Header: | #include <QSensor> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sensors) target_link_libraries(mytarget PRIVATE Qt6::Sensors) |
qmake: | QT += sensors |
Inherits: | QObject |
Inherited By: |
パブリックタイプ
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 のように、画面の向きの変化に反応するセンサーもあります。これらはいわゆるオリエンタブルセンサーである。オリエンタブルセンサの場合、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
このプロパティは、センサーがアクティブかどうかを示す値を保持する。
センサーがアクティブ(値を返す)であれば true。そうでない場合は 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) も偽を返す。
アクセス関数
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も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。