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.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/tradeshow/iot-sensortag/bluetoothdevice.cpp b/tradeshow/iot-sensortag/bluetoothdevice.cpp
index 4f6abe9..c37a5ea 100644
--- a/tradeshow/iot-sensortag/bluetoothdevice.cpp
+++ b/tradeshow/iot-sensortag/bluetoothdevice.cpp
@@ -56,7 +56,6 @@
#include <QLoggingCategory>
#include <QList>
#include <QTimer>
-#include <QDebug>
#include <QtMath>
#include <QDateTime>
#include "bluetoothapiconstants.h"
@@ -264,6 +263,7 @@ void BluetoothDevice::temperatureDetailsDiscovered(QLowEnergyService::ServiceSta
}
m_temperatureMeasurementStarted = true;
+ isDeviceReady();
}
}
@@ -302,6 +302,7 @@ void BluetoothDevice::barometerDetailsDiscovered(QLowEnergyService::ServiceState
}
m_barometerMeasurementStarted = true;
+ isDeviceReady();
}
}
@@ -341,6 +342,7 @@ void BluetoothDevice::humidityDetailsDiscovered(QLowEnergyService::ServiceState
}
m_humidityMeasurementStarted = true;
+ isDeviceReady();
}
}
@@ -380,6 +382,7 @@ void BluetoothDevice::lightIntensityDetailsDiscovered(QLowEnergyService::Service
}
m_lightIntensityMeasurementStarted = true;
+ isDeviceReady();
}
}
@@ -421,6 +424,7 @@ void BluetoothDevice::motionDetailsDiscovered(QLowEnergyService::ServiceState ne
motionService->writeCharacteristic(characteristic, QByteArray::fromHex(SENSORTAG_RAPID_TIMER_TIMEOUT_STR), QLowEnergyService::WriteWithResponse);
}
m_motionMeasurementStarted = true;
+ isDeviceReady();
}
}
@@ -466,6 +470,15 @@ double BluetoothDevice::convertIrTemperatureAPIReadingToCelsius(quint16 rawReadi
return t * SCALE_LSB;
}
+void BluetoothDevice::isDeviceReady() const
+{
+ if (m_temperatureMeasurementStarted &&
+ m_humidityMeasurementStarted &&
+ m_lightIntensityMeasurementStarted &&
+ m_motionMeasurementStarted)
+ setState(DeviceState::Connected);
+}
+
void BluetoothDevice::irTemperatureReceived(const QByteArray &value)
{
const unsigned int rawObjectTemperature = (((quint8)value.at(3)) << 8) + ((quint8)value.at(2));
@@ -551,7 +564,7 @@ void BluetoothDevice::motionReceived(const QByteArray &value)
void BluetoothDevice::deviceConnected()
{
- setState(DeviceState::Connected);
+ setState(DeviceState::Scanning);
statusUpdated("(Discovering services...)");
controller->discoverServices();
}