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)

센서의 데이터 전송률( minmax 값으로 구성)을 추가합니다.

이 함수는 생성자에서 호출해야 정보를 즉시 사용할 수 있습니다.

QSensor::availableDataRates참조하세요 .

void QSensorBackend::addOutputRange(qreal min, qreal max, qreal accuracy)

센서에 대한 출력 범위( min, max 값 및 accuracy)를 추가합니다.

이 함수는 생성자에서 호출해야 정보를 즉시 사용할 수 있습니다.

QSensor::outputRangeQSensor::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::availableDataRatesaddDataRate()도 참조하세요 .

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

값 보고를 중지합니다.

© 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.