summaryrefslogtreecommitdiffstats
path: root/examples/bluetooth/lowenergyscanner/device.cpp
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-08-20 09:21:49 +0200
committerAlex Blasche <alexander.blasche@digia.com>2014-08-25 14:03:25 +0200
commit0a8327d422228489a62aa8fed8bdaa9d1291c055 (patch)
tree325d64d985793adc1f93d0a8f7619c7a9102d11d /examples/bluetooth/lowenergyscanner/device.cpp
parent7a3a3f7664e22dbe2e5bc8f016d95ee1f9558a2e (diff)
Update and extend the lowenergyscanner example docs
Change-Id: I0be30191cbceb963c7e1bfd7e55a1f2f38772d5f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Diffstat (limited to 'examples/bluetooth/lowenergyscanner/device.cpp')
-rw-r--r--examples/bluetooth/lowenergyscanner/device.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/examples/bluetooth/lowenergyscanner/device.cpp b/examples/bluetooth/lowenergyscanner/device.cpp
index 3d82800f..9ffb4d56 100644
--- a/examples/bluetooth/lowenergyscanner/device.cpp
+++ b/examples/bluetooth/lowenergyscanner/device.cpp
@@ -52,12 +52,14 @@
Device::Device():
connected(false), controller(0), m_deviceScanState(false)
{
+ //! [les-devicediscovery-1]
discoveryAgent = new QBluetoothDeviceDiscoveryAgent();
connect(discoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)),
this, SLOT(addDevice(const QBluetoothDeviceInfo&)));
connect(discoveryAgent, SIGNAL(error(QBluetoothDeviceDiscoveryAgent::Error)),
this, SLOT(deviceScanError(QBluetoothDeviceDiscoveryAgent::Error)));
connect(discoveryAgent, SIGNAL(finished()), this, SLOT(deviceScanFinished()));
+ //! [les-devicediscovery-1]
setUpdate("Search");
}
@@ -81,11 +83,14 @@ void Device::startDeviceDiscovery()
emit devicesUpdated();
setUpdate("Scanning for devices ...");
+ //! [les-devicediscovery-2]
discoveryAgent->start();
+ //! [les-devicediscovery-2]
m_deviceScanState = true;
Q_EMIT stateChanged();
}
+//! [les-devicediscovery-3]
void Device::addDevice(const QBluetoothDeviceInfo &info)
{
if (info.coreConfigurations() & QBluetoothDeviceInfo::LowEnergyCoreConfiguration) {
@@ -94,6 +99,7 @@ void Device::addDevice(const QBluetoothDeviceInfo &info)
setUpdate("Last device added: " + d->getName());
}
}
+//! [les-devicediscovery-3]
void Device::deviceScanFinished()
{
@@ -154,6 +160,7 @@ void Device::scanServices(const QString &address)
controller = 0;
}
+ //! [les-controller-1]
if (!controller) {
// Connecting signals and slots for connecting to LE services.
controller = new QLowEnergyController(currentDevice.getDevice().address());
@@ -170,20 +177,24 @@ void Device::scanServices(const QString &address)
}
controller->connectToDevice();
+ //! [les-controller-1]
}
void Device::addLowEnergyService(const QBluetoothUuid &serviceUuid)
{
+ //! [les-service-1]
QLowEnergyService *service = controller->createServiceObject(serviceUuid);
if (!service) {
qWarning() << "Cannot create service for uuid";
return;
}
+ //! [les-service-1]
ServiceInfo *serv = new ServiceInfo(service);
m_services.append(serv);
emit servicesUpdated();
}
+//! [les-service-1]
void Device::serviceScanDone()
{
@@ -209,9 +220,11 @@ void Device::connectToService(const QString &uuid)
emit characteristicsUpdated();
if (service->state() == QLowEnergyService::DiscoveryRequired) {
+ //! [les-service-3]
connect(service, SIGNAL(stateChanged(QLowEnergyService::ServiceState)),
this, SLOT(serviceDetailsDiscovered(QLowEnergyService::ServiceState)));
service->discoverDetails();
+ //! [les-service-3]
return;
}
@@ -229,7 +242,9 @@ void Device::deviceConnected()
{
setUpdate("Discovering services!");
connected = true;
+ //! [les-service-2]
controller->discoverServices();
+ //! [les-service-2]
}
void Device::errorReceived(QLowEnergyController::Error /*error*/)
@@ -265,11 +280,13 @@ void Device::serviceDetailsDiscovered(QLowEnergyService::ServiceState newState)
if (!service)
return;
+ //! [les-chars]
const QList<QLowEnergyCharacteristic> chars = service->characteristics();
foreach (const QLowEnergyCharacteristic &ch, chars) {
CharacteristicInfo *cInfo = new CharacteristicInfo(ch);
m_characteristics.append(cInfo);
}
+ //! [les-chars]
emit characteristicsUpdated();
}