summaryrefslogtreecommitdiffstats
path: root/tradeshow/iot-sensortag/bluetoothdevice.cpp
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@qt.io>2017-03-02 09:10:49 +0200
committerMaurice Kalinowski <maurice.kalinowski@qt.io>2017-03-02 07:46:50 +0000
commit8f7bb40c889ac1f74cc0e11660011cf1ee2d7b15 (patch)
tree9d5ef2e6fd3145ef18a0e60e24cd879d786a34e5 /tradeshow/iot-sensortag/bluetoothdevice.cpp
parent6c4c77ae60284c2ca76fcd6a3af6adc66e1f17ad (diff)
iot-sensortag: Reduce waiting time for service scan
Unnecessary 1s delay to start service scan removed. If all service details have been discovered there's no need to start the 5s service details timer. Change-Id: I6c8c89455fb3cfdbc1a28198234e95a4ed0b7e8b Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
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));