QSensor Class

QSensor 클래스는 단일 하드웨어 센서를 나타냅니다. 더 보기...

헤더: #include <QSensor>
CMake: find_package(Qt6 REQUIRED COMPONENTS Sensors)
target_link_libraries(mytarget PRIVATE Qt6::Sensors)
qmake: QT += sensors
상속합니다: QObject
상속 대상:
13 종류

QAccelerometer, QAmbientLightSensor, QAmbientTemperatureSensor, QCompass, QGyroscope, QHumiditySensor, QLightSensor, QMagnetometer, QOrientationSensor, QPressureSensor, QProximitySensor, QRotationSensor, 그리고 QTiltSensor

공개 유형

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

공용 슬롯

bool start()
void stop()

신호

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, QMagnetometerQRotationSensor 과 같은 일부 센서는 화면 방향 변화에 반응합니다. 이를 방향 감지 센서라고 합니다. 방향 감지 센서의 경우 QSensor는 화면 방향에 따라 판독 값의 보고를 변경할 수 있도록 지원합니다.

방향 감지 센서의 경우 axesOrientationMode 속성은 방향이 판독 값에 영향을 미치는 방식을 제어합니다.

기본 모드인 QSensor::FixedOrientation 에서는 판독값이 방향에 영향을 받지 않습니다. QSensor::AutomaticOrientation 모드에서는 현재 화면 방향을 고려하여 판독값이 자동으로 회전됩니다. 마지막으로 QSensor::UserOrientation 모드에서는 사용자가 지정한 방향에 따라 판독값이 회전됩니다.

이 기능은 백엔드에서 지원하고 센서가 방향 설정이 가능한 경우에만 사용할 수 있으며, QSensor::AxesOrientation 플래그와 함께 QSensor::isFeatureSupported()를 호출하여 확인할 수 있습니다.

여기서 방향 값은 항상 디바이스 방향이 아닌 화면 방향입니다. 화면 방향은 GUI의 방향입니다. 예를 들어 기기를 시계 반대 방향으로 90도 회전하면 화면 방향이 시계 방향으로 90도 회전하여 기기를 회전한 후에도 GUI가 여전히 똑바로 향하는 것처럼 보정합니다. 애플리케이션에서 화면 방향을 강제로 세로 또는 가로 모드로 고정하는 등 화면 방향을 잠글 수 있습니다. 잠긴 방향의 경우 방향 감지 센서는 화면 방향 변경에만 반응하므로 디바이스 방향이 변경되어도 방향 감지 센서는 판독값 변경에 반응하지 않습니다. 방향 감지 센서의 목적은 센서 방향을 화면 방향과 동기화하는 것이므로 이는 당연한 일입니다.

방향 값의 범위는 0~270도입니다. 방향은 시계 방향으로 적용되며, 예를 들어 방향 값이 90도이면 화면이 원래 위치에서 오른쪽으로 90도 회전하여 디바이스가 왼쪽으로 90도 회전하는 것을 보정한다는 의미입니다.

QSensorReading참조하세요 .

회원 유형 문서

enum QSensor::AxesOrientationMode

화면 방향에 따라 판독값이 어떻게 영향을 받는지 설명합니다.

Constant설명
QSensor::FixedOrientation0판독 값에 자동 회전이 적용되지 않습니다.
QSensor::AutomaticOrientation1판독값은 화면 방향에 따라 자동으로 회전됩니다.
QSensor::UserOrientation2판독값은 userOrientation 속성의 각도에 따라 회전됩니다.

QSensor::axesOrientationMode참조하세요 .

enum QSensor::Feature

백엔드에서 지원할 수 있는 선택적 기능을 나열합니다.

모든 센서 유형에 공통적으로 적용되는 기능은 다음과 같습니다:

상수설명
QSensor::Buffering0백엔드는 QSensor::bufferSize 속성으로 제어되는 판독값 버퍼링을 지원합니다.
QSensor::AlwaysOn1백엔드는 QSensor::alwaysOn 속성으로 제어되는 유휴 상태일 때 일시 중단 여부에 대한 정책 변경을 지원합니다.
QSensor::SkipDuplicates5백엔드는 동일하거나 매우 유사한 연속 판독값 건너뛰기를 지원합니다. 이는 QSensor::skipDuplicates 속성을 true로 설정하여 활성화할 수 있습니다.

