diff options
author | Alex Blasche <alexander.blasche@digia.com> | 2014-07-14 13:01:47 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@digia.com> | 2014-07-16 08:28:58 +0200 |
commit | ba3c1f4f2a2efe635e12c9dad22edeac89611729 (patch) | |
tree | 88da0300aa76a46934c0c93fea348f6ead20c993 /examples/bluetooth/lowenergyscanner/device.cpp | |
parent | 9234d5391c5e94a4b00ad4e81336f519fc496caa (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.cpp | 13 |
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) |