summaryrefslogtreecommitdiffstats
path: root/examples/bluetooth/lowenergyscanner/device.cpp
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-07-14 13:01:47 +0200
committerAlex Blasche <alexander.blasche@digia.com>2014-07-16 08:28:58 +0200
commitba3c1f4f2a2efe635e12c9dad22edeac89611729 (patch)
tree88da0300aa76a46934c0c93fea348f6ead20c993 /examples/bluetooth/lowenergyscanner/device.cpp
parent9234d5391c5e94a4b00ad4e81336f519fc496caa (diff)
Various improvements to lowenergyscanner example
1.) Improves UI flow 2.) Improves error behavior (e.g. device disconnects) 3.) Adds missing signal/model updates whcih caused unexpected UI flow Change-Id: Icc7edf4945df0e964b5c91b407ce5976a1585b81 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Diffstat (limited to 'examples/bluetooth/lowenergyscanner/device.cpp')
-rw-r--r--examples/bluetooth/lowenergyscanner/device.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/examples/bluetooth/lowenergyscanner/device.cpp b/examples/bluetooth/lowenergyscanner/device.cpp
index 58454185..e1bb63fe 100644
--- a/examples/bluetooth/lowenergyscanner/device.cpp
+++ b/examples/bluetooth/lowenergyscanner/device.cpp
@@ -47,6 +47,7 @@
#include <qbluetoothservicediscoveryagent.h>
#include <QDebug>
#include <QList>
+#include <QTimer>
Device::Device():
connected(false), controller(0), m_deviceScanState(false)
@@ -77,6 +78,8 @@ void Device::startDeviceDiscovery()
{
qDeleteAll(devices);
devices.clear();
+ emit devicesUpdated();
+
setUpdate("Scanning for devices ...");
discoveryAgent->start();
m_deviceScanState = true;
@@ -138,9 +141,10 @@ void Device::scanServices(const QString &address)
qDeleteAll(m_characteristics);
m_characteristics.clear();
+ emit characteristicsUpdated();
qDeleteAll(m_services);
m_services.clear();
-
+ emit servicesUpdated();
setUpdate("Connecting to device...");
@@ -202,6 +206,7 @@ void Device::connectToService(const QString &uuid)
qDeleteAll(m_characteristics);
m_characteristics.clear();
+ emit characteristicsUpdated();
if (service->state() == QLowEnergyService::DiscoveryRequired) {
connect(service, SIGNAL(stateChanged(QLowEnergyService::ServiceState)),
@@ -217,12 +222,11 @@ void Device::connectToService(const QString &uuid)
m_characteristics.append(cInfo);
}
- emit characteristicsUpdated();
+ QTimer::singleShot(0, this, SIGNAL(characteristicsUpdated()));
}
void Device::deviceConnected()
{
-
setUpdate("Discovering services!");
connected = true;
controller->discoverServices();
@@ -248,7 +252,8 @@ void Device::disconnectFromDevice()
void Device::deviceDisconnected()
{
- //setUpdate("Device disconnected " + currentDevice.getName());
+ qWarning() << "Disconnect from device";
+ emit disconnected();
}
void Device::serviceDetailsDiscovered(QLowEnergyService::ServiceState newState)