QMagnetometer 의 기능은 다음과 같습니다:

상수설명
QSensor::GeoValues2백엔드는 QMagnetometer::returnGeoValues 속성으로 제어할 수 있는 지역 값 반환을 지원합니다.

QLightSensor 의 기능은 다음과 같습니다:

ConstantValue설명
QSensor::FieldOfView3백엔드는 QLightSensor::fieldOfView 속성에서 읽을 수 있는 시야를 지정합니다.

QAccelerometer 의 기능은 다음과 같습니다:

ConstantValue설명
QSensor::AccelerationMode4백엔드는 QAccelerometer::accelerationMode 속성을 사용하여 가속도계의 가속 모드 전환을 지원합니다.

QPressureSensor 의 기능은 다음과 같습니다:

ConstantValue설명
QSensor::PressureSensorTemperature7백엔드는 압력 센서의 다이 온도를 제공합니다.

모든 방향성 센서의 특징은 다음과 같습니다:

상수설명
QSensor::AxesOrientation6백엔드는 축 방향을 기본값( QSensor::FixedOrientation )에서 다른 방향으로 변경할 수 있도록 지원합니다.

QSensor::isFeatureSupported()도 참조하세요 .

속성 문서

active : bool

이 속성은 센서가 활성화되어 있는지 여부를 나타내는 값을 보유합니다.

센서가 활성 상태(값을 반환)이면 참입니다. 그렇지 않으면 거짓입니다.

이 값을 true로 설정해도 즉각적인 효과는 없습니다. 대신 이벤트 루프에 도달하면 센서가 시작됩니다.

함수에 액세스합니다:

bool isActive() const
void setActive(bool active)

알림 신호:

void activeChanged()

alwaysOn : bool

이 속성에는 화면이 꺼져 있을 때 센서가 계속 실행되어야 하는지 여부를 나타내는 값이 있습니다.

일부 플랫폼에는 화면이 꺼지면 센서를 일시 중지하는 정책이 있습니다. 이 속성을 true로 설정하면 센서가 계속 실행됩니다.

기능 액세스:

bool isAlwaysOn() const
void setAlwaysOn(bool alwaysOn)

알림 신호:

[read-only] availableDataRates : const qrangelist

이 속성에는 센서가 지원하는 데이터 전송률이 저장됩니다.

센서가 지원하는 데이터 전송률 목록입니다. 헤르츠 단위로 측정됩니다.

목록의 항목은 불연속적인 속도 또는 연속적인 범위의 속도를 나타낼 수 있습니다. 불연속 속도는 두 값이 모두 같은 것으로 표시됩니다.

모든 센서에 작동 속도가 있는 것은 아니므로 이 정보는 필수는 아닙니다. 이러한 경우 목록은 비어 있습니다.

함수에 액세스합니다:

qrangelist availableDataRates() const

QSensor::dataRateqrangelist참조하세요 .

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 이 사용됩니다.

버퍼 크기가 1보다 크면 버퍼링이 켜집니다. 센서가 요청된 수의 샘플을 수집하여 애플리케이션에 한 번에 모두 전달합니다. 애플리케이션에 변경된 판독값의 버스트 형태로 전달되므로 애플리케이션이 각 판독값을 즉시 처리하거나 다른 곳에 저장하는 것이 특히 중요합니다.

버퍼링이 진행 중일 때 stop()를 호출하면 부분 버퍼가 전달되지 않습니다.

센서가 버퍼링 옵션으로 시작되면 그 순간부터 값이 수집됩니다. 활용할 수 있는 기존 버퍼가 없습니다.

일부 백엔드는 버퍼의 활성화 또는 비활성화만 지원하고 크기를 제어할 수 없습니다. 이 경우 버퍼링이 지원되더라도 maxBufferSizeefficientBufferSize 속성이 전혀 설정되지 않을 수 있습니다. bufferSize 속성을 1보다 큰 값으로 설정하면 버퍼링이 활성화됩니다. 센서가 시작되면 백엔드에서 bufferSize 속성을 실제 값으로 설정합니다.

함수에 액세스합니다:

int bufferSize() const
void setBufferSize(int bufferSize)

알림 신호:

void bufferSizeChanged(int bufferSize)

