이 페이지에서

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

상세 설명

장치의 센서는 QSensorBackend의 하위 클래스로 표현됩니다.

멤버 함수 설명

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 ` 클래스를 초기화하기 위해 호출됩니다.

백엔드에서 이미 'reading'을 할당해 둔 경우, 해당 'reading'의 주소를 이 함수에 전달해야 합니다. 그렇지 않은 경우 0을 전달해야 하며, 이 경우 함수는 백엔드가 센서 API에 새로운 측정값을 알릴 때 사용해야 할 'reading'의 주소를 반환합니다.

이 함수는 템플릿 함수이므로 적절한 유형을 지정하여 호출해야 합니다.

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.