From 4b5beeedda5e129018c167dd0a5cd1f17fc5c246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kari=20Hautam=C3=A4ki?= Date: Mon, 13 Feb 2017 10:28:20 +0200 Subject: 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 --- tradeshow/iot-sensortag/bluetoothdevice.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'tradeshow/iot-sensortag/bluetoothdevice.cpp') 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 #include #include -#include #include #include #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(); } -- cgit v1.2.3