/*! Start retrieving values from the sensor. Returns true if the sensor was started, false otherwise. The sensor may fail to start for several reasons. Once an application has started a sensor it must wait until the sensor receives a new value before it can query the sensor's values. This is due to how the sensor receives values from the system. Sensors do not (in general) poll for new values, rather new values are pushed to the sensors as they happen. For example, this code will not work as intended. \badcode sensor->start(); sensor->reading()->x(); // no data available \endcode To work correctly, the code that accesses the reading should ensure the readingChanged() signal has been emitted. \code connect(sensor, SIGNAL(readingChanged()), this, SLOT(checkReading())); sensor->start(); } void MyClass::checkReading() { sensor->reading()->x(); \endcode \sa QSensor::busy */ bool QSensor::start() { Q_D(QSensor); if (isActive()) return true; if (!connectToBackend()) return false; // Set these flags to their defaults d->active = true; d->busy = false; // Backend will update the flags appropriately d->backend->start(); Q_EMIT activeChanged(); return isActive(); }
void EnginioBackendConnection::connectToBackend(EnginioClient *client, const QJsonObject &messageFilter) { connectToBackend(EnginioClientConnectionPrivate::get(client), messageFilter); }