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 |
成员函数文档
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 类。
如果您的后端已经分配了一个读数,则应将该读数的地址传递给该函数。否则,应传递 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.