QSensor::maxBufferSizeQSensor::efficientBufferSize참조하세요 .

[read-only] busy : const bool

이 속성은 센서가 사용 중인지 여부를 나타내는 값을 보유합니다.

일부 센서는 시스템에 있지만 사용할 수 없을 수도 있습니다. 센서가 사용 중이면 이 함수는 참을 반환합니다. 센서를 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)

알림 신호:

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::bufferSizeQSensor::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)

알림 신호:

void identifierChanged()

[read-only] maxBufferSize : const int

이 속성은 최대 버퍼 크기를 보유합니다.

이 값은 1일 수 있으며, 이 경우 센서가 어떤 형태의 버퍼링도 지원하지 않습니다. 이 경우 isFeatureSupported(QSensor::Buffering)도 false를 반환합니다.

함수에 액세스합니다:

int maxBufferSize() const

알림 신호:

void maxBufferSizeChanged(int maxBufferSize)

QSensor::bufferSizeQSensor::efficientBufferSize참조하세요 .

outputRange : int

이 속성은 센서가 사용 중인 출력 범위를 보유합니다.

이 값은 사용할 QSensor::outputRanges 목록의 인덱스를 나타냅니다.

이 속성을 설정하면 이식성이 없으며 다른 애플리케이션과 충돌이 발생할 수 있습니다. 출력 범위를 요청하는 여러 애플리케이션에 관한 정책은 센서 백엔드 및 플랫폼 설명서를 확인하세요.

기본값(-1)은 앱이 출력 범위를 신경 쓰지 않는다는 의미입니다.

플랫폼에서 사용 중인 현재 출력 범위를 결정하는 메커니즘은 없습니다.

함수 액세스:

int outputRange() const
void setOutputRange(int index)

QSensor::outputRanges참조하세요 .

[read-only] outputRanges : const qoutputrangelist

이 속성에는 센서가 지원하는 출력 범위 목록이 저장됩니다.

센서에는 둘 이상의 출력 범위가 있을 수 있습니다. 일반적으로 정확도를 낮추는 대신 더 넓은 측정 범위를 제공하기 위해 이 작업을 수행합니다.

이 정보는 필수는 아닙니다. 이 정보는 일반적으로 출력 범위를 선택할 수 있는 센서(예: 일반적인 가속도계)에서만 사용할 수 있습니다.

기능 액세스:

qoutputrangelist outputRanges() const

QSensor::outputRangeqoutputrangelist참조하세요 .

[read-only] reading : QSensorReading* const

이 속성은 읽기 클래스를 보유합니다.

읽기 클래스는 센서 판독값에 대한 액세스를 제공합니다. 읽기 개체는 수신된 가장 최근 센서 판독값의 휘발성 캐시이므로 애플리케이션은 판독값을 즉시 처리하거나 나중에 처리할 수 있도록 값을 어딘가에 저장해야 합니다.

센서 백엔드가 백엔드에 연결될 때까지는 0을 반환한다는 점에 유의하세요.

또한 start()가 호출된 후에는 판독값을 즉시 사용할 수 없다는 점에 유의하세요. 애플리케이션은 readingChanged() 신호가 전송될 때까지 기다려야 합니다.

기능 액세스:

QSensorReading *reading() const

알림 신호:

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)

type 센서를 parent 의 자식으로 생성합니다.

특정 센서 유형에 대한 파생 클래스가 있는 경우 이 생성자를 사용하지 마세요.

잘못된 방법은 기본 클래스 생성자를 사용하는 것입니다:

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()

센서 백엔드에 연결을 시도합니다.

적합한 백엔드를 찾을 수 있으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.

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.

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()

센서에서 값 검색을 시작합니다. 센서가 시작되면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.

여러 가지 이유로 센서가 시작되지 않을 수 있습니다.

애플리케이션이 센서를 시작한 후에는 센서가 새 값을 수신할 때까지 기다려야 센서의 값을 쿼리할 수 있습니다. 이는 센서가 시스템에서 값을 수신하는 방식 때문입니다. 센서는 (일반적으로) 새 값을 폴링하지 않고 새 값이 발생하면 센서에 푸시됩니다.

예를 들어 이 코드는 의도한 대로 작동하지 않습니다.

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

이 유형은 쿼리 범위 값의 목록으로 정의됩니다.

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.