From 6c4c77ae60284c2ca76fcd6a3af6adc66e1f17ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kari=20Hautam=C3=A4ki?= Date: Fri, 24 Feb 2017 15:06:12 +0200 Subject: iot-sensortag: Assign sensor types arbitrarily to available sensor tags In the demo setup, assign all sensor types to the set of available sensor types. Change-Id: If07674ccc40f7668e96e41df62d3b2745e6c9cb4 Reviewed-by: Maurice Kalinowski --- tradeshow/iot-sensortag/demodataproviderpool.cpp | 41 +++++++++++------------- tradeshow/iot-sensortag/sensortagdataprovider.h | 20 ++++++------ 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/tradeshow/iot-sensortag/demodataproviderpool.cpp b/tradeshow/iot-sensortag/demodataproviderpool.cpp index 92c5e41..f9a219d 100644 --- a/tradeshow/iot-sensortag/demodataproviderpool.cpp +++ b/tradeshow/iot-sensortag/demodataproviderpool.cpp @@ -51,6 +51,10 @@ #include "mockdataprovider.h" #include "bluetoothdataprovider.h" +#include + +Q_DECLARE_LOGGING_CATEGORY(boot2QtDemos) + DemoCloudProvider::DemoCloudProvider(QObject *parent) : SensorTagDataProvider(parent) { @@ -296,35 +300,26 @@ void DemoDataProviderPool::startScanning() for (const QString& id : m_macFilters) { BluetoothDataProvider *p = new BluetoothDataProvider(id, this); m_dataProviders.push_back(p); + // Set initial state to Scanning for UI to be + // able to show "Connecting.." information + p->setState(SensorTagDataProvider::Scanning); + // Empty tag type, it will be set next + p->setTagType(0); } // Fake that we have set of sensors with different capabilities - // by removing some of the sensor data types from each sensor tag - if (m_dataProviders.length() > 0) { - SensorTagDataProvider *p = m_dataProviders.at(0); - p->setTagType(SensorTagDataProvider::ObjectTemperature | - SensorTagDataProvider::Light | - SensorTagDataProvider::Magnetometer | - SensorTagDataProvider::Accelometer); - emit dataProvidersChanged(); - if (m_dataProviders.length() > 1) { - p = m_dataProviders.at(1); - p->setTagType(SensorTagDataProvider::AmbientTemperature | - SensorTagDataProvider::Altitude | - SensorTagDataProvider::Humidity | - SensorTagDataProvider::Rotation | - SensorTagDataProvider::AirPressure); - emit dataProvidersChanged(); + // by assigning only some of the sensor data types to each sensor tag + int i = 0; + while (i < SensorTagDataProvider::tagTypeCount) { + for (int p = 0; p < m_dataProviders.count() && i < SensorTagDataProvider::tagTypeCount; p++) { + SensorTagDataProvider *provider = m_dataProviders.at(p); + int tagType = provider->tagType() | (1 << i++); + provider->setTagType(tagType); + qCDebug(boot2QtDemos) << "Set tag type for provider" << provider->id() << "to" << QString::number(tagType, 2); } } + emit dataProvidersChanged(); m_initialized = true; } - // Set initial state to Scanning for UI to be - // able to show "Connecting.." information - for (SensorTagDataProvider *p : m_dataProviders) { - if (p->state() == SensorTagDataProvider::NotFound) { - p->setState(SensorTagDataProvider::Scanning); - } - } SensorTagDataProviderPool::startScanning(); } } diff --git a/tradeshow/iot-sensortag/sensortagdataprovider.h b/tradeshow/iot-sensortag/sensortagdataprovider.h index 605c5d0..523bd93 100644 --- a/tradeshow/iot-sensortag/sensortagdataprovider.h +++ b/tradeshow/iot-sensortag/sensortagdataprovider.h @@ -89,15 +89,17 @@ class SensorTagDataProvider : public QObject Q_PROPERTY(float altitude READ getAltitude NOTIFY altitudeChanged) public: - enum TagType {AmbientTemperature = 1 << 0, - ObjectTemperature = 1 << 1, - Humidity = 1 << 2, - AirPressure = 1 << 3, - Light = 1 << 4, - Magnetometer = 1 << 5, - Rotation = 1 << 6, - Accelometer = 1 << 7, - Altitude = 1 << 8}; + enum TagType { AmbientTemperature = 1 << 0, + ObjectTemperature = 1 << 1, + Humidity = 1 << 2, + AirPressure = 1 << 3, + Light = 1 << 4, + Magnetometer = 1 << 5, + Rotation = 1 << 6, + Accelometer = 1 << 7, + Altitude = 1 << 8 + }; + static const int tagTypeCount = 9; enum ProviderState {NotFound = 0, Disconnected, Scanning, Connected, Error}; explicit SensorTagDataProvider(QObject *parent = 0); -- cgit v1.2.3