summaryrefslogtreecommitdiffstats
path: root/tradeshow/iot-sensortag
diff options
context:
space:
mode:
authorKari Hautamäki <kari.hautamaki@qt.io>2017-02-24 15:06:12 +0200
committerMaurice Kalinowski <maurice.kalinowski@qt.io>2017-02-28 13:16:22 +0000
commit6c4c77ae60284c2ca76fcd6a3af6adc66e1f17ad (patch)
tree97de4b2e36f0329b0bc982301b733716cd381fe6 /tradeshow/iot-sensortag
parent35c1c07cd676b9c9afb23ad7266a67d5b6aef03a (diff)
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 <maurice.kalinowski@qt.io>
Diffstat (limited to 'tradeshow/iot-sensortag')
-rw-r--r--tradeshow/iot-sensortag/demodataproviderpool.cpp41
-rw-r--r--tradeshow/iot-sensortag/sensortagdataprovider.h20
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 <QLoggingCategory>
+
+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);