diff options
Diffstat (limited to 'tradeshow/iot-sensortag/bluetoothdevice.cpp')
-rw-r--r-- | tradeshow/iot-sensortag/bluetoothdevice.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/tradeshow/iot-sensortag/bluetoothdevice.cpp b/tradeshow/iot-sensortag/bluetoothdevice.cpp index 667e7a2..f2d3881 100644 --- a/tradeshow/iot-sensortag/bluetoothdevice.cpp +++ b/tradeshow/iot-sensortag/bluetoothdevice.cpp @@ -267,7 +267,7 @@ void BluetoothDevice::temperatureDetailsDiscovered(QLowEnergyService::ServiceSta } m_temperatureMeasurementStarted = true; - m_serviceDetailsTimer->start(); + updateServiceDetails(); } } @@ -306,7 +306,7 @@ void BluetoothDevice::barometerDetailsDiscovered(QLowEnergyService::ServiceState } m_barometerMeasurementStarted = true; - m_serviceDetailsTimer->start(); + updateServiceDetails(); } } @@ -346,7 +346,7 @@ void BluetoothDevice::humidityDetailsDiscovered(QLowEnergyService::ServiceState } m_humidityMeasurementStarted = true; - m_serviceDetailsTimer->start(); + updateServiceDetails(); } } @@ -386,7 +386,7 @@ void BluetoothDevice::lightIntensityDetailsDiscovered(QLowEnergyService::Service } m_lightIntensityMeasurementStarted = true; - m_serviceDetailsTimer->start(); + updateServiceDetails(); } } @@ -428,7 +428,7 @@ void BluetoothDevice::motionDetailsDiscovered(QLowEnergyService::ServiceState ne m_motionService->writeCharacteristic(characteristic, QByteArray::fromHex(SENSORTAG_RAPID_TIMER_TIMEOUT_STR), QLowEnergyService::WriteWithResponse); } m_motionMeasurementStarted = true; - m_serviceDetailsTimer->start(); + updateServiceDetails(); } } @@ -486,6 +486,21 @@ bool BluetoothDevice::isDeviceReady() const return false; } +void BluetoothDevice::updateServiceDetails() +{ + if (m_temperatureMeasurementStarted + && m_barometerMeasurementStarted + && m_humidityMeasurementStarted + && m_lightIntensityMeasurementStarted + && m_motionMeasurementStarted) { + qCDebug(boot2QtDemos) << "Service details timer stop. All service details found"; + m_serviceDetailsTimer->stop(); + setState(Connected); + } else { + m_serviceDetailsTimer->start(); + } +} + void BluetoothDevice::irTemperatureReceived(const QByteArray &value) { const unsigned int rawObjectTemperature = (((quint8)value.at(3)) << 8) + ((quint8)value.at(2)); |