summaryrefslogtreecommitdiffstats
path: root/tradeshow/iot-sensortag/bluetoothdevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tradeshow/iot-sensortag/bluetoothdevice.cpp')
-rw-r--r--tradeshow/iot-sensortag/bluetoothdevice.cpp25
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));