summaryrefslogtreecommitdiffstats
path: root/tradeshow/iot-sensortag/bluetoothdevice.cpp
diff options
context:
space:
mode:
authorKari Hautamäki <kari.hautamaki@qt.io>2017-02-13 10:28:20 +0200
committerTitta Heikkala <titta.heikkala@qt.io>2017-02-15 07:56:58 +0000
commit4b5beeedda5e129018c167dd0a5cd1f17fc5c246 (patch)
treeb96df903324ce8f080c9af97c98488d39aab4905 /tradeshow/iot-sensortag/bluetoothdevice.cpp
parentcacd82b316c8632edde4c37e92d0c0e9747bf5d6 (diff)
iot-sensortag: Add sensor tag setup for Embedded World
- Added two sensor tags with unique capabilities by faking that each provide only a subset of available sensor data Change-Id: I9b7ad9f7b41ea7c5abaad0bc3fbe063219b19a9e Reviewed-by: Titta Heikkala <titta.heikkala@qt.io>
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();
}